@stigmer/server 3.22.0 → 3.22.1
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.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
- package/src/authorization/__tests__/fixtures/fga/agent-instance-creation.fga.yaml +185 -0
- package/src/authorization/__tests__/fixtures/fga/mcp-server-authoring.fga.yaml +143 -0
- package/src/authorization/__tests__/store-tests.test.ts +2 -0
- package/src/index.ts +13 -0
package/dist/index.d.ts
CHANGED
|
@@ -99,6 +99,8 @@ export { newPipeline } from "./pipeline/pipeline.js";
|
|
|
99
99
|
export { newAuthorizeStep } from "./pipeline/steps/authorize.js";
|
|
100
100
|
export { isRunGateCheck } from "./pipeline/steps/authorize-run-target.js";
|
|
101
101
|
export { newValidateProtoStep } from "./pipeline/steps/validation.js";
|
|
102
|
+
export { newBuildNewStateStep } from "./pipeline/steps/defaults.js";
|
|
103
|
+
export { newResolveSlugStep } from "./pipeline/steps/slug.js";
|
|
102
104
|
export type { Store } from "./store/interface.js";
|
|
103
105
|
export { AuditNotFoundError, ResourceNotFoundError, } from "./store/interface.js";
|
|
104
106
|
export type { RawResourceDocument } from "./store/interface.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,YAAY,EACV,QAAQ,EACR,SAAS,EACT,MAAM,EACN,aAAa,EACb,QAAQ,EACR,OAAO,GACR,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AASlC,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAOjE,YAAY,EACV,UAAU,EACV,UAAU,EACV,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,YAAY,EACV,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,EAC5B,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAIzE,YAAY,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAK3E,YAAY,EACV,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAMxC,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AAOzC,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,YAAY,EACV,gCAAgC,EAChC,mCAAmC,GACpC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAU1F,YAAY,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,YAAY,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACtF,YAAY,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAO3E,YAAY,EACV,eAAe,EACf,eAAe,EACf,OAAO,EACP,WAAW,GACZ,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EACL,YAAY,EACZ,cAAc,EACd,QAAQ,GACT,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,YAAY,EACZ,SAAS,EACT,MAAM,EACN,OAAO,EACP,KAAK,EACL,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,sBAAsB,EACtB,cAAc,GACf,MAAM,mCAAmC,CAAC;AAI3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EACV,aAAa,EACb,aAAa,GACd,MAAM,iCAAiC,CAAC;AAMzC,YAAY,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAStF,YAAY,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAGlD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,iCAAiC,CAAC;AAgBzC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAOjF,OAAO,EACL,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAOjE,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -110,6 +110,19 @@ export { newAuthorizeStep } from "./pipeline/steps/authorize.js";
|
|
|
110
110
|
// composition never re-derives the set.
|
|
111
111
|
export { isRunGateCheck } from "./pipeline/steps/authorize-run-target.js";
|
|
112
112
|
export { newValidateProtoStep } from "./pipeline/steps/validation.js";
|
|
113
|
+
// The create-shaping steps, for an envelope kind a composition serves
|
|
114
|
+
// itself (a cloud_only kind has no OSS controller to run them): between
|
|
115
|
+
// ValidateProto and its own domain step the composition runs the SAME
|
|
116
|
+
// ResolveSlug and BuildNewState every OSS create runs, so how a slug is
|
|
117
|
+
// derived from a name, how an id is spelled, how status.audit is stamped
|
|
118
|
+
// for the caller and how visibility defaults live exactly once and move
|
|
119
|
+
// together. The RequestContext must carry the kind (its fourth
|
|
120
|
+
// constructor argument) for BuildNewState to pick the id prefix.
|
|
121
|
+
// CheckDuplicate is deliberately not here: it reads this server's Store,
|
|
122
|
+
// and a composition's own table answers that question in a step of the
|
|
123
|
+
// same name over its own repo.
|
|
124
|
+
export { newBuildNewStateStep } from "./pipeline/steps/defaults.js";
|
|
125
|
+
export { newResolveSlugStep } from "./pipeline/steps/slug.js";
|
|
113
126
|
export { AuditNotFoundError, ResourceNotFoundError, } from "./store/interface.js";
|
|
114
127
|
// The Postgres driver constructor (stigmer-cloud 20260910.04 ruling 4;
|
|
115
128
|
// the newR2ArtifactStorage precedent for blessing a driver constructor).
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/server",
|
|
3
|
-
"version": "3.22.
|
|
3
|
+
"version": "3.22.1",
|
|
4
4
|
"description": "The Stigmer OSS control plane as a composable library: composeServer, the extension registry and the driver seams a composition builds on. The self-contained deployable of the same server is @stigmer/server-slim.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -62,11 +62,11 @@
|
|
|
62
62
|
"@connectrpc/connect-node": "^2.0.0",
|
|
63
63
|
"@kubernetes/client-node": "2.0.0",
|
|
64
64
|
"@opentelemetry/api": "^1.9.0",
|
|
65
|
-
"@stigmer/outbound": "3.22.
|
|
66
|
-
"@stigmer/plugin-package": "3.22.
|
|
67
|
-
"@stigmer/protos": "3.22.
|
|
68
|
-
"@stigmer/temporal-codecs": "3.22.
|
|
69
|
-
"@stigmer/zip-structure": "3.22.
|
|
65
|
+
"@stigmer/outbound": "3.22.1",
|
|
66
|
+
"@stigmer/plugin-package": "3.22.1",
|
|
67
|
+
"@stigmer/protos": "3.22.1",
|
|
68
|
+
"@stigmer/temporal-codecs": "3.22.1",
|
|
69
|
+
"@stigmer/zip-structure": "3.22.1",
|
|
70
70
|
"@temporalio/activity": "1.16.2",
|
|
71
71
|
"@temporalio/client": "1.16.2",
|
|
72
72
|
"@temporalio/common": "1.16.2",
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/agent-instance-creation.fga.yaml
|
|
2
|
+
# at commit 4c03c38d2 (the OpenFGA store test the cloud runs against its live model).
|
|
3
|
+
# The body below is byte-identical to the source; the cloud re-runs the LIVE
|
|
4
|
+
# file against this evaluator at the re-pin, so a stale copy is caught there.
|
|
5
|
+
# Store tests for agent-instance creation: two halves, asked together by
|
|
6
|
+
# the create since stigmer#1209 (v3.22.0). The agent half is the agent's
|
|
7
|
+
# can_create_instance (can_execute, so the viewer set: whoever may run the
|
|
8
|
+
# agent may instantiate it). The organization half is
|
|
9
|
+
# can_create_agent_instance: member on the organization the instance is
|
|
10
|
+
# created IN, which is the caller's own, not the agent's: a personal
|
|
11
|
+
# instance of another organization's public agent lives in the caller's
|
|
12
|
+
# organization (the marketplace case), so the agent's permission alone
|
|
13
|
+
# would let a row be planted in any organization named on the request.
|
|
14
|
+
#
|
|
15
|
+
# What these pin: owners, admins and members hold the organization half;
|
|
16
|
+
# a viewer-role account may run an org-visible agent (the agent half) and
|
|
17
|
+
# still lacks the organization half; a guest holds neither; an outsider
|
|
18
|
+
# holds neither; and the marketplace case passes on the caller's own
|
|
19
|
+
# organization while the agent half comes from the public wildcard.
|
|
20
|
+
#
|
|
21
|
+
# Run: fga model test --tests agent-instance-creation.fga.yaml
|
|
22
|
+
|
|
23
|
+
name: agent-instance-creation
|
|
24
|
+
model_file: ../model/fga.mod
|
|
25
|
+
|
|
26
|
+
tuples:
|
|
27
|
+
# Org acme: olivia owns it, oscar administers, dave is a plain member,
|
|
28
|
+
# vera a read-only viewer, greta the share-link guest account.
|
|
29
|
+
- user: identity_account:olivia
|
|
30
|
+
relation: owner
|
|
31
|
+
object: organization:acme
|
|
32
|
+
- user: identity_account:oscar
|
|
33
|
+
relation: admin
|
|
34
|
+
object: organization:acme
|
|
35
|
+
- user: identity_account:dave
|
|
36
|
+
relation: member
|
|
37
|
+
object: organization:acme
|
|
38
|
+
- user: identity_account:vera
|
|
39
|
+
relation: viewer
|
|
40
|
+
object: organization:acme
|
|
41
|
+
- user: identity_account:greta
|
|
42
|
+
relation: guest
|
|
43
|
+
object: organization:acme
|
|
44
|
+
|
|
45
|
+
# Org consumer: mia is a plain member there and holds no role in acme.
|
|
46
|
+
- user: identity_account:mia
|
|
47
|
+
relation: member
|
|
48
|
+
object: organization:consumer
|
|
49
|
+
|
|
50
|
+
# An ORG-visible agent in acme, authored by oscar.
|
|
51
|
+
- user: organization:acme
|
|
52
|
+
relation: organization
|
|
53
|
+
object: agent:team-bot
|
|
54
|
+
- user: identity_account:oscar
|
|
55
|
+
relation: owner
|
|
56
|
+
object: agent:team-bot
|
|
57
|
+
- user: organization:acme#viewer
|
|
58
|
+
relation: viewer
|
|
59
|
+
object: agent:team-bot
|
|
60
|
+
|
|
61
|
+
# A PRIVATE agent in acme, authored by oscar (no visibility tuple).
|
|
62
|
+
- user: organization:acme
|
|
63
|
+
relation: organization
|
|
64
|
+
object: agent:secret-bot
|
|
65
|
+
- user: identity_account:oscar
|
|
66
|
+
relation: owner
|
|
67
|
+
object: agent:secret-bot
|
|
68
|
+
|
|
69
|
+
# A PUBLIC marketplace agent in acme (the conditional wildcard plus the
|
|
70
|
+
# org floor tuple the visibility writer emits).
|
|
71
|
+
- user: organization:acme
|
|
72
|
+
relation: organization
|
|
73
|
+
object: agent:open-bot
|
|
74
|
+
- user: identity_account:oscar
|
|
75
|
+
relation: owner
|
|
76
|
+
object: agent:open-bot
|
|
77
|
+
- user: identity_account:*
|
|
78
|
+
relation: viewer
|
|
79
|
+
object: agent:open-bot
|
|
80
|
+
condition:
|
|
81
|
+
name: allow_public
|
|
82
|
+
context: {}
|
|
83
|
+
- user: organization:acme#viewer
|
|
84
|
+
relation: viewer
|
|
85
|
+
object: agent:open-bot
|
|
86
|
+
|
|
87
|
+
tests:
|
|
88
|
+
- name: owners, admins and members hold the organization half
|
|
89
|
+
check:
|
|
90
|
+
- user: identity_account:olivia
|
|
91
|
+
object: organization:acme
|
|
92
|
+
assertions:
|
|
93
|
+
can_create_agent_instance: true
|
|
94
|
+
- user: identity_account:oscar
|
|
95
|
+
object: organization:acme
|
|
96
|
+
assertions:
|
|
97
|
+
can_create_agent_instance: true
|
|
98
|
+
- user: identity_account:dave
|
|
99
|
+
object: organization:acme
|
|
100
|
+
assertions:
|
|
101
|
+
can_create_agent_instance: true
|
|
102
|
+
|
|
103
|
+
- name: a viewer, a guest and an outsider do not
|
|
104
|
+
check:
|
|
105
|
+
- user: identity_account:vera
|
|
106
|
+
object: organization:acme
|
|
107
|
+
assertions:
|
|
108
|
+
can_create_agent_instance: false
|
|
109
|
+
can_create_session: false
|
|
110
|
+
- user: identity_account:greta
|
|
111
|
+
object: organization:acme
|
|
112
|
+
assertions:
|
|
113
|
+
can_create_agent_instance: false
|
|
114
|
+
can_create_session: true
|
|
115
|
+
- user: identity_account:mia
|
|
116
|
+
object: organization:acme
|
|
117
|
+
assertions:
|
|
118
|
+
can_create_agent_instance: false
|
|
119
|
+
|
|
120
|
+
- name: a member instantiates an org-visible agent, both halves held
|
|
121
|
+
check:
|
|
122
|
+
- user: identity_account:dave
|
|
123
|
+
object: agent:team-bot
|
|
124
|
+
context:
|
|
125
|
+
allow: false
|
|
126
|
+
assertions:
|
|
127
|
+
can_create_instance: true
|
|
128
|
+
can_execute: true
|
|
129
|
+
|
|
130
|
+
- name: a viewer may run the org-visible agent and still cannot instantiate it here
|
|
131
|
+
check:
|
|
132
|
+
- user: identity_account:vera
|
|
133
|
+
object: agent:team-bot
|
|
134
|
+
context:
|
|
135
|
+
allow: false
|
|
136
|
+
assertions:
|
|
137
|
+
can_create_instance: true
|
|
138
|
+
- user: identity_account:vera
|
|
139
|
+
object: organization:acme
|
|
140
|
+
assertions:
|
|
141
|
+
can_create_agent_instance: false
|
|
142
|
+
|
|
143
|
+
- name: a private agent gives the agent half to its author and the admins only
|
|
144
|
+
check:
|
|
145
|
+
- user: identity_account:oscar
|
|
146
|
+
object: agent:secret-bot
|
|
147
|
+
context:
|
|
148
|
+
allow: false
|
|
149
|
+
assertions:
|
|
150
|
+
can_create_instance: true
|
|
151
|
+
- user: identity_account:olivia
|
|
152
|
+
object: agent:secret-bot
|
|
153
|
+
context:
|
|
154
|
+
allow: false
|
|
155
|
+
assertions:
|
|
156
|
+
can_create_instance: true
|
|
157
|
+
- user: identity_account:dave
|
|
158
|
+
object: agent:secret-bot
|
|
159
|
+
context:
|
|
160
|
+
allow: false
|
|
161
|
+
assertions:
|
|
162
|
+
can_create_instance: false
|
|
163
|
+
- user: identity_account:mia
|
|
164
|
+
object: agent:secret-bot
|
|
165
|
+
context:
|
|
166
|
+
allow: false
|
|
167
|
+
assertions:
|
|
168
|
+
can_create_instance: false
|
|
169
|
+
|
|
170
|
+
- name: the marketplace case, the agent half from the wildcard and the organization half at home
|
|
171
|
+
check:
|
|
172
|
+
- user: identity_account:mia
|
|
173
|
+
object: agent:open-bot
|
|
174
|
+
context:
|
|
175
|
+
allow: true
|
|
176
|
+
assertions:
|
|
177
|
+
can_create_instance: true
|
|
178
|
+
- user: identity_account:mia
|
|
179
|
+
object: organization:consumer
|
|
180
|
+
assertions:
|
|
181
|
+
can_create_agent_instance: true
|
|
182
|
+
- user: identity_account:mia
|
|
183
|
+
object: organization:acme
|
|
184
|
+
assertions:
|
|
185
|
+
can_create_agent_instance: false
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/mcp-server-authoring.fga.yaml
|
|
2
|
+
# at commit 4c03c38d2 (the OpenFGA store test the cloud runs against its live model).
|
|
3
|
+
# The body below is byte-identical to the source; the cloud re-runs the LIVE
|
|
4
|
+
# file against this evaluator at the re-pin, so a stale copy is caught there.
|
|
5
|
+
# Store tests for MCP-server authoring: an MCP server is an organization's
|
|
6
|
+
# blueprint, so creating one takes the organization's admin bar
|
|
7
|
+
# (can_create_mcp_server: admin), the bar agents, workflows and skills
|
|
8
|
+
# already take. Until stigmer#1209 (v3.22.0) the create ran no check in
|
|
9
|
+
# either edition and any member could author one; these pin the bar and
|
|
10
|
+
# the story it leaves for members: an admin authors the server org-visible
|
|
11
|
+
# and a member connects it (can_connect) with their own credentials, while
|
|
12
|
+
# a private server stays the owner's and the admins'.
|
|
13
|
+
#
|
|
14
|
+
# Run: fga model test --tests mcp-server-authoring.fga.yaml
|
|
15
|
+
|
|
16
|
+
name: mcp-server-authoring
|
|
17
|
+
model_file: ../model/fga.mod
|
|
18
|
+
|
|
19
|
+
tuples:
|
|
20
|
+
# Org acme: olivia owns it, oscar administers, dave is a plain member,
|
|
21
|
+
# vera a read-only viewer; mallory belongs to an unrelated org.
|
|
22
|
+
- user: identity_account:olivia
|
|
23
|
+
relation: owner
|
|
24
|
+
object: organization:acme
|
|
25
|
+
- user: identity_account:oscar
|
|
26
|
+
relation: admin
|
|
27
|
+
object: organization:acme
|
|
28
|
+
- user: identity_account:dave
|
|
29
|
+
relation: member
|
|
30
|
+
object: organization:acme
|
|
31
|
+
- user: identity_account:vera
|
|
32
|
+
relation: viewer
|
|
33
|
+
object: organization:acme
|
|
34
|
+
- user: identity_account:mallory
|
|
35
|
+
relation: member
|
|
36
|
+
object: organization:other
|
|
37
|
+
|
|
38
|
+
# An ORG-visible server oscar authored (the org viewer tuple the
|
|
39
|
+
# visibility writer emits).
|
|
40
|
+
- user: organization:acme
|
|
41
|
+
relation: organization
|
|
42
|
+
object: mcp_server:github
|
|
43
|
+
- user: identity_account:oscar
|
|
44
|
+
relation: owner
|
|
45
|
+
object: mcp_server:github
|
|
46
|
+
- user: organization:acme#viewer
|
|
47
|
+
relation: viewer
|
|
48
|
+
object: mcp_server:github
|
|
49
|
+
|
|
50
|
+
# A PRIVATE server oscar authored (no visibility tuple).
|
|
51
|
+
- user: organization:acme
|
|
52
|
+
relation: organization
|
|
53
|
+
object: mcp_server:vault
|
|
54
|
+
- user: identity_account:oscar
|
|
55
|
+
relation: owner
|
|
56
|
+
object: mcp_server:vault
|
|
57
|
+
|
|
58
|
+
tests:
|
|
59
|
+
- name: authoring an MCP server is an admin act, the blueprint bar
|
|
60
|
+
check:
|
|
61
|
+
- user: identity_account:olivia
|
|
62
|
+
object: organization:acme
|
|
63
|
+
assertions:
|
|
64
|
+
can_create_mcp_server: true
|
|
65
|
+
can_create_agent: true
|
|
66
|
+
- user: identity_account:oscar
|
|
67
|
+
object: organization:acme
|
|
68
|
+
assertions:
|
|
69
|
+
can_create_mcp_server: true
|
|
70
|
+
can_create_agent: true
|
|
71
|
+
|
|
72
|
+
- name: a member, a viewer and an outsider cannot author one
|
|
73
|
+
check:
|
|
74
|
+
- user: identity_account:dave
|
|
75
|
+
object: organization:acme
|
|
76
|
+
assertions:
|
|
77
|
+
can_create_mcp_server: false
|
|
78
|
+
- user: identity_account:vera
|
|
79
|
+
object: organization:acme
|
|
80
|
+
assertions:
|
|
81
|
+
can_create_mcp_server: false
|
|
82
|
+
- user: identity_account:mallory
|
|
83
|
+
object: organization:acme
|
|
84
|
+
assertions:
|
|
85
|
+
can_create_mcp_server: false
|
|
86
|
+
|
|
87
|
+
- name: a member connects an admin-authored org-visible server with their own credentials
|
|
88
|
+
check:
|
|
89
|
+
- user: identity_account:dave
|
|
90
|
+
object: mcp_server:github
|
|
91
|
+
context:
|
|
92
|
+
allow: false
|
|
93
|
+
assertions:
|
|
94
|
+
can_view: true
|
|
95
|
+
can_connect: true
|
|
96
|
+
can_edit: false
|
|
97
|
+
- user: identity_account:vera
|
|
98
|
+
object: mcp_server:github
|
|
99
|
+
context:
|
|
100
|
+
allow: false
|
|
101
|
+
assertions:
|
|
102
|
+
can_view: true
|
|
103
|
+
can_connect: true
|
|
104
|
+
can_edit: false
|
|
105
|
+
- user: identity_account:mallory
|
|
106
|
+
object: mcp_server:github
|
|
107
|
+
context:
|
|
108
|
+
allow: false
|
|
109
|
+
assertions:
|
|
110
|
+
can_view: false
|
|
111
|
+
can_connect: false
|
|
112
|
+
|
|
113
|
+
- name: a private server stays with its author and the org admins
|
|
114
|
+
check:
|
|
115
|
+
- user: identity_account:oscar
|
|
116
|
+
object: mcp_server:vault
|
|
117
|
+
context:
|
|
118
|
+
allow: false
|
|
119
|
+
assertions:
|
|
120
|
+
can_view: true
|
|
121
|
+
can_connect: true
|
|
122
|
+
can_edit: true
|
|
123
|
+
- user: identity_account:olivia
|
|
124
|
+
object: mcp_server:vault
|
|
125
|
+
context:
|
|
126
|
+
allow: false
|
|
127
|
+
assertions:
|
|
128
|
+
can_view: true
|
|
129
|
+
can_edit: true
|
|
130
|
+
- user: identity_account:dave
|
|
131
|
+
object: mcp_server:vault
|
|
132
|
+
context:
|
|
133
|
+
allow: false
|
|
134
|
+
assertions:
|
|
135
|
+
can_view: false
|
|
136
|
+
can_connect: false
|
|
137
|
+
- user: identity_account:vera
|
|
138
|
+
object: mcp_server:vault
|
|
139
|
+
context:
|
|
140
|
+
allow: false
|
|
141
|
+
assertions:
|
|
142
|
+
can_view: false
|
|
143
|
+
can_connect: false
|
|
@@ -50,6 +50,7 @@ const FIXTURES = new URL("./fixtures/fga/", import.meta.url);
|
|
|
50
50
|
*/
|
|
51
51
|
const DOCUMENTS = [
|
|
52
52
|
"agent-channel-owner.fga.yaml",
|
|
53
|
+
"agent-instance-creation.fga.yaml",
|
|
53
54
|
"agent-share-owner.fga.yaml",
|
|
54
55
|
"artifact-org-and-owner.fga.yaml",
|
|
55
56
|
"blueprint-private-visibility.fga.yaml",
|
|
@@ -58,6 +59,7 @@ const DOCUMENTS = [
|
|
|
58
59
|
"channel-session-visibility.fga.yaml",
|
|
59
60
|
"cross-org-share-creation.fga.yaml",
|
|
60
61
|
"default-instance-inheritance.fga.yaml",
|
|
62
|
+
"mcp-server-authoring.fga.yaml",
|
|
61
63
|
"memory-subject-only.fga.yaml",
|
|
62
64
|
"org-admin-owner-inheritance.fga.yaml",
|
|
63
65
|
"org-shared-environment.fga.yaml",
|
package/src/index.ts
CHANGED
|
@@ -309,6 +309,19 @@ export { newAuthorizeStep } from "./pipeline/steps/authorize.js";
|
|
|
309
309
|
// composition never re-derives the set.
|
|
310
310
|
export { isRunGateCheck } from "./pipeline/steps/authorize-run-target.js";
|
|
311
311
|
export { newValidateProtoStep } from "./pipeline/steps/validation.js";
|
|
312
|
+
// The create-shaping steps, for an envelope kind a composition serves
|
|
313
|
+
// itself (a cloud_only kind has no OSS controller to run them): between
|
|
314
|
+
// ValidateProto and its own domain step the composition runs the SAME
|
|
315
|
+
// ResolveSlug and BuildNewState every OSS create runs, so how a slug is
|
|
316
|
+
// derived from a name, how an id is spelled, how status.audit is stamped
|
|
317
|
+
// for the caller and how visibility defaults live exactly once and move
|
|
318
|
+
// together. The RequestContext must carry the kind (its fourth
|
|
319
|
+
// constructor argument) for BuildNewState to pick the id prefix.
|
|
320
|
+
// CheckDuplicate is deliberately not here: it reads this server's Store,
|
|
321
|
+
// and a composition's own table answers that question in a step of the
|
|
322
|
+
// same name over its own repo.
|
|
323
|
+
export { newBuildNewStateStep } from "./pipeline/steps/defaults.js";
|
|
324
|
+
export { newResolveSlugStep } from "./pipeline/steps/slug.js";
|
|
312
325
|
|
|
313
326
|
// The driver interfaces and the store-fault classes the ratified mapping
|
|
314
327
|
// keys on (typed not-found → NotFound; anything else rethrows as an
|