@wardby/cli 0.3.0 → 0.4.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/.env.example +22 -3
- package/README.md +11 -9
- package/dist/cli-help.d.ts +1 -1
- package/dist/cli-help.js +1 -0
- package/dist/cli.js +68 -10
- package/dist/coding/base-commit.d.ts +6 -0
- package/dist/coding/base-commit.js +12 -0
- package/dist/coding/protocol.d.ts +17 -1
- package/dist/coding/protocol.js +17 -6
- package/dist/coding/provider.d.ts +6 -1
- package/dist/coding/provider.js +16 -9
- package/dist/config/providers.d.ts +25 -0
- package/dist/config/providers.js +71 -0
- package/dist/core/attribution.d.ts +101 -0
- package/dist/core/attribution.js +208 -0
- package/dist/core/budget-groups.d.ts +17 -10
- package/dist/core/budget-groups.js +15 -12
- package/dist/core/coding-queue.d.ts +3 -0
- package/dist/core/coding-queue.js +6 -2
- package/dist/core/coding-service-status.d.ts +11 -0
- package/dist/core/coding-service-status.js +17 -0
- package/dist/core/cost-report.d.ts +88 -0
- package/dist/core/cost-report.js +248 -0
- package/dist/core/dispatch.d.ts +42 -2
- package/dist/core/dispatch.js +144 -26
- package/dist/core/engine-native.js +17 -4
- package/dist/core/glob.d.ts +10 -0
- package/dist/core/glob.js +33 -0
- package/dist/core/host-events.d.ts +24 -1
- package/dist/core/host-events.js +341 -1
- package/dist/core/host-status.d.ts +19 -2
- package/dist/core/host-status.js +47 -30
- package/dist/core/issue-bridge.d.ts +60 -0
- package/dist/core/issue-bridge.js +189 -0
- package/dist/core/issue-dedupe.d.ts +70 -0
- package/dist/core/issue-dedupe.js +255 -0
- package/dist/core/issue-events.d.ts +42 -0
- package/dist/core/issue-events.js +155 -0
- package/dist/core/issue-status.d.ts +29 -0
- package/dist/core/issue-status.js +241 -0
- package/dist/core/issue-tracker-tools.d.ts +64 -0
- package/dist/core/issue-tracker-tools.js +850 -0
- package/dist/core/model-usage.d.ts +10 -0
- package/dist/core/model-usage.js +24 -0
- package/dist/core/reconciler.d.ts +8 -4
- package/dist/core/reconciler.js +15 -4
- package/dist/core/review-host-tools.js +10 -3
- package/dist/core/run-pricing.d.ts +61 -0
- package/dist/core/run-pricing.js +56 -0
- package/dist/core/runner.d.ts +5 -2
- package/dist/core/runner.js +178 -27
- package/dist/core/scheduler.d.ts +4 -1
- package/dist/core/scheduler.js +3 -2
- package/dist/core/self-defects.d.ts +80 -0
- package/dist/core/self-defects.js +180 -0
- package/dist/core/tool-names.js +3 -0
- package/dist/core/webhooks.d.ts +9 -1
- package/dist/core/webhooks.js +19 -1
- package/dist/env.js +6 -1
- package/dist/generated/prisma/browser.d.ts +66 -0
- package/dist/generated/prisma/client.d.ts +66 -0
- package/dist/generated/prisma/commonInputTypes.d.ts +122 -52
- package/dist/generated/prisma/enums.d.ts +7 -0
- package/dist/generated/prisma/enums.js +6 -0
- package/dist/generated/prisma/internal/class.d.ts +99 -0
- package/dist/generated/prisma/internal/class.js +4 -4
- package/dist/generated/prisma/internal/prismaNamespace.d.ts +826 -1
- package/dist/generated/prisma/internal/prismaNamespace.js +135 -2
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.d.ts +142 -0
- package/dist/generated/prisma/internal/prismaNamespaceBrowser.js +135 -2
- package/dist/generated/prisma/models/Agent.d.ts +389 -1
- package/dist/generated/prisma/models/AgentIssueProject.d.ts +1838 -0
- package/dist/generated/prisma/models/AgentIssueProject.js +1 -0
- package/dist/generated/prisma/models/AgentRepository.d.ts +1 -1
- package/dist/generated/prisma/models/AuthUser.d.ts +1 -1
- package/dist/generated/prisma/models/CodingProxySession.d.ts +73 -1
- package/dist/generated/prisma/models/CodingRun.d.ts +130 -1
- package/dist/generated/prisma/models/CodingRunServiceStatus.d.ts +1404 -0
- package/dist/generated/prisma/models/CodingRunServiceStatus.js +1 -0
- package/dist/generated/prisma/models/IssueFingerprint.d.ts +1183 -0
- package/dist/generated/prisma/models/IssueFingerprint.js +1 -0
- package/dist/generated/prisma/models/IssuePullRequest.d.ts +1255 -0
- package/dist/generated/prisma/models/IssuePullRequest.js +1 -0
- package/dist/generated/prisma/models/ModelCatalogEntry.d.ts +1322 -0
- package/dist/generated/prisma/models/ModelCatalogEntry.js +1 -0
- package/dist/generated/prisma/models/Run.d.ts +933 -1
- package/dist/generated/prisma/models/RunAttribution.d.ts +1259 -0
- package/dist/generated/prisma/models/RunAttribution.js +1 -0
- package/dist/generated/prisma/models/RunIssueStatus.d.ts +1199 -0
- package/dist/generated/prisma/models/RunIssueStatus.js +1 -0
- package/dist/generated/prisma/models/RunModelUsage.d.ts +1316 -0
- package/dist/generated/prisma/models/RunModelUsage.js +1 -0
- package/dist/generated/prisma/models/WorkItem.d.ts +1408 -0
- package/dist/generated/prisma/models/WorkItem.js +1 -0
- package/dist/generated/prisma/models.d.ts +9 -0
- package/dist/help-index.json +355 -16
- package/dist/import/neutral-schema.d.ts +16 -16
- package/dist/knowledge/check.d.ts +13 -0
- package/dist/knowledge/check.js +69 -0
- package/dist/knowledge/cli.d.ts +14 -0
- package/dist/knowledge/cli.js +67 -0
- package/dist/knowledge/concept.d.ts +54 -0
- package/dist/knowledge/concept.js +78 -0
- package/dist/knowledge/note.d.ts +11 -0
- package/dist/knowledge/note.js +39 -0
- package/dist/knowledge/relevance.d.ts +11 -0
- package/dist/knowledge/relevance.js +14 -0
- package/dist/knowledge/span-hash.d.ts +3 -0
- package/dist/knowledge/span-hash.js +16 -0
- package/dist/mcp/auth/access.d.ts +4 -2
- package/dist/mcp/auth/ownership.d.ts +9 -9
- package/dist/mcp/auth/resource-server.d.ts +3 -1
- package/dist/mcp/auth/resource-server.js +18 -3
- package/dist/mcp/auth/self-hosted/credentials.d.ts +3 -3
- package/dist/mcp/auth/self-hosted/session.d.ts +5 -5
- package/dist/mcp/context.d.ts +3 -0
- package/dist/mcp/host-events/deliveries.d.ts +9 -0
- package/dist/mcp/host-events/deliveries.js +17 -0
- package/dist/mcp/host-events/github-ingress.d.ts +4 -2
- package/dist/mcp/host-events/github-ingress.js +4 -13
- package/dist/mcp/host-events/jira-ingress.d.ts +29 -0
- package/dist/mcp/host-events/jira-ingress.js +92 -0
- package/dist/mcp/index.d.ts +2 -0
- package/dist/mcp/index.js +87 -9
- package/dist/mcp/server.js +5 -2
- package/dist/mcp/tools/agents.js +74 -3
- package/dist/mcp/tools/cost-report.d.ts +8 -0
- package/dist/mcp/tools/cost-report.js +60 -0
- package/dist/mcp/tools/issue-projects.d.ts +2 -0
- package/dist/mcp/tools/issue-projects.js +238 -0
- package/dist/mcp/tools/model-catalog.d.ts +22 -0
- package/dist/mcp/tools/model-catalog.js +423 -0
- package/dist/mcp/tools/repositories.js +2 -1
- package/dist/mcp/tools/tools.d.ts +2 -2
- package/dist/mcp/tools/trigger.js +33 -5
- package/dist/mcp/transport/streamable-http.d.ts +5 -0
- package/dist/mcp/transport/streamable-http.js +23 -1
- package/dist/mcp/webhooks/ingress.d.ts +2 -1
- package/dist/mcp/webhooks/ingress.js +9 -2
- package/dist/providers/auth/self-hosted.d.ts +8 -1
- package/dist/providers/auth/self-hosted.js +39 -2
- package/dist/providers/coding-proxy/memory-ledger.d.ts +1 -1
- package/dist/providers/coding-proxy/memory-ledger.js +10 -1
- package/dist/providers/coding-proxy/metering.d.ts +2 -1
- package/dist/providers/coding-proxy/metering.js +13 -2
- package/dist/providers/coding-proxy/prisma-ledger.js +59 -6
- package/dist/providers/coding-proxy/proxy.d.ts +12 -2
- package/dist/providers/coding-proxy/proxy.js +92 -30
- package/dist/providers/coding-proxy/types.d.ts +18 -1
- package/dist/providers/coding-proxy/types.js +12 -1
- package/dist/providers/engine/types.d.ts +19 -0
- package/dist/providers/executor/composition.js +9 -1
- package/dist/providers/executor/container.d.ts +30 -2
- package/dist/providers/executor/container.js +98 -17
- package/dist/providers/executor/dbos.d.ts +2 -0
- package/dist/providers/executor/dbos.js +7 -5
- package/dist/providers/executor/routing.d.ts +6 -0
- package/dist/providers/executor/routing.js +5 -0
- package/dist/providers/executor/types.d.ts +12 -0
- package/dist/providers/issue-tracker/adf.d.ts +31 -0
- package/dist/providers/issue-tracker/adf.js +181 -0
- package/dist/providers/issue-tracker/index.d.ts +5 -0
- package/dist/providers/issue-tracker/index.js +12 -0
- package/dist/providers/issue-tracker/jira-client.d.ts +41 -0
- package/dist/providers/issue-tracker/jira-client.js +151 -0
- package/dist/providers/issue-tracker/jira-events.d.ts +3 -0
- package/dist/providers/issue-tracker/jira-events.js +98 -0
- package/dist/providers/issue-tracker/jira.d.ts +116 -0
- package/dist/providers/issue-tracker/jira.js +502 -0
- package/dist/providers/issue-tracker/types.d.ts +269 -0
- package/dist/providers/issue-tracker/types.js +16 -0
- package/dist/providers/jobs/docker.d.ts +5 -1
- package/dist/providers/jobs/docker.js +61 -33
- package/dist/providers/jobs/kubernetes.d.ts +3 -0
- package/dist/providers/jobs/kubernetes.js +44 -4
- package/dist/providers/jobs/service-state.d.ts +22 -0
- package/dist/providers/jobs/service-state.js +17 -0
- package/dist/providers/llm/anthropic.d.ts +3 -3
- package/dist/providers/llm/anthropic.js +3 -9
- package/dist/providers/llm/bedrock.d.ts +3 -3
- package/dist/providers/llm/bedrock.js +3 -9
- package/dist/providers/llm/catalog-lookup.d.ts +10 -0
- package/dist/providers/llm/catalog-lookup.js +15 -0
- package/dist/providers/llm/catalog-shipped.d.ts +18 -0
- package/dist/providers/llm/catalog-shipped.js +197 -0
- package/dist/providers/llm/catalog-store.d.ts +58 -0
- package/dist/providers/llm/catalog-store.js +138 -0
- package/dist/providers/llm/catalog-types.d.ts +66 -0
- package/dist/providers/llm/catalog-types.js +64 -0
- package/dist/providers/llm/catalog.d.ts +61 -0
- package/dist/providers/llm/catalog.js +147 -0
- package/dist/providers/llm/claude-provider.d.ts +10 -14
- package/dist/providers/llm/claude-provider.js +11 -6
- package/dist/providers/llm/index.d.ts +9 -6
- package/dist/providers/llm/index.js +8 -5
- package/dist/providers/llm/openai.d.ts +14 -5
- package/dist/providers/llm/openai.js +24 -14
- package/dist/providers/llm/pricing-core.d.ts +5 -3
- package/dist/providers/llm/registration.js +8 -12
- package/dist/providers/llm/routing.d.ts +18 -17
- package/dist/providers/llm/routing.js +40 -24
- package/dist/providers/review-host/github-events.js +47 -1
- package/dist/providers/review-host/github.js +7 -6
- package/dist/providers/review-host/types.d.ts +25 -0
- package/dist/providers/vcs/git.js +2 -22
- package/dist/providers/vcs/github.d.ts +20 -0
- package/dist/providers/vcs/github.js +28 -2
- package/dist/providers/vcs/types.d.ts +6 -0
- package/dist/quickstart/index.d.ts +8 -0
- package/dist/quickstart/index.js +34 -34
- package/dist/serve.js +8 -2
- package/dist/viewer/api-schema.d.ts +2757 -0
- package/dist/viewer/api-schema.js +165 -0
- package/dist/viewer/build-schemas.d.ts +2 -0
- package/dist/viewer/build-schemas.js +18 -0
- package/dist/viewer/event-bus.d.ts +38 -0
- package/dist/viewer/event-bus.js +232 -0
- package/dist/viewer/graph.d.ts +40 -0
- package/dist/viewer/graph.js +243 -0
- package/dist/viewer/http.d.ts +30 -0
- package/dist/viewer/http.js +133 -0
- package/dist/viewer/run-detail.d.ts +4 -0
- package/dist/viewer/run-detail.js +61 -0
- package/dist/wardby-bin.js +5 -0
- package/docs/README.md +10 -0
- package/docs/agent-recipes.md +383 -0
- package/docs/code-review-agents.md +29 -2
- package/docs/coding-agent-setup.md +3 -0
- package/docs/coding-worker-isolation.md +39 -5
- package/docs/getting-started-gke.md +28 -11
- package/docs/getting-started-identity-provider.md +49 -38
- package/docs/getting-started.md +14 -0
- package/docs/jira-agents.md +649 -0
- package/docs/knowledge.md +387 -0
- package/docs/models.md +221 -0
- package/docs/security-deployment.md +19 -9
- package/docs/viewer-api.md +142 -0
- package/help/admin-viewer.md +39 -0
- package/help/agent-recipes.md +173 -0
- package/help/architecture-agent.md +189 -0
- package/help/builder-agent.md +80 -0
- package/help/code-review-agents.md +6 -0
- package/help/cost-attribution.md +67 -0
- package/help/creating-agents.md +22 -0
- package/help/deploy-gke.md +6 -0
- package/help/errors/model-unavailable.md +63 -0
- package/help/getting-started.md +1 -0
- package/help/github.md +18 -0
- package/help/identity-and-access.md +8 -3
- package/help/jira.md +135 -0
- package/help/knowledge.md +47 -0
- package/help/models.md +90 -0
- package/help/operating-agents.md +7 -1
- package/help/troubleshooting/budgets.md +6 -0
- package/package.json +5 -2
- package/prisma/migrations/20260930000000_jira_issue_projects/migration.sql +34 -0
- package/prisma/migrations/20261001000000_jira_phase2_allowlists/migration.sql +3 -0
- package/prisma/migrations/20261001010000_jira_link_types_allowlist/migration.sql +2 -0
- package/prisma/migrations/20261002000000_jira_coding_bridge/migration.sql +28 -0
- package/prisma/migrations/20261002010000_jira_issue_creation/migration.sql +25 -0
- package/prisma/migrations/20261003000000_issue_cost_attribution/migration.sql +56 -0
- package/prisma/migrations/20261003010000_coding_run_service_status/migration.sql +23 -0
- package/prisma/migrations/20261003020000_viewer_notify/migration.sql +54 -0
- package/prisma/migrations/20261003030000_viewer_notify_fixes/migration.sql +47 -0
- package/prisma/migrations/20261003040000_viewer_indexes/migration.sql +12 -0
- package/prisma/migrations/20261004000000_model_catalog/migration.sql +26 -0
- package/prisma/schema.prisma +258 -2
- package/dist/mcp/tools/models.d.ts +0 -8
- package/dist/mcp/tools/models.js +0 -15
- package/dist/providers/llm/pricing-anthropic.d.ts +0 -14
- package/dist/providers/llm/pricing-anthropic.js +0 -48
- package/dist/providers/llm/pricing-bedrock-claude.d.ts +0 -20
- package/dist/providers/llm/pricing-bedrock-claude.js +0 -46
- package/dist/providers/llm/pricing.d.ts +0 -30
- package/dist/providers/llm/pricing.js +0 -74
|
@@ -54,23 +54,25 @@ access tokens for that audience.
|
|
|
54
54
|
|
|
55
55
|
Create these scopes in the provider:
|
|
56
56
|
|
|
57
|
-
| Scope | Capability
|
|
58
|
-
| --------------------- |
|
|
59
|
-
| `agents:read` | Inspect agents, models, runs, memory, and attached resources.
|
|
60
|
-
| `agents:write` | Create and modify agents, schedules, and sub-agent relationships.
|
|
61
|
-
| `runs:trigger` | Start agent runs.
|
|
62
|
-
| `tools:write` | Create, attach, and manage tools.
|
|
63
|
-
| `datastore:write` | Create, attach, query, and modify datastores.
|
|
64
|
-
| `secrets:write` | Create, attach, rotate, and remove secret bindings.
|
|
65
|
-
| `webhooks:write` | Create and manage webhook triggers.
|
|
66
|
-
| `budget_groups:write` | Create and manage shared budget groups.
|
|
67
|
-
| `packages:approve` | Approve coding agents' package allowlists.
|
|
68
|
-
| `services:manage` | Create, update and delete coding-run service catalog entries.
|
|
69
|
-
| `agents:admin` | Reassign agent ownership, BYO worker images; admins only.
|
|
70
|
-
| `memory:write` | Set and delete agent memory entries.
|
|
57
|
+
| Scope | Capability |
|
|
58
|
+
| --------------------- | ------------------------------------------------------------------ |
|
|
59
|
+
| `agents:read` | Inspect agents, models, runs, memory, and attached resources. |
|
|
60
|
+
| `agents:write` | Create and modify agents, schedules, and sub-agent relationships. |
|
|
61
|
+
| `runs:trigger` | Start agent runs. |
|
|
62
|
+
| `tools:write` | Create, attach, and manage tools. |
|
|
63
|
+
| `datastore:write` | Create, attach, query, and modify datastores. |
|
|
64
|
+
| `secrets:write` | Create, attach, rotate, and remove secret bindings. |
|
|
65
|
+
| `webhooks:write` | Create and manage webhook triggers. |
|
|
66
|
+
| `budget_groups:write` | Create and manage shared budget groups. |
|
|
67
|
+
| `packages:approve` | Approve coding agents' package allowlists. |
|
|
68
|
+
| `services:manage` | Create, update and delete coding-run service catalog entries. |
|
|
69
|
+
| `agents:admin` | Reassign agent ownership, BYO worker images; admins only. |
|
|
70
|
+
| `memory:write` | Set and delete agent memory entries. |
|
|
71
|
+
| `admin:view` | Read every owner's runs through the admin viewer API; admins only. |
|
|
72
|
+
| `models:admin` | Add, override, disable and reset model catalog entries. |
|
|
71
73
|
|
|
72
74
|
MCP clients discover this list from Wardby's protected-resource metadata and
|
|
73
|
-
may request every advertised scope. Define all
|
|
75
|
+
may request every advertised scope. Define all fourteen in the provider even when
|
|
74
76
|
policy grants a particular client or user only a subset. Ensure granted scopes
|
|
75
77
|
are emitted in the access token's `scope` or `scp` claim; defining them only in
|
|
76
78
|
the provider UI is not sufficient.
|
|
@@ -82,23 +84,32 @@ request every advertised scope may fail with `invalid_scope`.
|
|
|
82
84
|
`services:manage` was added after `memory:write`. When you upgrade an existing
|
|
83
85
|
deployment, define it in the provider too, for the same reason.
|
|
84
86
|
|
|
87
|
+
`admin:view` was added after `services:manage`. When you upgrade an existing
|
|
88
|
+
deployment, define it in the provider too and map it like `agents:admin`;
|
|
89
|
+
otherwise clients that request every advertised scope fail with `invalid_scope`.
|
|
90
|
+
|
|
91
|
+
`models:admin` was added after `admin:view`. When you upgrade an existing
|
|
92
|
+
deployment, define it in the provider too; otherwise clients that request
|
|
93
|
+
every advertised scope fail with `invalid_scope`.
|
|
94
|
+
|
|
85
95
|
### Wardby roles
|
|
86
96
|
|
|
87
|
-
A scope only delegates. `agents:admin`, `packages:approve
|
|
88
|
-
take effect only for a caller who also holds a Wardby role that grants them:
|
|
97
|
+
A scope only delegates. `agents:admin`, `packages:approve`, `services:manage`,
|
|
98
|
+
`admin:view` and `models:admin` take effect only for a caller who also holds a Wardby role that grants them:
|
|
89
99
|
|
|
90
|
-
| Wardby role | Grants
|
|
91
|
-
| ------------------ |
|
|
92
|
-
| `admin` | `agents:admin` (`make_owner`, BYO `workerImageRef`), `packages:approve` and `
|
|
93
|
-
| `package-approver` | `packages:approve` (package allowlist and policy approval)
|
|
94
|
-
| `service-manager` | `services:manage` (coding-run service catalog changes)
|
|
100
|
+
| Wardby role | Grants |
|
|
101
|
+
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
102
|
+
| `admin` | `agents:admin` (`make_owner`, BYO `workerImageRef`), `packages:approve`, `services:manage`, `admin:view` (read every owner's runs, see [viewer-api.md](viewer-api.md)) and `models:admin` (model catalog) |
|
|
103
|
+
| `package-approver` | `packages:approve` (package allowlist and policy approval) |
|
|
104
|
+
| `service-manager` | `services:manage` (coding-run service catalog changes) |
|
|
105
|
+
| `model-manager` | `models:admin` (model catalog changes: `set_model`, `disable_model`, `reset_model`; see [models.md](models.md)) |
|
|
95
106
|
|
|
96
107
|
The roles come from a claim in the caller's **access token**, which you map to
|
|
97
108
|
Wardby roles:
|
|
98
109
|
|
|
99
110
|
```dotenv
|
|
100
111
|
AUTH_ROLE_CLAIM=groups # claim name or dotted path
|
|
101
|
-
AUTH_ROLE_MAP=wardby-admin=admin,wardby-packages=package-approver,wardby-services=service-manager
|
|
112
|
+
AUTH_ROLE_MAP=wardby-admin=admin,wardby-packages=package-approver,wardby-services=service-manager,wardby-models=model-manager
|
|
102
113
|
```
|
|
103
114
|
|
|
104
115
|
Wardby looks up `AUTH_ROLE_CLAIM` in two steps:
|
|
@@ -146,20 +157,20 @@ their next token.
|
|
|
146
157
|
|
|
147
158
|
Provider examples:
|
|
148
159
|
|
|
149
|
-
- **Okta** (custom authorization server): create
|
|
150
|
-
`wardby-packages` and `wardby-
|
|
151
|
-
token, filtered to those groups. Set `AUTH_ROLE_CLAIM=groups` and
|
|
152
|
-
`AUTH_ROLE_MAP=wardby-admin=admin,wardby-packages=package-approver,wardby-services=service-manager`.
|
|
160
|
+
- **Okta** (custom authorization server): create four groups, `wardby-admin`,
|
|
161
|
+
`wardby-packages`, `wardby-services` and `wardby-models`. Add a `groups` claim
|
|
162
|
+
to the access token, filtered to those groups. Set `AUTH_ROLE_CLAIM=groups` and
|
|
163
|
+
`AUTH_ROLE_MAP=wardby-admin=admin,wardby-packages=package-approver,wardby-services=service-manager,wardby-models=model-manager`.
|
|
153
164
|
Optionally, add access policy rules so only those groups can obtain
|
|
154
|
-
`agents:admin`, `packages:approve` and `
|
|
155
|
-
- **FusionAuth:** create
|
|
156
|
-
`package-approver` and `
|
|
157
|
-
top-level `roles` claim. Set `AUTH_ROLE_CLAIM=roles` and
|
|
158
|
-
`AUTH_ROLE_MAP=admin=admin,package-approver=package-approver,service-manager=service-manager`.
|
|
159
|
-
- **Keycloak:** create realm roles such as `wardby-admin`, `wardby-packages
|
|
160
|
-
and `wardby-
|
|
161
|
-
`AUTH_ROLE_CLAIM=realm_access.roles` and
|
|
162
|
-
`AUTH_ROLE_MAP=wardby-admin=admin,wardby-packages=package-approver,wardby-services=service-manager`.
|
|
165
|
+
`agents:admin`, `packages:approve`, `services:manage`, `admin:view` and `models:admin`.
|
|
166
|
+
- **FusionAuth:** create four application roles, `admin`,
|
|
167
|
+
`package-approver`, `service-manager` and `model-manager`. They appear in the
|
|
168
|
+
access token's top-level `roles` claim. Set `AUTH_ROLE_CLAIM=roles` and
|
|
169
|
+
`AUTH_ROLE_MAP=admin=admin,package-approver=package-approver,service-manager=service-manager,model-manager=model-manager`.
|
|
170
|
+
- **Keycloak:** create realm roles such as `wardby-admin`, `wardby-packages`,
|
|
171
|
+
`wardby-services` and `wardby-models`. Realm roles appear under
|
|
172
|
+
`realm_access.roles`. Set `AUTH_ROLE_CLAIM=realm_access.roles` and
|
|
173
|
+
`AUTH_ROLE_MAP=wardby-admin=admin,wardby-packages=package-approver,wardby-services=service-manager,wardby-models=model-manager`.
|
|
163
174
|
For client roles, use `resource_access.<client-id>.roles`. The
|
|
164
175
|
[local Keycloak harness](../deploy/keycloak-test/README.md) sets this up.
|
|
165
176
|
- **Auth0:** add the user's roles to the access token as a namespaced custom
|
|
@@ -206,7 +217,7 @@ AUTH_JWKS_URI=https://identity.example.com/your-tenant/.well-known/jwks.json
|
|
|
206
217
|
AUTH_AUDIENCE=https://wardby.example.com/mcp
|
|
207
218
|
# Optional: Wardby roles (see "Wardby roles" above).
|
|
208
219
|
AUTH_ROLE_CLAIM=groups
|
|
209
|
-
AUTH_ROLE_MAP=wardby-admin=admin,wardby-packages=package-approver,wardby-services=service-manager
|
|
220
|
+
AUTH_ROLE_MAP=wardby-admin=admin,wardby-packages=package-approver,wardby-services=service-manager,wardby-models=model-manager
|
|
210
221
|
```
|
|
211
222
|
|
|
212
223
|
Copy `AUTH_ISSUER` exactly from the token's `iss` claim or the provider's
|
|
@@ -242,7 +253,7 @@ Confirm that:
|
|
|
242
253
|
|
|
243
254
|
- `resource` is the canonical MCP URI;
|
|
244
255
|
- `authorization_servers` contains the external issuer; and
|
|
245
|
-
- `scopes_supported` contains all
|
|
256
|
+
- `scopes_supported` contains all fourteen Wardby scopes.
|
|
246
257
|
|
|
247
258
|
An unauthenticated MCP request must return `401` with a `WWW-Authenticate`
|
|
248
259
|
challenge pointing back to that metadata document.
|
package/docs/getting-started.md
CHANGED
|
@@ -123,8 +123,22 @@ Coding agents require the stronger boundary described in
|
|
|
123
123
|
worker image, trusted coding proxy, and either Docker or Kubernetes as the job
|
|
124
124
|
launcher. Run `wardby coding preflight` before enabling a production repository.
|
|
125
125
|
|
|
126
|
+
## Your first agents
|
|
127
|
+
|
|
128
|
+
[Agent recipes](agent-recipes.md) gives two complete, copyable setups: an
|
|
129
|
+
architecture keeper and a builder per language. They go beyond the quickstart,
|
|
130
|
+
which runs native agents only. They require Wardby 0.4.0 or later. They need the
|
|
131
|
+
GitHub App, worker image, and job launcher from
|
|
132
|
+
[Coding-agent setup](coding-agent-setup.md). Their event triggers need GitHub to
|
|
133
|
+
reach your instance at a public HTTPS URL.
|
|
134
|
+
|
|
135
|
+
The assistant the quickstart connected can walk you through either recipe. Ask it
|
|
136
|
+
"Set up the Wardby architecture keeper for this repository" or "Set up a Wardby
|
|
137
|
+
builder for this repository"; it follows the `agent-recipes` help article.
|
|
138
|
+
|
|
126
139
|
## Next steps
|
|
127
140
|
|
|
141
|
+
- [Agent recipes](agent-recipes.md)
|
|
128
142
|
- [Runtime architecture](architecture-runtime.md)
|
|
129
143
|
- [Coding-agent setup](coding-agent-setup.md)
|
|
130
144
|
- [Bring your own identity provider](getting-started-identity-provider.md)
|