@stigmer/server 3.15.3-dev.20260914100347 → 3.15.3-dev.20260916211208
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/README.md +3 -3
- package/dist/archive/content-store.d.ts +35 -0
- package/dist/archive/content-store.d.ts.map +1 -0
- package/dist/archive/content-store.js +98 -0
- package/dist/archive/content-store.js.map +1 -0
- package/dist/archive/inflate.d.ts +22 -0
- package/dist/archive/inflate.d.ts.map +1 -0
- package/dist/archive/inflate.js +75 -0
- package/dist/archive/inflate.js.map +1 -0
- package/dist/archive/limits.d.ts +33 -0
- package/dist/archive/limits.d.ts.map +1 -0
- package/dist/archive/limits.js +31 -0
- package/dist/archive/limits.js.map +1 -0
- package/dist/archive/open.d.ts +24 -0
- package/dist/archive/open.d.ts.map +1 -0
- package/dist/archive/open.js +93 -0
- package/dist/archive/open.js.map +1 -0
- package/dist/{domain/skill/storage → archive}/prefilter.d.ts +5 -0
- package/dist/archive/prefilter.d.ts.map +1 -0
- package/dist/archive/prefilter.js.map +1 -0
- package/dist/archive/write.d.ts +8 -0
- package/dist/archive/write.d.ts.map +1 -0
- package/dist/archive/write.js +44 -0
- package/dist/archive/write.js.map +1 -0
- package/dist/authorization/authorizer.d.ts +98 -0
- package/dist/authorization/authorizer.d.ts.map +1 -0
- package/dist/authorization/authorizer.js +156 -0
- package/dist/authorization/authorizer.js.map +1 -0
- package/dist/authorization/derived-tuples.d.ts +42 -0
- package/dist/authorization/derived-tuples.d.ts.map +1 -0
- package/dist/authorization/derived-tuples.js +240 -0
- package/dist/authorization/derived-tuples.js.map +1 -0
- package/dist/authorization/evaluator.d.ts +66 -0
- package/dist/authorization/evaluator.d.ts.map +1 -0
- package/dist/authorization/evaluator.js +153 -0
- package/dist/authorization/evaluator.js.map +1 -0
- package/dist/authorization/facts.d.ts +29 -0
- package/dist/authorization/facts.d.ts.map +1 -0
- package/dist/authorization/facts.js +17 -0
- package/dist/authorization/facts.js.map +1 -0
- package/dist/authorization/list-read-scope.d.ts +18 -0
- package/dist/authorization/list-read-scope.d.ts.map +1 -0
- package/dist/authorization/list-read-scope.js +155 -0
- package/dist/authorization/list-read-scope.js.map +1 -0
- package/dist/authorization/model/agent.d.ts +2 -0
- package/dist/authorization/model/agent.d.ts.map +1 -0
- package/dist/authorization/model/agent.js +42 -0
- package/dist/authorization/model/agent.js.map +1 -0
- package/dist/authorization/model/agent_channel.d.ts +2 -0
- package/dist/authorization/model/agent_channel.d.ts.map +1 -0
- package/dist/authorization/model/agent_channel.js +38 -0
- package/dist/authorization/model/agent_channel.js.map +1 -0
- package/dist/authorization/model/agent_execution.d.ts +2 -0
- package/dist/authorization/model/agent_execution.d.ts.map +1 -0
- package/dist/authorization/model/agent_execution.js +25 -0
- package/dist/authorization/model/agent_execution.js.map +1 -0
- package/dist/authorization/model/agent_instance.d.ts +2 -0
- package/dist/authorization/model/agent_instance.d.ts.map +1 -0
- package/dist/authorization/model/agent_instance.js +47 -0
- package/dist/authorization/model/agent_instance.js.map +1 -0
- package/dist/authorization/model/agent_share.d.ts +2 -0
- package/dist/authorization/model/agent_share.d.ts.map +1 -0
- package/dist/authorization/model/agent_share.js +29 -0
- package/dist/authorization/model/agent_share.js.map +1 -0
- package/dist/authorization/model/api_key.d.ts +2 -0
- package/dist/authorization/model/api_key.d.ts.map +1 -0
- package/dist/authorization/model/api_key.js +27 -0
- package/dist/authorization/model/api_key.js.map +1 -0
- package/dist/authorization/model/artifact.d.ts +2 -0
- package/dist/authorization/model/artifact.d.ts.map +1 -0
- package/dist/authorization/model/artifact.js +27 -0
- package/dist/authorization/model/artifact.js.map +1 -0
- package/dist/authorization/model/channel_app.d.ts +2 -0
- package/dist/authorization/model/channel_app.d.ts.map +1 -0
- package/dist/authorization/model/channel_app.js +28 -0
- package/dist/authorization/model/channel_app.js.map +1 -0
- package/dist/authorization/model/default-of.d.ts +38 -0
- package/dist/authorization/model/default-of.d.ts.map +1 -0
- package/dist/authorization/model/default-of.js +39 -0
- package/dist/authorization/model/default-of.js.map +1 -0
- package/dist/authorization/model/environment.d.ts +2 -0
- package/dist/authorization/model/environment.d.ts.map +1 -0
- package/dist/authorization/model/environment.js +33 -0
- package/dist/authorization/model/environment.js.map +1 -0
- package/dist/authorization/model/execution_context.d.ts +2 -0
- package/dist/authorization/model/execution_context.d.ts.map +1 -0
- package/dist/authorization/model/execution_context.js +19 -0
- package/dist/authorization/model/execution_context.js.map +1 -0
- package/dist/authorization/model/iam_policy.d.ts +2 -0
- package/dist/authorization/model/iam_policy.d.ts.map +1 -0
- package/dist/authorization/model/iam_policy.js +31 -0
- package/dist/authorization/model/iam_policy.js.map +1 -0
- package/dist/authorization/model/identity_account.d.ts +2 -0
- package/dist/authorization/model/identity_account.d.ts.map +1 -0
- package/dist/authorization/model/identity_account.js +25 -0
- package/dist/authorization/model/identity_account.js.map +1 -0
- package/dist/authorization/model/index.d.ts +36 -0
- package/dist/authorization/model/index.d.ts.map +1 -0
- package/dist/authorization/model/index.js +72 -0
- package/dist/authorization/model/index.js.map +1 -0
- package/dist/authorization/model/mcp_server.d.ts +2 -0
- package/dist/authorization/model/mcp_server.d.ts.map +1 -0
- package/dist/authorization/model/mcp_server.js +37 -0
- package/dist/authorization/model/mcp_server.js.map +1 -0
- package/dist/authorization/model/memory.d.ts +2 -0
- package/dist/authorization/model/memory.d.ts.map +1 -0
- package/dist/authorization/model/memory.js +26 -0
- package/dist/authorization/model/memory.js.map +1 -0
- package/dist/authorization/model/oauth_app.d.ts +2 -0
- package/dist/authorization/model/oauth_app.d.ts.map +1 -0
- package/dist/authorization/model/oauth_app.js +30 -0
- package/dist/authorization/model/oauth_app.js.map +1 -0
- package/dist/authorization/model/organization.d.ts +2 -0
- package/dist/authorization/model/organization.d.ts.map +1 -0
- package/dist/authorization/model/organization.js +54 -0
- package/dist/authorization/model/organization.js.map +1 -0
- package/dist/authorization/model/plugin.d.ts +2 -0
- package/dist/authorization/model/plugin.d.ts.map +1 -0
- package/dist/authorization/model/plugin.js +44 -0
- package/dist/authorization/model/plugin.js.map +1 -0
- package/dist/authorization/model/project.d.ts +2 -0
- package/dist/authorization/model/project.d.ts.map +1 -0
- package/dist/authorization/model/project.js +32 -0
- package/dist/authorization/model/project.js.map +1 -0
- package/dist/authorization/model/rewrite.d.ts +127 -0
- package/dist/authorization/model/rewrite.d.ts.map +1 -0
- package/dist/authorization/model/rewrite.js +82 -0
- package/dist/authorization/model/rewrite.js.map +1 -0
- package/dist/authorization/model/schedule.d.ts +2 -0
- package/dist/authorization/model/schedule.d.ts.map +1 -0
- package/dist/authorization/model/schedule.js +29 -0
- package/dist/authorization/model/schedule.js.map +1 -0
- package/dist/authorization/model/session.d.ts +2 -0
- package/dist/authorization/model/session.d.ts.map +1 -0
- package/dist/authorization/model/session.js +38 -0
- package/dist/authorization/model/session.js.map +1 -0
- package/dist/authorization/model/skill.d.ts +2 -0
- package/dist/authorization/model/skill.d.ts.map +1 -0
- package/dist/authorization/model/skill.js +38 -0
- package/dist/authorization/model/skill.js.map +1 -0
- package/dist/authorization/model/workflow.d.ts +2 -0
- package/dist/authorization/model/workflow.d.ts.map +1 -0
- package/dist/authorization/model/workflow.js +38 -0
- package/dist/authorization/model/workflow.js.map +1 -0
- package/dist/authorization/model/workflow_execution.d.ts +2 -0
- package/dist/authorization/model/workflow_execution.d.ts.map +1 -0
- package/dist/authorization/model/workflow_execution.js +32 -0
- package/dist/authorization/model/workflow_execution.js.map +1 -0
- package/dist/authorization/model/workflow_instance.d.ts +2 -0
- package/dist/authorization/model/workflow_instance.d.ts.map +1 -0
- package/dist/authorization/model/workflow_instance.js +92 -0
- package/dist/authorization/model/workflow_instance.js.map +1 -0
- package/dist/authorization/organization-directory.d.ts +13 -0
- package/dist/authorization/organization-directory.d.ts.map +1 -0
- package/dist/authorization/organization-directory.js +83 -0
- package/dist/authorization/organization-directory.js.map +1 -0
- package/dist/authorization/person.d.ts +42 -0
- package/dist/authorization/person.d.ts.map +1 -0
- package/dist/authorization/person.js +19 -0
- package/dist/authorization/person.js.map +1 -0
- package/dist/authorization/posture.d.ts +38 -0
- package/dist/authorization/posture.d.ts.map +1 -0
- package/dist/authorization/posture.js +7 -0
- package/dist/authorization/posture.js.map +1 -0
- package/dist/authorization/schedule-fire-caller.d.ts +12 -0
- package/dist/authorization/schedule-fire-caller.d.ts.map +1 -0
- package/dist/authorization/schedule-fire-caller.js +67 -0
- package/dist/authorization/schedule-fire-caller.js.map +1 -0
- package/dist/authorization/store-test-kit.d.ts +68 -0
- package/dist/authorization/store-test-kit.d.ts.map +1 -0
- package/dist/authorization/store-test-kit.js +311 -0
- package/dist/authorization/store-test-kit.js.map +1 -0
- package/dist/authorization/tuples.d.ts +115 -0
- package/dist/authorization/tuples.d.ts.map +1 -0
- package/dist/authorization/tuples.js +83 -0
- package/dist/authorization/tuples.js.map +1 -0
- package/dist/boot/compose.d.ts.map +1 -1
- package/dist/boot/compose.js +157 -32
- package/dist/boot/compose.js.map +1 -1
- package/dist/boot/inprocess.d.ts +12 -0
- package/dist/boot/inprocess.d.ts.map +1 -1
- package/dist/boot/inprocess.js +62 -20
- package/dist/boot/inprocess.js.map +1 -1
- package/dist/domain/agent/controller.d.ts.map +1 -1
- package/dist/domain/agent/controller.js +9 -0
- package/dist/domain/agent/controller.js.map +1 -1
- package/dist/domain/iampolicy/constants.d.ts +11 -0
- package/dist/domain/iampolicy/constants.d.ts.map +1 -1
- package/dist/domain/iampolicy/constants.js +11 -0
- package/dist/domain/iampolicy/constants.js.map +1 -1
- package/dist/domain/iampolicy/membership.d.ts +72 -1
- package/dist/domain/iampolicy/membership.d.ts.map +1 -1
- package/dist/domain/iampolicy/membership.js +141 -56
- package/dist/domain/iampolicy/membership.js.map +1 -1
- package/dist/domain/identityaccount/actor.d.ts +26 -0
- package/dist/domain/identityaccount/actor.d.ts.map +1 -0
- package/dist/domain/identityaccount/actor.js +17 -0
- package/dist/domain/identityaccount/actor.js.map +1 -0
- package/dist/domain/mcpserver/controller.d.ts.map +1 -1
- package/dist/domain/mcpserver/controller.js +9 -0
- package/dist/domain/mcpserver/controller.js.map +1 -1
- package/dist/domain/plugin/archive.d.ts +37 -0
- package/dist/domain/plugin/archive.d.ts.map +1 -0
- package/dist/domain/plugin/archive.js +50 -0
- package/dist/domain/plugin/archive.js.map +1 -0
- package/dist/domain/plugin/constants.d.ts +38 -0
- package/dist/domain/plugin/constants.d.ts.map +1 -0
- package/dist/domain/plugin/constants.js +46 -0
- package/dist/domain/plugin/constants.js.map +1 -0
- package/dist/domain/plugin/controller.d.ts +25 -0
- package/dist/domain/plugin/controller.d.ts.map +1 -0
- package/dist/domain/plugin/controller.js +493 -0
- package/dist/domain/plugin/controller.js.map +1 -0
- package/dist/domain/plugin/materialize/agent.d.ts +13 -0
- package/dist/domain/plugin/materialize/agent.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/agent.js +128 -0
- package/dist/domain/plugin/materialize/agent.js.map +1 -0
- package/dist/domain/plugin/materialize/default-agent-instructions.d.ts +22 -0
- package/dist/domain/plugin/materialize/default-agent-instructions.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/default-agent-instructions.js +31 -0
- package/dist/domain/plugin/materialize/default-agent-instructions.js.map +1 -0
- package/dist/domain/plugin/materialize/identity.d.ts +28 -0
- package/dist/domain/plugin/materialize/identity.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/identity.js +40 -0
- package/dist/domain/plugin/materialize/identity.js.map +1 -0
- package/dist/domain/plugin/materialize/mcp-servers.d.ts +15 -0
- package/dist/domain/plugin/materialize/mcp-servers.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/mcp-servers.js +131 -0
- package/dist/domain/plugin/materialize/mcp-servers.js.map +1 -0
- package/dist/domain/plugin/materialize/plan.d.ts +24 -0
- package/dist/domain/plugin/materialize/plan.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/plan.js +77 -0
- package/dist/domain/plugin/materialize/plan.js.map +1 -0
- package/dist/domain/plugin/materialize/ports.d.ts +42 -0
- package/dist/domain/plugin/materialize/ports.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/ports.js +2 -0
- package/dist/domain/plugin/materialize/ports.js.map +1 -0
- package/dist/domain/plugin/materialize/skills.d.ts +12 -0
- package/dist/domain/plugin/materialize/skills.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/skills.js +44 -0
- package/dist/domain/plugin/materialize/skills.js.map +1 -0
- package/dist/domain/plugin/materialize/workflows.d.ts +15 -0
- package/dist/domain/plugin/materialize/workflows.d.ts.map +1 -0
- package/dist/domain/plugin/materialize/workflows.js +31 -0
- package/dist/domain/plugin/materialize/workflows.js.map +1 -0
- package/dist/domain/plugin/members.d.ts +42 -0
- package/dist/domain/plugin/members.d.ts.map +1 -0
- package/dist/domain/plugin/members.js +97 -0
- package/dist/domain/plugin/members.js.map +1 -0
- package/dist/domain/plugin/overlay/documents.d.ts +31 -0
- package/dist/domain/plugin/overlay/documents.d.ts.map +1 -0
- package/dist/domain/plugin/overlay/documents.js +38 -0
- package/dist/domain/plugin/overlay/documents.js.map +1 -0
- package/dist/domain/plugin/overlay/parse.d.ts +16 -0
- package/dist/domain/plugin/overlay/parse.d.ts.map +1 -0
- package/dist/domain/plugin/overlay/parse.js +79 -0
- package/dist/domain/plugin/overlay/parse.js.map +1 -0
- package/dist/domain/plugin/overlay/sanitize.d.ts +10 -0
- package/dist/domain/plugin/overlay/sanitize.d.ts.map +1 -0
- package/dist/domain/plugin/overlay/sanitize.js +101 -0
- package/dist/domain/plugin/overlay/sanitize.js.map +1 -0
- package/dist/domain/plugin/push.d.ts +133 -0
- package/dist/domain/plugin/push.d.ts.map +1 -0
- package/dist/domain/plugin/push.js +800 -0
- package/dist/domain/plugin/push.js.map +1 -0
- package/dist/domain/plugin/search-extractor.d.ts +3 -0
- package/dist/domain/plugin/search-extractor.d.ts.map +1 -0
- package/dist/domain/plugin/search-extractor.js +41 -0
- package/dist/domain/plugin/search-extractor.js.map +1 -0
- package/dist/domain/skill/constants.d.ts +6 -11
- package/dist/domain/skill/constants.d.ts.map +1 -1
- package/dist/domain/skill/constants.js +6 -11
- package/dist/domain/skill/constants.js.map +1 -1
- package/dist/domain/skill/controller.d.ts.map +1 -1
- package/dist/domain/skill/controller.js +33 -30
- package/dist/domain/skill/controller.js.map +1 -1
- package/dist/domain/skill/push.d.ts +9 -10
- package/dist/domain/skill/push.d.ts.map +1 -1
- package/dist/domain/skill/push.js +53 -122
- package/dist/domain/skill/push.js.map +1 -1
- package/dist/domain/skill/search-extractor.d.ts.map +1 -1
- package/dist/domain/skill/search-extractor.js.map +1 -1
- package/dist/domain/skill/storage/artifact-storage.d.ts +26 -29
- package/dist/domain/skill/storage/artifact-storage.d.ts.map +1 -1
- package/dist/domain/skill/storage/artifact-storage.js +6 -103
- package/dist/domain/skill/storage/artifact-storage.js.map +1 -1
- package/dist/domain/skill/storage/zip-gate.d.ts +1 -2
- package/dist/domain/skill/storage/zip-gate.d.ts.map +1 -1
- package/dist/domain/skill/storage/zip-gate.js +56 -126
- package/dist/domain/skill/storage/zip-gate.js.map +1 -1
- package/dist/domain/skill/version-resolution.d.ts +5 -5
- package/dist/domain/skill/version-resolution.d.ts.map +1 -1
- package/dist/domain/skill/version-resolution.js +34 -216
- package/dist/domain/skill/version-resolution.js.map +1 -1
- package/dist/domain/workflow/controller.d.ts.map +1 -1
- package/dist/domain/workflow/controller.js +30 -3
- package/dist/domain/workflow/controller.js.map +1 -1
- package/dist/domain/workflow/registry/data/task-kind-registry.json +1 -0
- package/dist/extensions/authorizer.d.ts +10 -5
- package/dist/extensions/authorizer.d.ts.map +1 -1
- package/dist/extensions/drivers.d.ts +4 -1
- package/dist/extensions/drivers.d.ts.map +1 -1
- package/dist/extensions/list-read-scope.d.ts +75 -11
- package/dist/extensions/list-read-scope.d.ts.map +1 -1
- package/dist/extensions/list-read-scope.js +40 -7
- package/dist/extensions/list-read-scope.js.map +1 -1
- package/dist/extensions/organization-directory.d.ts +13 -9
- package/dist/extensions/organization-directory.d.ts.map +1 -1
- package/dist/extensions/organization-directory.js.map +1 -1
- package/dist/extensions/resource-authorization.d.ts +33 -0
- package/dist/extensions/resource-authorization.d.ts.map +1 -1
- package/dist/extensions/schedule-fire-caller.d.ts +45 -18
- package/dist/extensions/schedule-fire-caller.d.ts.map +1 -1
- package/dist/extensions/schedule-fire-caller.js +12 -1
- package/dist/extensions/schedule-fire-caller.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/pipeline/apiresource-labels.d.ts +23 -3
- package/dist/pipeline/apiresource-labels.d.ts.map +1 -1
- package/dist/pipeline/apiresource-labels.js +20 -0
- package/dist/pipeline/apiresource-labels.js.map +1 -1
- package/dist/pipeline/apiresource-meta.d.ts +21 -0
- package/dist/pipeline/apiresource-meta.d.ts.map +1 -1
- package/dist/pipeline/apiresource-meta.js +28 -0
- package/dist/pipeline/apiresource-meta.js.map +1 -1
- package/dist/pipeline/errors.d.ts.map +1 -1
- package/dist/pipeline/errors.js.map +1 -1
- package/dist/pipeline/steps/authorization-facts.d.ts +12 -0
- package/dist/pipeline/steps/authorization-facts.d.ts.map +1 -0
- package/dist/pipeline/steps/authorization-facts.js +100 -0
- package/dist/pipeline/steps/authorization-facts.js.map +1 -0
- package/dist/pipeline/steps/authorization-tuples.d.ts.map +1 -1
- package/dist/pipeline/steps/authorization-tuples.js +7 -26
- package/dist/pipeline/steps/authorization-tuples.js.map +1 -1
- package/dist/pipeline/steps/delete.d.ts.map +1 -1
- package/dist/pipeline/steps/delete.js +1 -1
- package/dist/pipeline/steps/delete.js.map +1 -1
- package/dist/pipeline/steps/duplicate.d.ts.map +1 -1
- package/dist/pipeline/steps/duplicate.js.map +1 -1
- package/dist/pipeline/steps/guard-plugin-managed.d.ts +12 -0
- package/dist/pipeline/steps/guard-plugin-managed.d.ts.map +1 -0
- package/dist/pipeline/steps/guard-plugin-managed.js +96 -0
- package/dist/pipeline/steps/guard-plugin-managed.js.map +1 -0
- package/dist/pipeline/steps/guard-reserved-labels.d.ts +16 -2
- package/dist/pipeline/steps/guard-reserved-labels.d.ts.map +1 -1
- package/dist/pipeline/steps/guard-reserved-labels.js +11 -7
- package/dist/pipeline/steps/guard-reserved-labels.js.map +1 -1
- package/dist/pipeline/steps/helpers.d.ts.map +1 -1
- package/dist/pipeline/steps/helpers.js.map +1 -1
- package/dist/pipeline/steps/index-search.d.ts.map +1 -1
- package/dist/pipeline/steps/index-search.js.map +1 -1
- package/dist/pipeline/steps/load-existing.d.ts.map +1 -1
- package/dist/pipeline/steps/load-existing.js +1 -1
- package/dist/pipeline/steps/load-existing.js.map +1 -1
- package/dist/pipeline/steps/references.d.ts +16 -0
- package/dist/pipeline/steps/references.d.ts.map +1 -1
- package/dist/pipeline/steps/references.js +18 -0
- package/dist/pipeline/steps/references.js.map +1 -1
- package/dist/pipeline/steps/resolve-artifact-source.d.ts +35 -0
- package/dist/pipeline/steps/resolve-artifact-source.d.ts.map +1 -0
- package/dist/pipeline/steps/resolve-artifact-source.js +27 -0
- package/dist/pipeline/steps/resolve-artifact-source.js.map +1 -0
- package/dist/pipeline/steps/server-stamped-reserved-labels.d.ts.map +1 -1
- package/dist/pipeline/steps/server-stamped-reserved-labels.js.map +1 -1
- package/dist/pipeline/steps/shapes.d.ts +18 -0
- package/dist/pipeline/steps/shapes.d.ts.map +1 -1
- package/dist/pipeline/steps/shapes.js +29 -0
- package/dist/pipeline/steps/shapes.js.map +1 -1
- package/dist/pipeline/steps/slug.d.ts.map +1 -1
- package/dist/pipeline/steps/slug.js.map +1 -1
- package/dist/pipeline/steps/validate-visibility.d.ts +9 -0
- package/dist/pipeline/steps/validate-visibility.d.ts.map +1 -1
- package/dist/pipeline/steps/validate-visibility.js +6 -1
- package/dist/pipeline/steps/validate-visibility.js.map +1 -1
- package/dist/pipeline/steps/validation.d.ts.map +1 -1
- package/dist/pipeline/steps/validation.js.map +1 -1
- package/dist/pipeline/steps/version-archive.d.ts +63 -0
- package/dist/pipeline/steps/version-archive.d.ts.map +1 -0
- package/dist/pipeline/steps/version-archive.js +129 -0
- package/dist/pipeline/steps/version-archive.js.map +1 -0
- package/dist/pipeline/steps/version-history.d.ts +49 -0
- package/dist/pipeline/steps/version-history.d.ts.map +1 -0
- package/dist/pipeline/steps/version-history.js +229 -0
- package/dist/pipeline/steps/version-history.js.map +1 -0
- package/dist/pipeline/steps/visibility-gates.d.ts +8 -0
- package/dist/pipeline/steps/visibility-gates.d.ts.map +1 -1
- package/dist/pipeline/steps/visibility-gates.js +7 -2
- package/dist/pipeline/steps/visibility-gates.js.map +1 -1
- package/dist/query/search/registry.d.ts.map +1 -1
- package/dist/query/search/registry.js +2 -0
- package/dist/query/search/registry.js.map +1 -1
- package/dist/temporal/schedule/run-starter.d.ts +1 -1
- package/dist/temporal/schedule/run-starter.d.ts.map +1 -1
- package/dist/temporal/schedule/run-starter.js +14 -1
- package/dist/temporal/schedule/run-starter.js.map +1 -1
- package/package.json +5 -4
- package/src/archive/__tests__/archive.test.ts +233 -0
- package/src/{domain/skill → archive}/__tests__/prefilter.test.ts +1 -1
- package/src/archive/content-store.ts +132 -0
- package/src/archive/inflate.ts +107 -0
- package/src/archive/limits.ts +42 -0
- package/src/archive/open.ts +131 -0
- package/src/{domain/skill/storage → archive}/prefilter.ts +5 -0
- package/src/archive/write.ts +54 -0
- package/src/authorization/README.md +124 -0
- package/src/authorization/__tests__/authorizer.test.ts +719 -0
- package/src/authorization/__tests__/derived-tuples.test.ts +802 -0
- package/src/authorization/__tests__/drivers.ts +70 -0
- package/src/authorization/__tests__/evaluator.test.ts +359 -0
- package/src/authorization/__tests__/facts.test.ts +155 -0
- package/src/authorization/__tests__/fixtures/fga/agent-channel-owner.fga.yaml +112 -0
- package/src/authorization/__tests__/fixtures/fga/agent-share-owner.fga.yaml +109 -0
- package/src/authorization/__tests__/fixtures/fga/artifact-org-and-owner.fga.yaml +128 -0
- package/src/authorization/__tests__/fixtures/fga/blueprint-private-visibility.fga.yaml +410 -0
- package/src/authorization/__tests__/fixtures/fga/channel-app-owner.fga.yaml +125 -0
- package/src/authorization/__tests__/fixtures/fga/channel-participation.fga.yaml +201 -0
- package/src/authorization/__tests__/fixtures/fga/channel-session-visibility.fga.yaml +187 -0
- package/src/authorization/__tests__/fixtures/fga/cross-org-share-creation.fga.yaml +98 -0
- package/src/authorization/__tests__/fixtures/fga/default-instance-inheritance.fga.yaml +271 -0
- package/src/authorization/__tests__/fixtures/fga/memory-subject-only.fga.yaml +72 -0
- package/src/authorization/__tests__/fixtures/fga/org-admin-owner-inheritance.fga.yaml +328 -0
- package/src/authorization/__tests__/fixtures/fga/org-shared-environment.fga.yaml +144 -0
- package/src/authorization/__tests__/fixtures/fga/platform-visibility.fga.yaml +223 -0
- package/src/authorization/__tests__/fixtures/fga/provider-standing-viewer.fga.yaml +40 -0
- package/src/authorization/__tests__/fixtures/fga/public-visibility-setter.fga.yaml +52 -0
- package/src/authorization/__tests__/fixtures/fga/reserved-label-writer.fga.yaml +41 -0
- package/src/authorization/__tests__/fixtures/fga/schedule-owner.fga.yaml +113 -0
- package/src/authorization/__tests__/fixtures/fga/schedule-session-visibility.fga.yaml +214 -0
- package/src/authorization/__tests__/fixtures/fga/session-personal-resource.fga.yaml +117 -0
- package/src/authorization/__tests__/fixtures/fga/workflow-execution-sharing.fga.yaml +192 -0
- package/src/authorization/__tests__/list-read-scope.measure.test.ts +317 -0
- package/src/authorization/__tests__/list-read-scope.test.ts +796 -0
- package/src/authorization/__tests__/organization-directory.test.ts +236 -0
- package/src/authorization/__tests__/person.test.ts +114 -0
- package/src/authorization/__tests__/posture.test.ts +25 -0
- package/src/authorization/__tests__/schedule-fire-caller.test.ts +134 -0
- package/src/authorization/__tests__/store-tests.test.ts +306 -0
- package/src/authorization/__tests__/support.ts +101 -0
- package/src/authorization/__tests__/tuples.test.ts +62 -0
- package/src/authorization/__tests__/wire-permissions.test.ts +154 -0
- package/src/authorization/authorizer.ts +208 -0
- package/src/authorization/derived-tuples.ts +384 -0
- package/src/authorization/evaluator.ts +283 -0
- package/src/authorization/facts.ts +47 -0
- package/src/authorization/list-read-scope.ts +216 -0
- package/src/authorization/model/__tests__/registry.test.ts +317 -0
- package/src/authorization/model/agent.ts +64 -0
- package/src/authorization/model/agent_channel.ts +49 -0
- package/src/authorization/model/agent_execution.ts +33 -0
- package/src/authorization/model/agent_instance.ts +66 -0
- package/src/authorization/model/agent_share.ts +40 -0
- package/src/authorization/model/api_key.ts +28 -0
- package/src/authorization/model/artifact.ts +38 -0
- package/src/authorization/model/channel_app.ts +39 -0
- package/src/authorization/model/default-of.ts +99 -0
- package/src/authorization/model/environment.ts +48 -0
- package/src/authorization/model/execution_context.ts +20 -0
- package/src/authorization/model/iam_policy.ts +42 -0
- package/src/authorization/model/identity_account.ts +26 -0
- package/src/authorization/model/index.ts +108 -0
- package/src/authorization/model/mcp_server.ts +59 -0
- package/src/authorization/model/memory.ts +27 -0
- package/src/authorization/model/oauth_app.ts +42 -0
- package/src/authorization/model/organization.ts +55 -0
- package/src/authorization/model/plugin.ts +66 -0
- package/src/authorization/model/project.ts +47 -0
- package/src/authorization/model/rewrite.ts +213 -0
- package/src/authorization/model/schedule.ts +40 -0
- package/src/authorization/model/session.ts +50 -0
- package/src/authorization/model/skill.ts +60 -0
- package/src/authorization/model/workflow.ts +60 -0
- package/src/authorization/model/workflow_execution.ts +44 -0
- package/src/authorization/model/workflow_instance.ts +122 -0
- package/src/authorization/organization-directory.ts +114 -0
- package/src/authorization/person.ts +68 -0
- package/src/authorization/posture.ts +49 -0
- package/src/authorization/schedule-fire-caller.ts +91 -0
- package/src/authorization/store-test-kit.ts +454 -0
- package/src/authorization/tuples.ts +190 -0
- package/src/boot/compose.ts +175 -38
- package/src/boot/inprocess.ts +108 -30
- package/src/domain/agent/controller.ts +11 -0
- package/src/domain/iampolicy/__tests__/membership.test.ts +357 -3
- package/src/domain/iampolicy/constants.ts +12 -0
- package/src/domain/iampolicy/membership.ts +221 -66
- package/src/domain/identityaccount/actor.ts +44 -0
- package/src/domain/mcpserver/controller.ts +11 -0
- package/src/domain/plugin/__tests__/materialize.test.ts +303 -0
- package/src/domain/plugin/__tests__/overlay-parse.test.ts +85 -0
- package/src/domain/plugin/__tests__/plugin.test.ts +681 -0
- package/src/domain/plugin/__tests__/sanitize.test.ts +174 -0
- package/src/domain/plugin/archive.ts +89 -0
- package/src/domain/plugin/constants.ts +53 -0
- package/src/domain/plugin/controller.ts +913 -0
- package/src/domain/plugin/materialize/agent.ts +186 -0
- package/src/domain/plugin/materialize/default-agent-instructions.ts +59 -0
- package/src/domain/plugin/materialize/identity.ts +67 -0
- package/src/domain/plugin/materialize/mcp-servers.ts +175 -0
- package/src/domain/plugin/materialize/plan.ts +124 -0
- package/src/domain/plugin/materialize/ports.ts +53 -0
- package/src/domain/plugin/materialize/skills.ts +68 -0
- package/src/domain/plugin/materialize/workflows.ts +51 -0
- package/src/domain/plugin/members.ts +180 -0
- package/src/domain/plugin/overlay/documents.ts +78 -0
- package/src/domain/plugin/overlay/parse.ts +115 -0
- package/src/domain/plugin/overlay/sanitize.ts +149 -0
- package/src/domain/plugin/push.ts +1062 -0
- package/src/domain/plugin/search-extractor.ts +60 -0
- package/src/domain/skill/constants.ts +11 -14
- package/src/domain/skill/controller.ts +44 -36
- package/src/domain/skill/push.ts +61 -156
- package/src/domain/skill/search-extractor.ts +3 -1
- package/src/domain/skill/storage/artifact-storage.ts +23 -124
- package/src/domain/skill/storage/zip-gate.ts +58 -154
- package/src/domain/skill/version-resolution.ts +67 -269
- package/src/domain/workflow/controller.ts +38 -4
- package/src/domain/workflow/registry/data/task-kind-registry.json +1 -0
- package/src/extensions/__tests__/built-in-authorization-composed.test.ts +835 -0
- package/src/extensions/__tests__/composed-support.ts +32 -1
- package/src/extensions/__tests__/extension-composition.test.ts +35 -0
- package/src/extensions/__tests__/list-read-scope.test.ts +245 -3
- package/src/extensions/__tests__/role-reconciliation-composed.test.ts +209 -0
- package/src/extensions/__tests__/tier-truthfulness.test.ts +6 -14
- package/src/extensions/authorizer.ts +10 -5
- package/src/extensions/drivers.ts +4 -1
- package/src/extensions/list-read-scope.ts +116 -16
- package/src/extensions/organization-directory.ts +13 -9
- package/src/extensions/resource-authorization.ts +34 -0
- package/src/extensions/schedule-fire-caller.ts +49 -18
- package/src/index.ts +51 -1
- package/src/pipeline/__tests__/inherited-authorization-parent.test.ts +51 -0
- package/src/pipeline/__tests__/router-transport.test.ts +1 -3
- package/src/pipeline/apiresource-labels.ts +31 -3
- package/src/pipeline/apiresource-meta.ts +37 -0
- package/src/pipeline/errors.ts +5 -5
- package/src/pipeline/steps/__tests__/authorize-annotation-completeness.test.ts +1 -20
- package/src/pipeline/steps/__tests__/guard-memory-capture.test.ts +3 -9
- package/src/pipeline/steps/__tests__/guard-plugin-managed.test.ts +151 -0
- package/src/pipeline/steps/__tests__/guard-reserved-labels.test.ts +83 -8
- package/src/pipeline/steps/authorization-facts.ts +131 -0
- package/src/pipeline/steps/authorization-tuples.ts +7 -28
- package/src/pipeline/steps/delete.ts +11 -3
- package/src/pipeline/steps/duplicate.ts +8 -2
- package/src/pipeline/steps/guard-plugin-managed.ts +133 -0
- package/src/pipeline/steps/guard-reserved-labels.ts +29 -8
- package/src/pipeline/steps/helpers.ts +4 -1
- package/src/pipeline/steps/index-search.ts +28 -15
- package/src/pipeline/steps/load-existing.ts +12 -3
- package/src/pipeline/steps/references.ts +36 -2
- package/src/pipeline/steps/resolve-artifact-source.ts +66 -0
- package/src/pipeline/steps/server-stamped-reserved-labels.ts +2 -1
- package/src/pipeline/steps/shapes.ts +31 -0
- package/src/pipeline/steps/slug.ts +7 -2
- package/src/pipeline/steps/validate-visibility.ts +9 -2
- package/src/pipeline/steps/validation.ts +3 -1
- package/src/pipeline/steps/version-archive.ts +225 -0
- package/src/pipeline/steps/version-history.ts +362 -0
- package/src/pipeline/steps/visibility-gates.ts +12 -9
- package/src/query/README.md +1 -1
- package/src/query/search/__tests__/criteria.test.ts +6 -7
- package/src/query/search/__tests__/query-store.test.ts +9 -2
- package/src/query/search/__tests__/registry.test.ts +6 -4
- package/src/query/search/registry.ts +6 -1
- package/src/temporal/schedule/__tests__/run-starter.test.ts +86 -24
- package/src/temporal/schedule/run-starter.ts +31 -8
- package/dist/domain/skill/storage/prefilter.d.ts.map +0 -1
- package/dist/domain/skill/storage/prefilter.js.map +0 -1
- /package/dist/{domain/skill/storage → archive}/prefilter.js +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/org-shared-environment.fga.yaml
|
|
2
|
+
# at commit b87dd1170 (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 org-shared environments (T06).
|
|
6
|
+
#
|
|
7
|
+
# Environments are personal resources with opt-in org sharing. Setting
|
|
8
|
+
# visibility_org writes one tuple (viewer@organization:<org>#viewer — the
|
|
9
|
+
# org's full read audience, cloud#257) that grants everyone in the org
|
|
10
|
+
# REDACTED view only. The creator-only secret-reveal
|
|
11
|
+
# invariant holds at every level: can_read_secrets never widens with
|
|
12
|
+
# sharing. Runtime resolution for executions is app-level (server-side
|
|
13
|
+
# policy on metadata.visibility), deliberately NOT modeled here — no FGA
|
|
14
|
+
# relation could allow a member's execution to use a secret while denying
|
|
15
|
+
# the same member's reveal.
|
|
16
|
+
#
|
|
17
|
+
# Run with:
|
|
18
|
+
# fga model test --tests org-shared-environment.fga.yaml
|
|
19
|
+
#
|
|
20
|
+
# Scenario: org "acme" has creator carol, plain member dave, read-only
|
|
21
|
+
# viewer vera, and an explicit viewer grant for frank on the private
|
|
22
|
+
# environment; mallory belongs to an unrelated org. Carol owns a PRIVATE environment and an
|
|
23
|
+
# ORG-shared environment.
|
|
24
|
+
name: org-shared-environment
|
|
25
|
+
model_file: ../model/fga.mod
|
|
26
|
+
|
|
27
|
+
tuples:
|
|
28
|
+
# --- Org memberships ---
|
|
29
|
+
- user: identity_account:carol
|
|
30
|
+
relation: member
|
|
31
|
+
object: organization:acme
|
|
32
|
+
- user: identity_account:dave
|
|
33
|
+
relation: member
|
|
34
|
+
object: organization:acme
|
|
35
|
+
- user: identity_account:frank
|
|
36
|
+
relation: member
|
|
37
|
+
object: organization:acme
|
|
38
|
+
- user: identity_account:vera
|
|
39
|
+
relation: viewer
|
|
40
|
+
object: organization:acme
|
|
41
|
+
- user: identity_account:mallory
|
|
42
|
+
relation: member
|
|
43
|
+
object: organization:outsider
|
|
44
|
+
|
|
45
|
+
# --- PRIVATE environment (creation tuples only) ---
|
|
46
|
+
- user: organization:acme
|
|
47
|
+
relation: organization
|
|
48
|
+
object: environment:private-creds
|
|
49
|
+
- user: identity_account:carol
|
|
50
|
+
relation: owner
|
|
51
|
+
object: environment:private-creds
|
|
52
|
+
- user: identity_account:carol
|
|
53
|
+
relation: creator
|
|
54
|
+
object: environment:private-creds
|
|
55
|
+
# Explicit viewer grant to frank (redacted view, no secret reveal).
|
|
56
|
+
- user: identity_account:frank
|
|
57
|
+
relation: viewer
|
|
58
|
+
object: environment:private-creds
|
|
59
|
+
|
|
60
|
+
# --- ORG-shared environment (creation tuples + the org viewer tuple) ---
|
|
61
|
+
- user: organization:acme
|
|
62
|
+
relation: organization
|
|
63
|
+
object: environment:team-creds
|
|
64
|
+
- user: identity_account:carol
|
|
65
|
+
relation: owner
|
|
66
|
+
object: environment:team-creds
|
|
67
|
+
- user: identity_account:carol
|
|
68
|
+
relation: creator
|
|
69
|
+
object: environment:team-creds
|
|
70
|
+
- user: organization:acme#viewer
|
|
71
|
+
relation: viewer
|
|
72
|
+
object: environment:team-creds
|
|
73
|
+
|
|
74
|
+
tests:
|
|
75
|
+
- name: private-environment-invisible-to-org-members
|
|
76
|
+
check:
|
|
77
|
+
- user: identity_account:dave
|
|
78
|
+
object: environment:private-creds
|
|
79
|
+
assertions:
|
|
80
|
+
can_view: false
|
|
81
|
+
can_edit: false
|
|
82
|
+
can_read_secrets: false
|
|
83
|
+
|
|
84
|
+
- name: explicit-viewer-grant-is-redacted-view-only
|
|
85
|
+
check:
|
|
86
|
+
- user: identity_account:frank
|
|
87
|
+
object: environment:private-creds
|
|
88
|
+
assertions:
|
|
89
|
+
can_view: true
|
|
90
|
+
can_edit: false
|
|
91
|
+
can_read_secrets: false
|
|
92
|
+
|
|
93
|
+
- name: org-sharing-grants-members-redacted-view-only
|
|
94
|
+
check:
|
|
95
|
+
- user: identity_account:dave
|
|
96
|
+
object: environment:team-creds
|
|
97
|
+
assertions:
|
|
98
|
+
can_view: true
|
|
99
|
+
can_edit: false
|
|
100
|
+
can_delete: false
|
|
101
|
+
can_grant_access: false
|
|
102
|
+
# THE invariant: org sharing never widens secret reveal.
|
|
103
|
+
can_read_secrets: false
|
|
104
|
+
|
|
105
|
+
- name: org-sharing-reaches-read-only-viewers-redacted-too
|
|
106
|
+
check:
|
|
107
|
+
# cloud#257: the org viewer role is read-only by definition — an
|
|
108
|
+
# org-shared environment is readable (REDACTED) to vera, secrets never.
|
|
109
|
+
- user: identity_account:vera
|
|
110
|
+
object: environment:team-creds
|
|
111
|
+
assertions:
|
|
112
|
+
can_view: true
|
|
113
|
+
can_edit: false
|
|
114
|
+
can_read_secrets: false
|
|
115
|
+
- user: identity_account:vera
|
|
116
|
+
object: environment:private-creds
|
|
117
|
+
assertions:
|
|
118
|
+
can_view: false
|
|
119
|
+
|
|
120
|
+
- name: creator-keeps-full-access-on-shared-environment
|
|
121
|
+
check:
|
|
122
|
+
- user: identity_account:carol
|
|
123
|
+
object: environment:team-creds
|
|
124
|
+
assertions:
|
|
125
|
+
can_view: true
|
|
126
|
+
can_edit: true
|
|
127
|
+
can_delete: true
|
|
128
|
+
can_read_secrets: true
|
|
129
|
+
|
|
130
|
+
- name: org-sharing-does-not-leak-across-orgs
|
|
131
|
+
check:
|
|
132
|
+
- user: identity_account:mallory
|
|
133
|
+
object: environment:team-creds
|
|
134
|
+
assertions:
|
|
135
|
+
can_view: false
|
|
136
|
+
can_read_secrets: false
|
|
137
|
+
|
|
138
|
+
- name: org-members-can-list-shared-environments-only
|
|
139
|
+
list_objects:
|
|
140
|
+
- user: identity_account:dave
|
|
141
|
+
type: environment
|
|
142
|
+
assertions:
|
|
143
|
+
can_view:
|
|
144
|
+
- environment:team-creds
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/platform-visibility.fga.yaml
|
|
2
|
+
# at commit b87dd1170 (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 platform visibility (visibility_platform).
|
|
6
|
+
#
|
|
7
|
+
# Verifies the userset chain end-to-end against the authorization model:
|
|
8
|
+
#
|
|
9
|
+
# blueprint#platform_viewer -> identity_provider#platform_user
|
|
10
|
+
# -> member from managed_org -> organization#member
|
|
11
|
+
#
|
|
12
|
+
# Run with:
|
|
13
|
+
# fga model test --tests platform-visibility.fga.yaml
|
|
14
|
+
#
|
|
15
|
+
# Scenario: "planton" is a platform org owning identity_provider:idp1, which
|
|
16
|
+
# manages two customer orgs (acme, beta). Blueprints owned by planton and
|
|
17
|
+
# shared with visibility_platform must be viewable/executable by acme and
|
|
18
|
+
# beta members, invisible to members of an unrelated org, and never editable
|
|
19
|
+
# by managed-org members.
|
|
20
|
+
name: platform-visibility
|
|
21
|
+
model_file: ../model/fga.mod
|
|
22
|
+
|
|
23
|
+
tuples:
|
|
24
|
+
# --- Platform tenancy: idp1 is owned by planton and manages acme + beta ---
|
|
25
|
+
- user: organization:planton
|
|
26
|
+
relation: organization
|
|
27
|
+
object: identity_provider:idp1
|
|
28
|
+
- user: organization:acme
|
|
29
|
+
relation: managed_org
|
|
30
|
+
object: identity_provider:idp1
|
|
31
|
+
- user: organization:beta
|
|
32
|
+
relation: managed_org
|
|
33
|
+
object: identity_provider:idp1
|
|
34
|
+
|
|
35
|
+
# --- Org memberships ---
|
|
36
|
+
- user: identity_account:swarup
|
|
37
|
+
relation: owner
|
|
38
|
+
object: organization:planton
|
|
39
|
+
- user: identity_account:priya
|
|
40
|
+
relation: member
|
|
41
|
+
object: organization:planton
|
|
42
|
+
- user: identity_account:veda
|
|
43
|
+
relation: viewer
|
|
44
|
+
object: organization:planton
|
|
45
|
+
- user: identity_account:alice
|
|
46
|
+
relation: member
|
|
47
|
+
object: organization:acme
|
|
48
|
+
- user: identity_account:bob
|
|
49
|
+
relation: member
|
|
50
|
+
object: organization:beta
|
|
51
|
+
- user: identity_account:mallory
|
|
52
|
+
relation: member
|
|
53
|
+
object: organization:outsider
|
|
54
|
+
|
|
55
|
+
# --- Platform-shared agent (visibility_platform) owned by planton ---
|
|
56
|
+
# PLATFORM carries the org floor tuple too (viewer@org#viewer — the org's
|
|
57
|
+
# full read audience, cloud#257), exactly as VisibilityTupleReconciler
|
|
58
|
+
# writes it, so everyone in the platform org keeps access.
|
|
59
|
+
- user: organization:planton
|
|
60
|
+
relation: organization
|
|
61
|
+
object: agent:sara
|
|
62
|
+
- user: identity_account:swarup
|
|
63
|
+
relation: owner
|
|
64
|
+
object: agent:sara
|
|
65
|
+
- user: identity_provider:idp1#platform_user
|
|
66
|
+
relation: platform_viewer
|
|
67
|
+
object: agent:sara
|
|
68
|
+
- user: organization:planton#viewer
|
|
69
|
+
relation: viewer
|
|
70
|
+
object: agent:sara
|
|
71
|
+
|
|
72
|
+
# --- Private agent owned by planton (no platform_viewer tuple) ---
|
|
73
|
+
- user: organization:planton
|
|
74
|
+
relation: organization
|
|
75
|
+
object: agent:internal-bot
|
|
76
|
+
- user: identity_account:swarup
|
|
77
|
+
relation: owner
|
|
78
|
+
object: agent:internal-bot
|
|
79
|
+
|
|
80
|
+
# --- Platform-shared blueprints of the other three kinds ---
|
|
81
|
+
- user: organization:planton
|
|
82
|
+
relation: organization
|
|
83
|
+
object: skill:research
|
|
84
|
+
- user: identity_provider:idp1#platform_user
|
|
85
|
+
relation: platform_viewer
|
|
86
|
+
object: skill:research
|
|
87
|
+
- user: organization:planton
|
|
88
|
+
relation: organization
|
|
89
|
+
object: workflow:onboarding
|
|
90
|
+
- user: identity_provider:idp1#platform_user
|
|
91
|
+
relation: platform_viewer
|
|
92
|
+
object: workflow:onboarding
|
|
93
|
+
- user: organization:planton
|
|
94
|
+
relation: organization
|
|
95
|
+
object: mcp_server:github
|
|
96
|
+
- user: identity_provider:idp1#platform_user
|
|
97
|
+
relation: platform_viewer
|
|
98
|
+
object: mcp_server:github
|
|
99
|
+
|
|
100
|
+
tests:
|
|
101
|
+
- name: managed-org members can view and execute a platform-shared agent
|
|
102
|
+
check:
|
|
103
|
+
- user: identity_account:alice
|
|
104
|
+
object: agent:sara
|
|
105
|
+
context:
|
|
106
|
+
allow: false
|
|
107
|
+
assertions:
|
|
108
|
+
can_view: true
|
|
109
|
+
can_execute: true
|
|
110
|
+
can_create_instance: true
|
|
111
|
+
can_edit: false
|
|
112
|
+
can_delete: false
|
|
113
|
+
- user: identity_account:bob
|
|
114
|
+
object: agent:sara
|
|
115
|
+
context:
|
|
116
|
+
allow: false
|
|
117
|
+
assertions:
|
|
118
|
+
can_view: true
|
|
119
|
+
can_execute: true
|
|
120
|
+
|
|
121
|
+
- name: outsiders and unrelated orgs get nothing from platform visibility
|
|
122
|
+
check:
|
|
123
|
+
- user: identity_account:mallory
|
|
124
|
+
object: agent:sara
|
|
125
|
+
context:
|
|
126
|
+
allow: false
|
|
127
|
+
assertions:
|
|
128
|
+
can_view: false
|
|
129
|
+
can_execute: false
|
|
130
|
+
can_create_instance: false
|
|
131
|
+
|
|
132
|
+
- name: platform org's own members keep access via the org floor tuple
|
|
133
|
+
check:
|
|
134
|
+
- user: identity_account:priya
|
|
135
|
+
object: agent:sara
|
|
136
|
+
context:
|
|
137
|
+
allow: false
|
|
138
|
+
assertions:
|
|
139
|
+
can_view: true
|
|
140
|
+
can_execute: true
|
|
141
|
+
can_edit: false
|
|
142
|
+
# cloud#257: the viewer-shaped org floor reaches the platform org's own
|
|
143
|
+
# read-only viewers too. (Managed-org audiences are deliberately
|
|
144
|
+
# narrower: platform_user resolves member-from-managed_org.)
|
|
145
|
+
- user: identity_account:veda
|
|
146
|
+
object: agent:sara
|
|
147
|
+
context:
|
|
148
|
+
allow: false
|
|
149
|
+
assertions:
|
|
150
|
+
can_view: true
|
|
151
|
+
can_edit: false
|
|
152
|
+
|
|
153
|
+
- name: platform visibility does not leak the platform org's private agents
|
|
154
|
+
check:
|
|
155
|
+
- user: identity_account:alice
|
|
156
|
+
object: agent:internal-bot
|
|
157
|
+
context:
|
|
158
|
+
allow: false
|
|
159
|
+
assertions:
|
|
160
|
+
can_view: false
|
|
161
|
+
can_execute: false
|
|
162
|
+
# Private is real: even the platform org's own members see nothing
|
|
163
|
+
# without an explicit visibility tuple.
|
|
164
|
+
- user: identity_account:priya
|
|
165
|
+
object: agent:internal-bot
|
|
166
|
+
context:
|
|
167
|
+
allow: false
|
|
168
|
+
assertions:
|
|
169
|
+
can_view: false
|
|
170
|
+
can_execute: false
|
|
171
|
+
|
|
172
|
+
- name: platform-shared skill is usable by managed-org members
|
|
173
|
+
check:
|
|
174
|
+
- user: identity_account:alice
|
|
175
|
+
object: skill:research
|
|
176
|
+
context:
|
|
177
|
+
allow: false
|
|
178
|
+
assertions:
|
|
179
|
+
can_view: true
|
|
180
|
+
can_use: true
|
|
181
|
+
can_edit: false
|
|
182
|
+
|
|
183
|
+
- name: platform-shared workflow is viewable and executable by managed-org members
|
|
184
|
+
check:
|
|
185
|
+
- user: identity_account:alice
|
|
186
|
+
object: workflow:onboarding
|
|
187
|
+
context:
|
|
188
|
+
allow: false
|
|
189
|
+
assertions:
|
|
190
|
+
can_view: true
|
|
191
|
+
can_execute: true
|
|
192
|
+
|
|
193
|
+
- name: platform-shared mcp_server is usable by managed-org members
|
|
194
|
+
check:
|
|
195
|
+
- user: identity_account:alice
|
|
196
|
+
object: mcp_server:github
|
|
197
|
+
context:
|
|
198
|
+
allow: false
|
|
199
|
+
assertions:
|
|
200
|
+
can_view: true
|
|
201
|
+
can_use: true
|
|
202
|
+
can_connect: true
|
|
203
|
+
|
|
204
|
+
- name: platform owner retains full control of shared blueprints
|
|
205
|
+
check:
|
|
206
|
+
- user: identity_account:swarup
|
|
207
|
+
object: agent:sara
|
|
208
|
+
context:
|
|
209
|
+
allow: false
|
|
210
|
+
assertions:
|
|
211
|
+
can_view: true
|
|
212
|
+
can_edit: true
|
|
213
|
+
can_delete: true
|
|
214
|
+
|
|
215
|
+
- name: list managed-org member's viewable agents includes only the shared one
|
|
216
|
+
list_objects:
|
|
217
|
+
- user: identity_account:alice
|
|
218
|
+
type: agent
|
|
219
|
+
context:
|
|
220
|
+
allow: false
|
|
221
|
+
assertions:
|
|
222
|
+
can_view:
|
|
223
|
+
- agent:sara
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/provider-standing-viewer.fga.yaml
|
|
2
|
+
# at commit b87dd1170 (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 the provider-standing view permission (cloud#447).
|
|
6
|
+
#
|
|
7
|
+
# can_view_provider_standing gates the read-only operator console view of
|
|
8
|
+
# platform provider standing (the canary-probe verdicts the cloud#370
|
|
9
|
+
# probe records). It derives from the platform operator role — provider
|
|
10
|
+
# account health is platform-internal, so ordinary tenants (even org
|
|
11
|
+
# owners) never see it, regardless of what they own.
|
|
12
|
+
#
|
|
13
|
+
# Run with:
|
|
14
|
+
# fga model test --tests provider-standing-viewer.fga.yaml
|
|
15
|
+
name: provider-standing-viewer
|
|
16
|
+
model_file: ../model/fga.mod
|
|
17
|
+
|
|
18
|
+
tuples:
|
|
19
|
+
# A platform operator.
|
|
20
|
+
- user: identity_account:opal
|
|
21
|
+
relation: operator
|
|
22
|
+
object: platform:stigmer
|
|
23
|
+
|
|
24
|
+
# A tenant org owner — owns everything in their org, nothing on the
|
|
25
|
+
# platform.
|
|
26
|
+
- user: identity_account:mallory
|
|
27
|
+
relation: owner
|
|
28
|
+
object: organization:acme
|
|
29
|
+
|
|
30
|
+
tests:
|
|
31
|
+
- name: operator may view provider standing, tenants may not
|
|
32
|
+
check:
|
|
33
|
+
- user: identity_account:opal
|
|
34
|
+
object: platform:stigmer
|
|
35
|
+
assertions:
|
|
36
|
+
can_view_provider_standing: true
|
|
37
|
+
- user: identity_account:mallory
|
|
38
|
+
object: platform:stigmer
|
|
39
|
+
assertions:
|
|
40
|
+
can_view_provider_standing: false
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/public-visibility-setter.fga.yaml
|
|
2
|
+
# at commit b87dd1170 (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 the public-visibility permission (marketplace curation).
|
|
6
|
+
#
|
|
7
|
+
# can_set_public_visibility gates who may set a resource's visibility to
|
|
8
|
+
# PUBLIC — the only level that crosses every org boundary. It derives
|
|
9
|
+
# from the platform operator role: operators (human curators and the
|
|
10
|
+
# seeding machine account) hold it; ordinary tenants — even org owners,
|
|
11
|
+
# who can otherwise fully manage their resources — never do. Enforced by
|
|
12
|
+
# PublicVisibilityEscalationPolicy at both write doors (updateVisibility
|
|
13
|
+
# escalation and create-with-public).
|
|
14
|
+
#
|
|
15
|
+
# Run with:
|
|
16
|
+
# fga model test --tests public-visibility-setter.fga.yaml
|
|
17
|
+
name: public-visibility-setter
|
|
18
|
+
model_file: ../model/fga.mod
|
|
19
|
+
|
|
20
|
+
tuples:
|
|
21
|
+
# The bootstrap machine account is the platform operator
|
|
22
|
+
# (BootstrapIdentitySeeder re-asserts this tuple on every boot).
|
|
23
|
+
- user: identity_account:machine
|
|
24
|
+
relation: operator
|
|
25
|
+
object: platform:stigmer
|
|
26
|
+
|
|
27
|
+
# A human operator granted the same platform role.
|
|
28
|
+
- user: identity_account:opal
|
|
29
|
+
relation: operator
|
|
30
|
+
object: platform:stigmer
|
|
31
|
+
|
|
32
|
+
# A tenant org owner — owns everything in their org, nothing on the
|
|
33
|
+
# platform.
|
|
34
|
+
- user: identity_account:mallory
|
|
35
|
+
relation: owner
|
|
36
|
+
object: organization:acme
|
|
37
|
+
|
|
38
|
+
tests:
|
|
39
|
+
- name: operators may set public visibility, tenants may not
|
|
40
|
+
check:
|
|
41
|
+
- user: identity_account:machine
|
|
42
|
+
object: platform:stigmer
|
|
43
|
+
assertions:
|
|
44
|
+
can_set_public_visibility: true
|
|
45
|
+
- user: identity_account:opal
|
|
46
|
+
object: platform:stigmer
|
|
47
|
+
assertions:
|
|
48
|
+
can_set_public_visibility: true
|
|
49
|
+
- user: identity_account:mallory
|
|
50
|
+
object: platform:stigmer
|
|
51
|
+
assertions:
|
|
52
|
+
can_set_public_visibility: false
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/reserved-label-writer.fga.yaml
|
|
2
|
+
# at commit b87dd1170 (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 the reserved-label write permission (cloud#320).
|
|
6
|
+
#
|
|
7
|
+
# can_write_reserved_labels gates who may introduce or change labels in
|
|
8
|
+
# the reserved stigmer.ai/* namespace at client-facing write boundaries
|
|
9
|
+
# (GuardReservedLabelsStep). It derives from the platform operator role
|
|
10
|
+
# — the seeding machine account holds it, ordinary tenants (even org
|
|
11
|
+
# owners) never do, regardless of what they own.
|
|
12
|
+
#
|
|
13
|
+
# Run with:
|
|
14
|
+
# fga model test --tests reserved-label-writer.fga.yaml
|
|
15
|
+
name: reserved-label-writer
|
|
16
|
+
model_file: ../model/fga.mod
|
|
17
|
+
|
|
18
|
+
tuples:
|
|
19
|
+
# The bootstrap machine account is the platform operator
|
|
20
|
+
# (BootstrapIdentitySeeder re-asserts this tuple on every boot).
|
|
21
|
+
- user: identity_account:machine
|
|
22
|
+
relation: operator
|
|
23
|
+
object: platform:stigmer
|
|
24
|
+
|
|
25
|
+
# A tenant org owner — owns everything in their org, nothing on the
|
|
26
|
+
# platform.
|
|
27
|
+
- user: identity_account:mallory
|
|
28
|
+
relation: owner
|
|
29
|
+
object: organization:acme
|
|
30
|
+
|
|
31
|
+
tests:
|
|
32
|
+
- name: operator may write reserved labels, tenants may not
|
|
33
|
+
check:
|
|
34
|
+
- user: identity_account:machine
|
|
35
|
+
object: platform:stigmer
|
|
36
|
+
assertions:
|
|
37
|
+
can_write_reserved_labels: true
|
|
38
|
+
- user: identity_account:mallory
|
|
39
|
+
object: platform:stigmer
|
|
40
|
+
assertions:
|
|
41
|
+
can_write_reserved_labels: false
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Pinned copy of stigmer-cloud backend/services/stigmer-server/fga/tests/schedule-owner.fga.yaml
|
|
2
|
+
# at commit b87dd1170 (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
|
+
# Schedules are owner-scoped operational config (whatsapp-proactive-
|
|
6
|
+
# messaging DD-008/DD-009, cloned from the agent_channel model): the
|
|
7
|
+
# creator owns the schedule; view/edit/delete require ownership or an
|
|
8
|
+
# explicit grant. Plain org members get NO implicit access — a schedule's
|
|
9
|
+
# levers are billing-affecting (every fire spends the owning org's
|
|
10
|
+
# credits, unattended). Creation is target-gated (can_edit on the
|
|
11
|
+
# referenced agent, checked in-handler), so no organization-level
|
|
12
|
+
# can_create_schedule relation exists to test.
|
|
13
|
+
#
|
|
14
|
+
# Org ADMINS inherit owner (T08, consistent with agents and channels — an
|
|
15
|
+
# admin who can edit the agent can manage its schedules). The narrowness
|
|
16
|
+
# these tests pin: owner + admins have control, granted viewers read,
|
|
17
|
+
# plain members have nothing.
|
|
18
|
+
#
|
|
19
|
+
# Run: fga model test --tests schedule-owner.fga.yaml
|
|
20
|
+
|
|
21
|
+
name: schedule-owner
|
|
22
|
+
model_file: ../model/fga.mod
|
|
23
|
+
|
|
24
|
+
tuples:
|
|
25
|
+
# Org membership for both accounts — proving membership grants nothing.
|
|
26
|
+
- user: identity_account:alice
|
|
27
|
+
relation: member
|
|
28
|
+
object: organization:acme
|
|
29
|
+
- user: identity_account:mallory
|
|
30
|
+
relation: member
|
|
31
|
+
object: organization:acme
|
|
32
|
+
|
|
33
|
+
# Org admin — proving T08 inheritance reaches schedules.
|
|
34
|
+
- user: identity_account:ana
|
|
35
|
+
relation: admin
|
|
36
|
+
object: organization:acme
|
|
37
|
+
|
|
38
|
+
# The schedule, created by alice (the config-driven create tuples).
|
|
39
|
+
- user: organization:acme
|
|
40
|
+
relation: organization
|
|
41
|
+
object: schedule:daily-fee-reminders
|
|
42
|
+
- user: identity_account:alice
|
|
43
|
+
relation: owner
|
|
44
|
+
object: schedule:daily-fee-reminders
|
|
45
|
+
|
|
46
|
+
# An explicit viewer grant to carol (not even an org member).
|
|
47
|
+
- user: identity_account:carol
|
|
48
|
+
relation: viewer
|
|
49
|
+
object: schedule:daily-fee-reminders
|
|
50
|
+
|
|
51
|
+
tests:
|
|
52
|
+
- name: owner has full control including grant management
|
|
53
|
+
check:
|
|
54
|
+
- user: identity_account:alice
|
|
55
|
+
object: schedule:daily-fee-reminders
|
|
56
|
+
assertions:
|
|
57
|
+
can_view: true
|
|
58
|
+
can_edit: true
|
|
59
|
+
can_delete: true
|
|
60
|
+
can_grant_access: true
|
|
61
|
+
can_view_access: true
|
|
62
|
+
|
|
63
|
+
- name: explicitly granted viewer can read but not mutate
|
|
64
|
+
check:
|
|
65
|
+
- user: identity_account:carol
|
|
66
|
+
object: schedule:daily-fee-reminders
|
|
67
|
+
assertions:
|
|
68
|
+
can_view: true
|
|
69
|
+
can_edit: false
|
|
70
|
+
can_delete: false
|
|
71
|
+
can_grant_access: false
|
|
72
|
+
can_view_access: true
|
|
73
|
+
|
|
74
|
+
- name: fellow org member has no implicit access
|
|
75
|
+
check:
|
|
76
|
+
- user: identity_account:mallory
|
|
77
|
+
object: schedule:daily-fee-reminders
|
|
78
|
+
assertions:
|
|
79
|
+
can_view: false
|
|
80
|
+
can_edit: false
|
|
81
|
+
can_delete: false
|
|
82
|
+
can_grant_access: false
|
|
83
|
+
can_view_access: false
|
|
84
|
+
|
|
85
|
+
- name: org admin inherits schedule management (T08)
|
|
86
|
+
check:
|
|
87
|
+
- user: identity_account:ana
|
|
88
|
+
object: schedule:daily-fee-reminders
|
|
89
|
+
assertions:
|
|
90
|
+
can_view: true
|
|
91
|
+
can_edit: true
|
|
92
|
+
can_delete: true
|
|
93
|
+
can_grant_access: true
|
|
94
|
+
|
|
95
|
+
- name: listing schedules reflects ownership and grants, not membership
|
|
96
|
+
list_objects:
|
|
97
|
+
- user: identity_account:alice
|
|
98
|
+
type: schedule
|
|
99
|
+
assertions:
|
|
100
|
+
can_view:
|
|
101
|
+
- schedule:daily-fee-reminders
|
|
102
|
+
can_edit:
|
|
103
|
+
- schedule:daily-fee-reminders
|
|
104
|
+
- user: identity_account:carol
|
|
105
|
+
type: schedule
|
|
106
|
+
assertions:
|
|
107
|
+
can_view:
|
|
108
|
+
- schedule:daily-fee-reminders
|
|
109
|
+
can_edit: []
|
|
110
|
+
- user: identity_account:mallory
|
|
111
|
+
type: schedule
|
|
112
|
+
assertions:
|
|
113
|
+
can_view: []
|