@@ -7,10 +7,6 @@ title: Projections
77
88The various gRPC client APIs include dedicated clients that allow you to manage projections.
99
10- ::: warning
11- Currently not all clients fully expose all operations.
12- :::
13-
1410For a detailed explanation of projections, see the [ server documentation] ( @server/features/projections/README.md ) .
1511
1612You can find the full sample code from this documentation page in the respective [ clients repositories] ( https://github.com/kurrent-io/?q=client ) .
@@ -70,129 +66,148 @@ For .NET projects, install the `EventStore.Client.Grpc.ProjectionManagement` pac
7066dotnet add package EventStore.Client.Grpc.ProjectionManagement --version 23.*
7167```
7268
73- ### Other languages
69+ ### Python
70+
71+ Install the ` kurrentdbclient ` package from PyPI or use Poetry:
72+
73+ ::: tabs
74+ @tab pip
75+ ``` bash
76+ pip install kurrentdbclient
77+ ```
78+ @tab Poetry
79+ ``` bash
80+ poetry add kurrentdbclient
81+ ```
82+ :::
83+
84+ ### Go
7485
75- Go, Rust and Python clients does not have a dedicated projection management client yet.
86+ Install the ` kurrentdb ` package using Go modules:
87+
88+ ``` bash
89+ go get github.com/kurrent-io/KurrentDB-Client-Go/kurrentdb
90+ ```
7691
7792## Creating a client
7893
7994Projection management operations are exposed through a dedicated client.
8095
81- @[ code{createClient}] ( @grpc:projection-management.js;projection-management.ts;quickstart.py;projection_management/ProjectionManagement.java;projection-management/Program.cs )
96+ @[ code{createClient}] ( @grpc:projection-management.js;projection-management.ts;quickstart.py;projection_management/ProjectionManagement.java;projection-management/Program.cs;quickstart.py;projectionManagement.go )
8297
8398## Create a projection
8499
85100Creates a projection that runs until the last event in the store, and then continues processing new events as they are appended to the store. The query parameter contains the JavaScript you want created as a projection.
86101Projections have explicit names, and you can enable or disable them via this name.
87102
88- @[ code{CreateContinuous}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
103+ @[ code{CreateContinuous}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
89104
90105Trying to create projections with the same name will result in an error:
91106
92- @[ code{CreateContinuous_Conflict}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
107+ @[ code{CreateContinuous_Conflict}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
93108
94109## Restart the subsystem
95110
96111It is possible to restart the entire projection subsystem using the projections management client API. The user must be in the ` $ops ` or ` $admin ` group to perform this operation.
97112
98- @[ code{RestartSubSystem}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
113+ @[ code{RestartSubSystem}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
99114
100115## Enable a projection
101116
102117Enables an existing projection by name.
103118Once enabled, the projection will start to process events even after restarting the server or the projection subsystem.
104119You must have access to a projection to enable it, see the [ ACL documentation] ( @server/security/user-authorization.md ) .
105120
106- @[ code{Enable}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
121+ @[ code{Enable}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
107122
108123You can only enable an existing projection. When you try to enable a non-existing projection, you'll get an error:
109124
110- @[ code{EnableNotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
125+ @[ code{EnableNotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
111126
112127## Disable a projection
113128
114129Disables a projection, this will save the projection checkpoint.
115130Once disabled, the projection will not process events even after restarting the server or the projection subsystem.
116131You must have access to a projection to disable it, see the [ ACL documentation] ( @server/security/user-authorization.md ) .
117132
118- @[ code{Disable}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
133+ @[ code{Disable}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
119134
120135You can only disable an existing projection. When you try to disable a non-existing projection, you'll get an error:
121136
122- @[ code{DisableNotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
137+ @[ code{DisableNotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
123138
124139## Delete a projection
125140
126141Deletes an existing projection. You must disable the projection before deleting it, running projections cannot be deleted. Deleting a projection includes deleting the checkpoint and the emitted streams.
127142
128- @[ code{Delete}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
143+ @[ code{Delete}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
129144
130145You can only delete an existing projection. When you try to delete a non-existing projection, you'll get an error:
131146
132- @[ code{DeleteNotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java )
147+ @[ code{DeleteNotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projections.py;projectionManagement.go )
133148
134149## Abort a projection
135150
136151Aborts a projection, this will not save the projection's checkpoint.
137152
138- @[ code{Abort}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
153+ @[ code{Abort}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
139154
140155You can only abort an existing projection. When you try to abort a non-existing projection, you'll get an error:
141156
142- @[ code{Abort_NotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
157+ @[ code{Abort_NotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
143158
144159## Reset a projection
145160
146161Resets a projection, which causes deleting the projection checkpoint. This will force the projection to start afresh and re-emit events. Streams that are written to from the projection will also be soft-deleted.
147162
148- @[ code{Reset}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
163+ @[ code{Reset}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
149164
150165Resetting a projection that does not exist will result in an error.
151166
152- @[ code{Reset_NotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
167+ @[ code{Reset_NotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
153168
154169## Update a projection
155170
156171Updates a projection with a given name. The query parameter contains the new JavaScript. Updating system projections using this operation is not supported at the moment.
157172
158- @[ code{Update}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
173+ @[ code{Update}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
159174
160175You can only update an existing projection. When you try to update a non-existing projection, you'll get an error:
161176
162- @[ code{Update_NotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
177+ @[ code{Update_NotFound}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
163178
164179## List all projections
165180
166181Returns a list of all projections, user defined & system projections.
167182See the [ projection details] ( #projection-details ) section for an explanation of the returned values.
168183
169- @[ code{ListAll}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
184+ @[ code{ListAll}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
170185
171186## List continuous projections
172187
173188Returns a list of all continuous projections.
174189See the [ projection details] ( #projection-details ) section for an explanation of the returned values.
175190
176- @[ code{ListContinuous}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
191+ @[ code{ListContinuous}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
177192
178193## Get status
179194
180195Gets the status of a named projection.
181196See the [ projection details] ( #projection-details ) section for an explanation of the returned values.
182197
183- @[ code{GetStatus}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
198+ @[ code{GetStatus}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
184199
185200## Get state
186201
187202Retrieves the state of a projection.
188203
189- @[ code{GetState}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
204+ @[ code{GetState}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
190205
191206## Get result
192207
193208Retrieves the result of the named projection and partition.
194209
195- @[ code{GetResult}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs )
210+ @[ code{GetResult}] ( @grpc:projection-management.js;projection-management.ts;projection_management/ProjectionManagement.java;projection-management/Program.cs;projections.py;projectionManagement.go )
196211
197212## Projection Details
198213
0 commit comments