arkitekt-next 0.7.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arkitekt-next might be problematic. Click here for more details.
- arkitekt_next/__init__.py +43 -0
- arkitekt_next/apps/__init__.py +3 -0
- arkitekt_next/apps/easy.py +99 -0
- arkitekt_next/apps/next.py +40 -0
- arkitekt_next/apps/qt.py +97 -0
- arkitekt_next/apps/service/__init__.py +3 -0
- arkitekt_next/apps/service/fakts.py +88 -0
- arkitekt_next/apps/service/fakts_next.py +79 -0
- arkitekt_next/apps/service/fakts_qt.py +82 -0
- arkitekt_next/apps/service/fluss_next.py +31 -0
- arkitekt_next/apps/service/grant_registry.py +27 -0
- arkitekt_next/apps/service/herre.py +24 -0
- arkitekt_next/apps/service/herre_qt.py +57 -0
- arkitekt_next/apps/service/kabinet.py +31 -0
- arkitekt_next/apps/service/mikro_next.py +81 -0
- arkitekt_next/apps/service/rekuest_next.py +53 -0
- arkitekt_next/apps/service/unlok_next.py +32 -0
- arkitekt_next/apps/types.py +53 -0
- arkitekt_next/builders.py +264 -0
- arkitekt_next/cli/__init__.py +0 -0
- arkitekt_next/cli/commands/call/__init__.py +0 -0
- arkitekt_next/cli/commands/call/local.py +132 -0
- arkitekt_next/cli/commands/call/main.py +22 -0
- arkitekt_next/cli/commands/call/remote.py +90 -0
- arkitekt_next/cli/commands/gen/__init__.py +0 -0
- arkitekt_next/cli/commands/gen/compile.py +45 -0
- arkitekt_next/cli/commands/gen/init.py +122 -0
- arkitekt_next/cli/commands/gen/main.py +29 -0
- arkitekt_next/cli/commands/gen/watch.py +32 -0
- arkitekt_next/cli/commands/init/__init__.py +0 -0
- arkitekt_next/cli/commands/init/main.py +194 -0
- arkitekt_next/cli/commands/inspect/__init__.py +0 -0
- arkitekt_next/cli/commands/inspect/definitions.py +53 -0
- arkitekt_next/cli/commands/inspect/main.py +22 -0
- arkitekt_next/cli/commands/inspect/variables.py +92 -0
- arkitekt_next/cli/commands/manifest/__init__.py +0 -0
- arkitekt_next/cli/commands/manifest/inspect.py +42 -0
- arkitekt_next/cli/commands/manifest/main.py +25 -0
- arkitekt_next/cli/commands/manifest/scopes.py +155 -0
- arkitekt_next/cli/commands/manifest/version.py +147 -0
- arkitekt_next/cli/commands/manifest/wizard.py +94 -0
- arkitekt_next/cli/commands/port/__init__.py +0 -0
- arkitekt_next/cli/commands/port/build.py +231 -0
- arkitekt_next/cli/commands/port/init.py +82 -0
- arkitekt_next/cli/commands/port/main.py +31 -0
- arkitekt_next/cli/commands/port/publish.py +102 -0
- arkitekt_next/cli/commands/port/stage.py +59 -0
- arkitekt_next/cli/commands/port/utils.py +47 -0
- arkitekt_next/cli/commands/port/validate.py +78 -0
- arkitekt_next/cli/commands/port/wizard.py +329 -0
- arkitekt_next/cli/commands/run/__init__.py +0 -0
- arkitekt_next/cli/commands/run/dev.py +349 -0
- arkitekt_next/cli/commands/run/main.py +22 -0
- arkitekt_next/cli/commands/run/prod.py +57 -0
- arkitekt_next/cli/commands/run/utils.py +10 -0
- arkitekt_next/cli/commands/server/__init__.py +0 -0
- arkitekt_next/cli/commands/server/down.py +56 -0
- arkitekt_next/cli/commands/server/init.py +74 -0
- arkitekt_next/cli/commands/server/inspect.py +59 -0
- arkitekt_next/cli/commands/server/main.py +33 -0
- arkitekt_next/cli/commands/server/open.py +66 -0
- arkitekt_next/cli/commands/server/remove.py +60 -0
- arkitekt_next/cli/commands/server/stop.py +56 -0
- arkitekt_next/cli/commands/server/up.py +70 -0
- arkitekt_next/cli/commands/server/utils.py +33 -0
- arkitekt_next/cli/configs/base.yaml +867 -0
- arkitekt_next/cli/constants.py +63 -0
- arkitekt_next/cli/dockerfiles/vanilla.dockerfile +8 -0
- arkitekt_next/cli/errors.py +4 -0
- arkitekt_next/cli/inspect.py +1 -0
- arkitekt_next/cli/io.py +255 -0
- arkitekt_next/cli/main.py +83 -0
- arkitekt_next/cli/options.py +166 -0
- arkitekt_next/cli/schemas/fluss.schema.graphql +2446 -0
- arkitekt_next/cli/schemas/gucker.schema.graphql +8908 -0
- arkitekt_next/cli/schemas/kabinet.schema.graphql +515 -0
- arkitekt_next/cli/schemas/kluster.schema.graphql +109 -0
- arkitekt_next/cli/schemas/konviktion.schema.graphql +70 -0
- arkitekt_next/cli/schemas/kuay.schema.graphql +356 -0
- arkitekt_next/cli/schemas/mikro.schema.graphql +8908 -0
- arkitekt_next/cli/schemas/mikro_next.schema.graphql +1639 -0
- arkitekt_next/cli/schemas/napari.schema.graphql +8908 -0
- arkitekt_next/cli/schemas/omero_ark.schema.graphql +100 -0
- arkitekt_next/cli/schemas/port.schema.graphql +356 -0
- arkitekt_next/cli/schemas/rekuest.schema.graphql +4630 -0
- arkitekt_next/cli/schemas/rekuest_next.schema.graphql +1159 -0
- arkitekt_next/cli/schemas/unlok.schema.graphql +1013 -0
- arkitekt_next/cli/templates/filter.py +26 -0
- arkitekt_next/cli/templates/simple.py +67 -0
- arkitekt_next/cli/texts.py +20 -0
- arkitekt_next/cli/types.py +365 -0
- arkitekt_next/cli/ui.py +111 -0
- arkitekt_next/cli/utils.py +15 -0
- arkitekt_next/cli/validators.py +17 -0
- arkitekt_next/cli/vars.py +39 -0
- arkitekt_next/cli/versions/v1.yaml +1 -0
- arkitekt_next/constants.py +6 -0
- arkitekt_next/model.py +110 -0
- arkitekt_next/qt/__init__.py +9 -0
- arkitekt_next/qt/assets/dark/gear.png +0 -0
- arkitekt_next/qt/assets/dark/green pulse.gif +0 -0
- arkitekt_next/qt/assets/dark/orange pulse.gif +0 -0
- arkitekt_next/qt/assets/dark/pink pulse.gif +0 -0
- arkitekt_next/qt/assets/dark/red pulse.gif +0 -0
- arkitekt_next/qt/assets/light/gear.png +0 -0
- arkitekt_next/qt/assets/light/green pulse.gif +0 -0
- arkitekt_next/qt/assets/light/orange pulse.gif +0 -0
- arkitekt_next/qt/assets/light/pink pulse.gif +0 -0
- arkitekt_next/qt/assets/light/red pulse.gif +0 -0
- arkitekt_next/qt/magic_bar.py +545 -0
- arkitekt_next/qt/utils.py +30 -0
- arkitekt_next/service_registry.py +51 -0
- arkitekt_next/tqdm.py +43 -0
- arkitekt_next/utils.py +38 -0
- arkitekt_next-0.7.8.dist-info/LICENSE +21 -0
- arkitekt_next-0.7.8.dist-info/METADATA +155 -0
- arkitekt_next-0.7.8.dist-info/RECORD +119 -0
- arkitekt_next-0.7.8.dist-info/WHEEL +4 -0
- arkitekt_next-0.7.8.dist-info/entry_points.txt +3 -0
|
@@ -0,0 +1,515 @@
|
|
|
1
|
+
"""Make string uppercase"""
|
|
2
|
+
directive @upper on FIELD
|
|
3
|
+
|
|
4
|
+
directive @replace(old: String!, new: String!) on FIELD
|
|
5
|
+
|
|
6
|
+
"""Make get stuff uppercase"""
|
|
7
|
+
directive @relation(on: String!) on FIELD
|
|
8
|
+
|
|
9
|
+
""" A selector is a way to select a release"""
|
|
10
|
+
interface Selector {
|
|
11
|
+
type: String!
|
|
12
|
+
required: Boolean!
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
""" A selector is a way to select a release"""
|
|
16
|
+
type CudaSelector implements Selector {
|
|
17
|
+
type: String!
|
|
18
|
+
required: Boolean!
|
|
19
|
+
|
|
20
|
+
"""The minimum compute capability"""
|
|
21
|
+
computeCapability: String!
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
""" A selector is a way to select a release"""
|
|
25
|
+
type CPUSelector implements Selector {
|
|
26
|
+
type: String!
|
|
27
|
+
required: Boolean!
|
|
28
|
+
min: Int!
|
|
29
|
+
frequency: Int
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
type SliderAssignWidget implements AssignWidget {
|
|
33
|
+
kind: AssignWidgetKind!
|
|
34
|
+
min: Int
|
|
35
|
+
max: Int
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
interface AssignWidget {
|
|
39
|
+
kind: AssignWidgetKind!
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
enum AssignWidgetKind {
|
|
43
|
+
SEARCH
|
|
44
|
+
CHOICE
|
|
45
|
+
SLIDER
|
|
46
|
+
CUSTOM
|
|
47
|
+
STRING
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
type ChoiceAssignWidget implements AssignWidget {
|
|
51
|
+
kind: AssignWidgetKind!
|
|
52
|
+
choices: [Choice!]
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
type Choice {
|
|
56
|
+
label: String!
|
|
57
|
+
value: String!
|
|
58
|
+
description: String
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
type SearchAssignWidget implements AssignWidget {
|
|
62
|
+
kind: AssignWidgetKind!
|
|
63
|
+
query: String!
|
|
64
|
+
ward: String!
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
type CustomReturnWidget implements ReturnWidget {
|
|
68
|
+
kind: ReturnWidgetKind!
|
|
69
|
+
hook: String!
|
|
70
|
+
ward: String!
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
interface ReturnWidget {
|
|
74
|
+
kind: ReturnWidgetKind!
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
enum ReturnWidgetKind {
|
|
78
|
+
CHOICE
|
|
79
|
+
CUSTOM
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
type ChoiceReturnWidget implements ReturnWidget {
|
|
83
|
+
kind: ReturnWidgetKind!
|
|
84
|
+
choices: [Choice!]
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
type StringAssignWidget implements AssignWidget {
|
|
88
|
+
kind: AssignWidgetKind!
|
|
89
|
+
placeholder: String!
|
|
90
|
+
asParagraph: Boolean!
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
type CustomAssignWidget implements AssignWidget {
|
|
94
|
+
kind: AssignWidgetKind!
|
|
95
|
+
hook: String!
|
|
96
|
+
ward: String!
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
type CustomEffect implements Effect {
|
|
100
|
+
dependencies: [EffectDependency!]!
|
|
101
|
+
kind: String!
|
|
102
|
+
hook: String!
|
|
103
|
+
ward: String!
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
interface Effect {
|
|
107
|
+
dependencies: [EffectDependency!]!
|
|
108
|
+
kind: String!
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
type EffectDependency {
|
|
112
|
+
condition: LogicalCondition!
|
|
113
|
+
key: String!
|
|
114
|
+
value: String!
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
enum LogicalCondition {
|
|
118
|
+
IS
|
|
119
|
+
IS_NOT
|
|
120
|
+
IN
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
type MessageEffect implements Effect {
|
|
124
|
+
dependencies: [EffectDependency!]!
|
|
125
|
+
kind: String!
|
|
126
|
+
message: String!
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
type Query {
|
|
130
|
+
"""Return all dask clusters"""
|
|
131
|
+
githubRepo(id: ID!): GithubRepo!
|
|
132
|
+
|
|
133
|
+
"""Return all dask clusters"""
|
|
134
|
+
definition(id: ID!): Definition!
|
|
135
|
+
|
|
136
|
+
"""Return all dask clusters"""
|
|
137
|
+
release(id: ID!): Release!
|
|
138
|
+
|
|
139
|
+
"""Return all dask clusters"""
|
|
140
|
+
flavour(id: ID!): Flavour!
|
|
141
|
+
|
|
142
|
+
"""Return the currently logged in user"""
|
|
143
|
+
me: User!
|
|
144
|
+
|
|
145
|
+
"""Return the currently logged in user"""
|
|
146
|
+
bestFlavour(release: ID!, environment: EnvironmentInput!): Flavour!
|
|
147
|
+
flavours: [Flavour!]!
|
|
148
|
+
releases: [Release!]!
|
|
149
|
+
githubRepos(filters: GithubRepoFilter, pagination: OffsetPaginationInput): [GithubRepo!]!
|
|
150
|
+
definitions(pagination: OffsetPaginationInput): [Definition!]!
|
|
151
|
+
pods: [Pod!]!
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
155
|
+
type GithubRepo {
|
|
156
|
+
id: ID!
|
|
157
|
+
name: String!
|
|
158
|
+
repo: String!
|
|
159
|
+
branch: String!
|
|
160
|
+
user: String!
|
|
161
|
+
flavours: [Flavour!]!
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
165
|
+
type Flavour {
|
|
166
|
+
id: ID!
|
|
167
|
+
name: String!
|
|
168
|
+
description: String!
|
|
169
|
+
logo: String
|
|
170
|
+
originalLogo: String
|
|
171
|
+
entrypoint: String!
|
|
172
|
+
image: String!
|
|
173
|
+
release: Release!
|
|
174
|
+
deployments: [Deployment!]!
|
|
175
|
+
selectors: [Selector!]!
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
179
|
+
type Release {
|
|
180
|
+
id: ID!
|
|
181
|
+
version: String!
|
|
182
|
+
app: App!
|
|
183
|
+
scopes: [String!]!
|
|
184
|
+
logo: String
|
|
185
|
+
|
|
186
|
+
"""The original logo url"""
|
|
187
|
+
originalLogo: String
|
|
188
|
+
entrypoint: String!
|
|
189
|
+
flavours: [Flavour!]!
|
|
190
|
+
|
|
191
|
+
"""Is this release deployed"""
|
|
192
|
+
installed: Boolean!
|
|
193
|
+
|
|
194
|
+
"""Is this release deployed"""
|
|
195
|
+
deployments: [Deployment!]!
|
|
196
|
+
|
|
197
|
+
"""Is this release deployed"""
|
|
198
|
+
description: String!
|
|
199
|
+
|
|
200
|
+
"""Is this release deployed"""
|
|
201
|
+
colour: String!
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
205
|
+
type App {
|
|
206
|
+
id: ID!
|
|
207
|
+
identifier: String!
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
211
|
+
type Deployment {
|
|
212
|
+
id: ID!
|
|
213
|
+
flavour: Flavour!
|
|
214
|
+
installer: User!
|
|
215
|
+
apiToken: String!
|
|
216
|
+
backend: Backend!
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
220
|
+
type User {
|
|
221
|
+
id: ID!
|
|
222
|
+
sub: String!
|
|
223
|
+
|
|
224
|
+
"""Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."""
|
|
225
|
+
username: String!
|
|
226
|
+
email: String!
|
|
227
|
+
password: String!
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
231
|
+
type Backend {
|
|
232
|
+
id: ID!
|
|
233
|
+
user: User!
|
|
234
|
+
client: Client!
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
238
|
+
type Client {
|
|
239
|
+
id: ID!
|
|
240
|
+
identifier: String!
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
"""
|
|
244
|
+
Nodes are abstraction of RPC Tasks. They provide a common API to deal with creating tasks.
|
|
245
|
+
|
|
246
|
+
See online Documentation
|
|
247
|
+
"""
|
|
248
|
+
type Definition {
|
|
249
|
+
id: ID!
|
|
250
|
+
|
|
251
|
+
"""The hash of the Node (completely unique)"""
|
|
252
|
+
hash: NodeHash!
|
|
253
|
+
|
|
254
|
+
"""The cleartext name of this Node"""
|
|
255
|
+
name: String!
|
|
256
|
+
|
|
257
|
+
"""The kind of this Node. e.g. is it a function or a generator?"""
|
|
258
|
+
kind: NodeKind!
|
|
259
|
+
|
|
260
|
+
"""A description for the Node"""
|
|
261
|
+
description: String
|
|
262
|
+
|
|
263
|
+
"""The collections this Node belongs to"""
|
|
264
|
+
collections: [Collection!]!
|
|
265
|
+
|
|
266
|
+
"""The flavours this Definition belongs to"""
|
|
267
|
+
flavours: [Flavour!]!
|
|
268
|
+
|
|
269
|
+
"""
|
|
270
|
+
The scope of this Node. e.g. does the data it needs or produce live only in the scope of this Node or is it global or does it bridge data?
|
|
271
|
+
"""
|
|
272
|
+
scope: NodeScope!
|
|
273
|
+
|
|
274
|
+
"""The users that have pinned the position"""
|
|
275
|
+
isTestFor(pagination: OffsetPaginationInput): [Definition!]!
|
|
276
|
+
|
|
277
|
+
"""The users that have pinned the position"""
|
|
278
|
+
tests(pagination: OffsetPaginationInput): [Definition!]!
|
|
279
|
+
|
|
280
|
+
"""The protocols this Node implements (e.g. Predicate)"""
|
|
281
|
+
protocols: [Protocol!]!
|
|
282
|
+
definedAt: DateTime!
|
|
283
|
+
|
|
284
|
+
"""Inputs for this Node"""
|
|
285
|
+
args: [Port!]!
|
|
286
|
+
|
|
287
|
+
"""Outputs for this Node"""
|
|
288
|
+
returns: [Port!]!
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
"""
|
|
292
|
+
The `ArrayLike` scalar type represents a reference to a store previously created by the user n a datalayer
|
|
293
|
+
"""
|
|
294
|
+
scalar NodeHash
|
|
295
|
+
|
|
296
|
+
enum NodeKind {
|
|
297
|
+
FUNCTION
|
|
298
|
+
GENERATOR
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
302
|
+
type Collection {
|
|
303
|
+
id: ID!
|
|
304
|
+
|
|
305
|
+
"""The name of this Collection"""
|
|
306
|
+
name: String!
|
|
307
|
+
|
|
308
|
+
"""A description for the Collection"""
|
|
309
|
+
description: String!
|
|
310
|
+
definedAt: DateTime!
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
"""Date with time (isoformat)"""
|
|
314
|
+
scalar DateTime
|
|
315
|
+
|
|
316
|
+
enum NodeScope {
|
|
317
|
+
GLOBAL
|
|
318
|
+
LOCAL
|
|
319
|
+
BRIDGE_GLOBAL_TO_LOCAL
|
|
320
|
+
BRIDGE_LOCAL_TO_GLOBAL
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
input OffsetPaginationInput {
|
|
324
|
+
offset: Int! = 0
|
|
325
|
+
limit: Int! = -1
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
329
|
+
type Protocol {
|
|
330
|
+
id: ID!
|
|
331
|
+
|
|
332
|
+
"""The name of this Protocol"""
|
|
333
|
+
name: String!
|
|
334
|
+
|
|
335
|
+
"""A description for the Protocol"""
|
|
336
|
+
description: String!
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
type Port {
|
|
340
|
+
key: String!
|
|
341
|
+
scope: PortScope!
|
|
342
|
+
label: String
|
|
343
|
+
kind: PortKind!
|
|
344
|
+
description: String
|
|
345
|
+
identifier: Identifier
|
|
346
|
+
nullable: Boolean!
|
|
347
|
+
effects: [Effect!]
|
|
348
|
+
default: AnyDefault
|
|
349
|
+
variants: [ChildPort!]
|
|
350
|
+
assignWidget: AssignWidget
|
|
351
|
+
returnWidget: ReturnWidget
|
|
352
|
+
child: ChildPort
|
|
353
|
+
groups: [String!]
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
enum PortScope {
|
|
357
|
+
GLOBAL
|
|
358
|
+
LOCAL
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
enum PortKind {
|
|
362
|
+
INT
|
|
363
|
+
STRING
|
|
364
|
+
STRUCTURE
|
|
365
|
+
LIST
|
|
366
|
+
BOOL
|
|
367
|
+
DICT
|
|
368
|
+
FLOAT
|
|
369
|
+
DATE
|
|
370
|
+
UNION
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
"""
|
|
374
|
+
The `ArrayLike` scalar type represents a reference to a store previously created by the user n a datalayer
|
|
375
|
+
"""
|
|
376
|
+
scalar Identifier
|
|
377
|
+
|
|
378
|
+
"""
|
|
379
|
+
The `ArrayLike` scalar type represents a reference to a store previously created by the user n a datalayer
|
|
380
|
+
"""
|
|
381
|
+
scalar AnyDefault
|
|
382
|
+
|
|
383
|
+
type ChildPort {
|
|
384
|
+
label: String
|
|
385
|
+
scope: PortScope!
|
|
386
|
+
kind: PortKind!
|
|
387
|
+
child: ChildPort
|
|
388
|
+
identifier: Identifier
|
|
389
|
+
nullable: Boolean!
|
|
390
|
+
default: AnyDefault
|
|
391
|
+
variants: [ChildPort!]
|
|
392
|
+
assignWidget: AssignWidget
|
|
393
|
+
returnWidget: ReturnWidget
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
"""Which environment do you want to match against?"""
|
|
397
|
+
input EnvironmentInput {
|
|
398
|
+
containerType: ContainerType!
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
"""The state of a dask cluster"""
|
|
402
|
+
enum ContainerType {
|
|
403
|
+
APPTAINER
|
|
404
|
+
DOCKER
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
"""Filter for Dask Clusters"""
|
|
408
|
+
input GithubRepoFilter {
|
|
409
|
+
ids: [ID!] = null
|
|
410
|
+
search: String = null
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
414
|
+
type Pod {
|
|
415
|
+
id: ID!
|
|
416
|
+
flavour: Flavour!
|
|
417
|
+
backend: Backend!
|
|
418
|
+
deployment: Deployment!
|
|
419
|
+
latestLogDump: LogDump!
|
|
420
|
+
podId: String!
|
|
421
|
+
status: PodStatus!
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
"""The logs of a pod"""
|
|
425
|
+
type LogDump {
|
|
426
|
+
id: ID!
|
|
427
|
+
pod: Pod!
|
|
428
|
+
logs: String!
|
|
429
|
+
createdAt: DateTime!
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
"""The state of a dask cluster"""
|
|
433
|
+
enum PodStatus {
|
|
434
|
+
PENDING
|
|
435
|
+
RUNNING
|
|
436
|
+
STOPPING
|
|
437
|
+
STOPPED
|
|
438
|
+
FAILED
|
|
439
|
+
UNKOWN
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
type Mutation {
|
|
443
|
+
"""Create a new dask cluster on a bridge server"""
|
|
444
|
+
scanRepo(input: ScanRepoInput!): GithubRepo!
|
|
445
|
+
|
|
446
|
+
"""Create a new Github repository on a bridge server"""
|
|
447
|
+
createGithubRepo(input: CreateGithupRepoInput!): GithubRepo!
|
|
448
|
+
|
|
449
|
+
"""Create a new dask cluster on a bridge server"""
|
|
450
|
+
createDeployment(input: CreateDeploymentInput!): Deployment!
|
|
451
|
+
|
|
452
|
+
"""Create a new dask cluster on a bridge server"""
|
|
453
|
+
updateDeployment(input: UpdateDeploymentInput!): Deployment!
|
|
454
|
+
|
|
455
|
+
"""Create a new dask cluster on a bridge server"""
|
|
456
|
+
createPod(input: CreatePodInput!): Pod!
|
|
457
|
+
|
|
458
|
+
"""Create a new dask cluster on a bridge server"""
|
|
459
|
+
updatePod(input: UpdatePodInput!): Pod!
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
"""Create a dask cluster input"""
|
|
463
|
+
input ScanRepoInput {
|
|
464
|
+
id: String!
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
"""Create a new Github repository input"""
|
|
468
|
+
input CreateGithupRepoInput {
|
|
469
|
+
name: String!
|
|
470
|
+
user: String!
|
|
471
|
+
branch: String!
|
|
472
|
+
repo: String!
|
|
473
|
+
autoScan: Boolean = true
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
"""Create a new Github repository input"""
|
|
477
|
+
input CreateDeploymentInput {
|
|
478
|
+
instanceId: ID!
|
|
479
|
+
flavour: ID!
|
|
480
|
+
pulled: Boolean = false
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
"""Create a new Github repository input"""
|
|
484
|
+
input UpdateDeploymentInput {
|
|
485
|
+
deployment: ID!
|
|
486
|
+
status: PodStatus!
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
"""Create a new Github repository input"""
|
|
490
|
+
input CreatePodInput {
|
|
491
|
+
deployment: ID!
|
|
492
|
+
instanceId: String!
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
"""Create a new Github repository input"""
|
|
496
|
+
input UpdatePodInput {
|
|
497
|
+
pod: ID!
|
|
498
|
+
status: PodStatus!
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
type Subscription {
|
|
502
|
+
"""Create a new dask cluster on a bridge server"""
|
|
503
|
+
pod(podId: ID!): PodUpdateMessage!
|
|
504
|
+
|
|
505
|
+
"""Create a new dask cluster on a bridge server"""
|
|
506
|
+
pods: PodUpdateMessage!
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
"""An update on a pod"""
|
|
510
|
+
type PodUpdateMessage {
|
|
511
|
+
id: String!
|
|
512
|
+
status: String!
|
|
513
|
+
created: Boolean!
|
|
514
|
+
progress: Int
|
|
515
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"""Make string uppercase"""
|
|
2
|
+
directive @upper on FIELD
|
|
3
|
+
|
|
4
|
+
directive @replace(old: String!, new: String!) on FIELD
|
|
5
|
+
|
|
6
|
+
"""Make get stuff uppercase"""
|
|
7
|
+
directive @relation(on: String!) on FIELD
|
|
8
|
+
|
|
9
|
+
type Query {
|
|
10
|
+
"""Return all dask clusters"""
|
|
11
|
+
daskClusters(filters: ClusterFilter = null, pagination: OffsetPaginationInput = null): [DaskCluster!]!
|
|
12
|
+
|
|
13
|
+
"""Return a dask cluster by id"""
|
|
14
|
+
daskCluster(id: ID!): DaskCluster!
|
|
15
|
+
|
|
16
|
+
"""Return the currently logged in user"""
|
|
17
|
+
me: User!
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
""" A dask cluster"""
|
|
21
|
+
type DaskCluster {
|
|
22
|
+
"""The name of the dask cluster"""
|
|
23
|
+
name: String!
|
|
24
|
+
|
|
25
|
+
"""The id of the dask cluster"""
|
|
26
|
+
id: ID!
|
|
27
|
+
|
|
28
|
+
"""A link to the dashboard for the dask cluster. Relative to the proxy."""
|
|
29
|
+
dashboardLink: String!
|
|
30
|
+
|
|
31
|
+
"""A link to the scheduler for the dask cluster. Relative to the proxy."""
|
|
32
|
+
schedulerAddress: String!
|
|
33
|
+
|
|
34
|
+
"""When the dask cluster was created"""
|
|
35
|
+
startTime: DateTime
|
|
36
|
+
|
|
37
|
+
"""When the dask cluster was stopped"""
|
|
38
|
+
stopTime: DateTime
|
|
39
|
+
|
|
40
|
+
"""The status of the dask cluster"""
|
|
41
|
+
status: DaskClusterState!
|
|
42
|
+
|
|
43
|
+
"""The options used to create the dask cluster"""
|
|
44
|
+
options: UntypedOptions!
|
|
45
|
+
|
|
46
|
+
"""The tags for the dask cluster (currently fake)"""
|
|
47
|
+
tags: [String!]!
|
|
48
|
+
|
|
49
|
+
"""The user who created the dask cluster"""
|
|
50
|
+
security: Security
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
"""Date with time (isoformat)"""
|
|
54
|
+
scalar DateTime
|
|
55
|
+
|
|
56
|
+
"""The state of a dask cluster"""
|
|
57
|
+
enum DaskClusterState {
|
|
58
|
+
PENDING
|
|
59
|
+
RUNNING
|
|
60
|
+
STOPPING
|
|
61
|
+
STOPPED
|
|
62
|
+
FAILED
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
"""
|
|
66
|
+
UntypedOptions represents an untyped options object returned by the Dask Gateway API.
|
|
67
|
+
"""
|
|
68
|
+
scalar UntypedOptions
|
|
69
|
+
|
|
70
|
+
""" A security object for a dask cluster"""
|
|
71
|
+
type Security {
|
|
72
|
+
tlsKey: String!
|
|
73
|
+
tlsCert: String!
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
"""Filter for Dask Clusters"""
|
|
77
|
+
input ClusterFilter {
|
|
78
|
+
ids: [ID!] = null
|
|
79
|
+
search: String = null
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
input OffsetPaginationInput {
|
|
83
|
+
offset: Int! = 0
|
|
84
|
+
limit: Int! = -1
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
"""A user of the bridge server. Maps to an authentikate user"""
|
|
88
|
+
type User {
|
|
89
|
+
id: ID!
|
|
90
|
+
sub: String!
|
|
91
|
+
|
|
92
|
+
"""Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only."""
|
|
93
|
+
username: String!
|
|
94
|
+
email: String!
|
|
95
|
+
password: String!
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
type Mutation {
|
|
99
|
+
"""Create a new dask cluster on a bridge server"""
|
|
100
|
+
createDaskCluster(input: CreateClusterInput!): DaskCluster!
|
|
101
|
+
|
|
102
|
+
"""Stop a dask cluster"""
|
|
103
|
+
stopDaskCluster(id: ID!): ID!
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
"""Create a dask cluster input"""
|
|
107
|
+
input CreateClusterInput {
|
|
108
|
+
name: String!
|
|
109
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"""Make string uppercase"""
|
|
2
|
+
directive @upper on FIELD
|
|
3
|
+
|
|
4
|
+
directive @replace(old: String!, new: String!) on FIELD
|
|
5
|
+
|
|
6
|
+
"""Make get stuff uppercase"""
|
|
7
|
+
directive @relation(on: String!) on FIELD
|
|
8
|
+
|
|
9
|
+
type Query {
|
|
10
|
+
omeroUsers: [NotionIntegration!]!
|
|
11
|
+
databases(filters: ProjectFilter = null, pagination: OffsetPaginationInput = null): [Database!]!
|
|
12
|
+
users(filters: ProjectFilter = null, pagination: OffsetPaginationInput = null): [NotionUser!]!
|
|
13
|
+
me: User!
|
|
14
|
+
database(id: ID!): NotionUser!
|
|
15
|
+
user(id: ID!): Database!
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
type NotionIntegration {
|
|
19
|
+
id: ID!
|
|
20
|
+
notionToken: String!
|
|
21
|
+
user: User!
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
type User {
|
|
25
|
+
id: ID!
|
|
26
|
+
sub: String!
|
|
27
|
+
username: String!
|
|
28
|
+
email: String!
|
|
29
|
+
password: String!
|
|
30
|
+
integrations: [NotionIntegration!]!
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
type Database {
|
|
34
|
+
id: String!
|
|
35
|
+
createdTime: DateTime!
|
|
36
|
+
title: String!
|
|
37
|
+
description: String!
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
"""Date with time (isoformat)"""
|
|
41
|
+
scalar DateTime
|
|
42
|
+
|
|
43
|
+
input ProjectFilter {
|
|
44
|
+
ids: [ID!]
|
|
45
|
+
search: String
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
input OffsetPaginationInput {
|
|
49
|
+
offset: Int! = 0
|
|
50
|
+
limit: Int! = -1
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
type NotionUser {
|
|
54
|
+
type: String!
|
|
55
|
+
person: Person
|
|
56
|
+
id: String!
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
type Person {
|
|
60
|
+
email: String
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
type Mutation {
|
|
64
|
+
ensureIntegration(input: EnsureIntegration!): NotionIntegration!
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
input EnsureIntegration {
|
|
68
|
+
token: String!
|
|
69
|
+
workspace: String!
|
|
70
|
+
}
|