@kindgi/api 0.1.4-rc.5 → 0.1.5-rc.0
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/agent-binding.d.ts +13 -0
- package/dist/agent-binding.d.ts.map +1 -1
- package/dist/agent-pins.d.ts.map +1 -1
- package/dist/agent-pins.js +18 -2
- package/dist/agent-pins.js.map +1 -1
- package/dist/app.d.ts +110 -17
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +163 -35
- package/dist/app.js.map +1 -1
- package/dist/block-publish.d.ts +56 -0
- package/dist/block-publish.d.ts.map +1 -0
- package/dist/block-publish.js +132 -0
- package/dist/block-publish.js.map +1 -0
- package/dist/caller.d.ts +24 -0
- package/dist/caller.d.ts.map +1 -0
- package/dist/caller.js +47 -0
- package/dist/caller.js.map +1 -0
- package/dist/capability-binding.d.ts +11 -0
- package/dist/capability-binding.d.ts.map +1 -1
- package/dist/derive-agent-version.d.ts +7 -0
- package/dist/derive-agent-version.d.ts.map +1 -1
- package/dist/derive-agent-version.js +4 -0
- package/dist/derive-agent-version.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +73 -7
- package/dist/errors.js.map +1 -1
- package/dist/eval-case-binding.d.ts +16 -4
- package/dist/eval-case-binding.d.ts.map +1 -1
- package/dist/eval-run-binding.d.ts +31 -0
- package/dist/eval-run-binding.d.ts.map +1 -1
- package/dist/eval-run-dispatcher.d.ts +7 -0
- package/dist/eval-run-dispatcher.d.ts.map +1 -1
- package/dist/eval-run-dispatcher.js.map +1 -1
- package/dist/eval-sample.d.ts +11 -0
- package/dist/eval-sample.d.ts.map +1 -0
- package/dist/eval-sample.js +34 -0
- package/dist/eval-sample.js.map +1 -0
- package/dist/eval-suite-binding.d.ts +13 -0
- package/dist/eval-suite-binding.d.ts.map +1 -1
- package/dist/eval-suite-binding.js.map +1 -1
- package/dist/flow-binding.d.ts +18 -0
- package/dist/flow-binding.d.ts.map +1 -1
- package/dist/flow-pins.d.ts.map +1 -1
- package/dist/flow-pins.js +18 -2
- package/dist/flow-pins.js.map +1 -1
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +25 -0
- package/dist/gate.js.map +1 -1
- package/dist/handler-binding.d.ts +32 -0
- package/dist/handler-binding.d.ts.map +1 -1
- package/dist/hitl-binding.d.ts +23 -0
- package/dist/hitl-binding.d.ts.map +1 -1
- package/dist/identity-directory-binding.d.ts +82 -4
- package/dist/identity-directory-binding.d.ts.map +1 -1
- package/dist/identity-provider-binding.d.ts +197 -17
- package/dist/identity-provider-binding.d.ts.map +1 -1
- package/dist/improvement-pass-binding.d.ts +196 -0
- package/dist/improvement-pass-binding.d.ts.map +1 -0
- package/dist/improvement-pass-binding.js +9 -0
- package/dist/improvement-pass-binding.js.map +1 -0
- package/dist/index.d.ts +35 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/judged-dispatcher.d.ts +25 -4
- package/dist/judged-dispatcher.d.ts.map +1 -1
- package/dist/judged-dispatcher.js +43 -6
- package/dist/judged-dispatcher.js.map +1 -1
- package/dist/judgment-binding.d.ts +25 -1
- package/dist/judgment-binding.d.ts.map +1 -1
- package/dist/mcp-endpoint-binding.d.ts +7 -0
- package/dist/mcp-endpoint-binding.d.ts.map +1 -1
- package/dist/memory-binding.d.ts +124 -17
- package/dist/memory-binding.d.ts.map +1 -1
- package/dist/memory-erasure-binding.d.ts +145 -0
- package/dist/memory-erasure-binding.d.ts.map +1 -0
- package/dist/memory-erasure-binding.js +4 -0
- package/dist/memory-erasure-binding.js.map +1 -0
- package/dist/middleware/auth.d.ts +66 -13
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +150 -50
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/authorize.d.ts +6 -0
- package/dist/middleware/authorize.d.ts.map +1 -1
- package/dist/middleware/authorize.js +113 -4
- package/dist/middleware/authorize.js.map +1 -1
- package/dist/middleware/error-mapper.d.ts +5 -0
- package/dist/middleware/error-mapper.d.ts.map +1 -1
- package/dist/middleware/error-mapper.js +14 -1
- package/dist/middleware/error-mapper.js.map +1 -1
- package/dist/middleware/idempotency.d.ts +70 -5
- package/dist/middleware/idempotency.d.ts.map +1 -1
- package/dist/middleware/idempotency.js +174 -41
- package/dist/middleware/idempotency.js.map +1 -1
- package/dist/middleware/key-project.d.ts +17 -0
- package/dist/middleware/key-project.d.ts.map +1 -0
- package/dist/middleware/key-project.js +75 -0
- package/dist/middleware/key-project.js.map +1 -0
- package/dist/middleware/principal.d.ts.map +1 -1
- package/dist/middleware/principal.js +9 -5
- package/dist/middleware/principal.js.map +1 -1
- package/dist/middleware/project-ref.d.ts.map +1 -1
- package/dist/middleware/project-ref.js +3 -0
- package/dist/middleware/project-ref.js.map +1 -1
- package/dist/openapi/generate.d.ts.map +1 -1
- package/dist/openapi/generate.js +5 -2
- package/dist/openapi/generate.js.map +1 -1
- package/dist/openapi/operations.d.ts.map +1 -1
- package/dist/openapi/operations.js +918 -139
- package/dist/openapi/operations.js.map +1 -1
- package/dist/openapi/schemas.d.ts +92 -13
- package/dist/openapi/schemas.d.ts.map +1 -1
- package/dist/openapi/schemas.js +2122 -370
- package/dist/openapi/schemas.js.map +1 -1
- package/dist/person-grants-binding.d.ts +77 -0
- package/dist/person-grants-binding.d.ts.map +1 -0
- package/dist/person-grants-binding.js +4 -0
- package/dist/person-grants-binding.js.map +1 -0
- package/dist/proposal-service.d.ts +121 -0
- package/dist/proposal-service.d.ts.map +1 -0
- package/dist/proposal-service.js +447 -0
- package/dist/proposal-service.js.map +1 -0
- package/dist/proposal-status.d.ts +60 -0
- package/dist/proposal-status.d.ts.map +1 -0
- package/dist/proposal-status.js +109 -0
- package/dist/proposal-status.js.map +1 -0
- package/dist/provider-binding.d.ts +10 -0
- package/dist/provider-binding.d.ts.map +1 -1
- package/dist/publish-refused.d.ts +18 -3
- package/dist/publish-refused.d.ts.map +1 -1
- package/dist/publish-refused.js +18 -3
- package/dist/publish-refused.js.map +1 -1
- package/dist/routes/adapters.d.ts +2 -1
- package/dist/routes/adapters.d.ts.map +1 -1
- package/dist/routes/adapters.js +3 -1
- package/dist/routes/adapters.js.map +1 -1
- package/dist/routes/agent-releases.d.ts +55 -3
- package/dist/routes/agent-releases.d.ts.map +1 -1
- package/dist/routes/agent-releases.js +85 -55
- package/dist/routes/agent-releases.js.map +1 -1
- package/dist/routes/agents.d.ts +12 -1
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +100 -2
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/approvals.d.ts +15 -3
- package/dist/routes/approvals.d.ts.map +1 -1
- package/dist/routes/approvals.js +133 -122
- package/dist/routes/approvals.js.map +1 -1
- package/dist/routes/artifacts.d.ts +25 -3
- package/dist/routes/artifacts.d.ts.map +1 -1
- package/dist/routes/artifacts.js +116 -7
- package/dist/routes/artifacts.js.map +1 -1
- package/dist/routes/auth.d.ts +25 -1
- package/dist/routes/auth.d.ts.map +1 -1
- package/dist/routes/auth.js +655 -281
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/blocks.d.ts.map +1 -1
- package/dist/routes/blocks.js +2 -42
- package/dist/routes/blocks.js.map +1 -1
- package/dist/routes/capabilities.d.ts +2 -1
- package/dist/routes/capabilities.d.ts.map +1 -1
- package/dist/routes/capabilities.js +6 -1
- package/dist/routes/capabilities.js.map +1 -1
- package/dist/routes/compliance.d.ts +9 -10
- package/dist/routes/compliance.d.ts.map +1 -1
- package/dist/routes/compliance.js +42 -61
- package/dist/routes/compliance.js.map +1 -1
- package/dist/routes/conversations.d.ts +8 -1
- package/dist/routes/conversations.d.ts.map +1 -1
- package/dist/routes/conversations.js +87 -8
- package/dist/routes/conversations.js.map +1 -1
- package/dist/routes/cost.d.ts +7 -1
- package/dist/routes/cost.d.ts.map +1 -1
- package/dist/routes/cost.js +22 -3
- package/dist/routes/cost.js.map +1 -1
- package/dist/routes/denied.d.ts +11 -0
- package/dist/routes/denied.d.ts.map +1 -0
- package/dist/routes/denied.js +17 -0
- package/dist/routes/denied.js.map +1 -0
- package/dist/routes/deployments.d.ts +2 -1
- package/dist/routes/deployments.d.ts.map +1 -1
- package/dist/routes/deployments.js +44 -12
- package/dist/routes/deployments.js.map +1 -1
- package/dist/routes/eval-comparison.d.ts.map +1 -1
- package/dist/routes/eval-comparison.js +69 -1
- package/dist/routes/eval-comparison.js.map +1 -1
- package/dist/routes/eval-overrides.d.ts +18 -0
- package/dist/routes/eval-overrides.d.ts.map +1 -0
- package/dist/routes/eval-overrides.js +81 -0
- package/dist/routes/eval-overrides.js.map +1 -0
- package/dist/routes/eval-runs.d.ts +10 -1
- package/dist/routes/eval-runs.d.ts.map +1 -1
- package/dist/routes/eval-runs.js +63 -7
- package/dist/routes/eval-runs.js.map +1 -1
- package/dist/routes/eval-suites.d.ts.map +1 -1
- package/dist/routes/eval-suites.js +20 -1
- package/dist/routes/eval-suites.js.map +1 -1
- package/dist/routes/event-triggers.d.ts +5 -1
- package/dist/routes/event-triggers.d.ts.map +1 -1
- package/dist/routes/event-triggers.js +26 -3
- package/dist/routes/event-triggers.js.map +1 -1
- package/dist/routes/export-signing-keys.d.ts +12 -0
- package/dist/routes/export-signing-keys.d.ts.map +1 -0
- package/dist/routes/export-signing-keys.js +24 -0
- package/dist/routes/export-signing-keys.js.map +1 -0
- package/dist/routes/flows.d.ts.map +1 -1
- package/dist/routes/flows.js +9 -1
- package/dist/routes/flows.js.map +1 -1
- package/dist/routes/gate-policies.d.ts +4 -1
- package/dist/routes/gate-policies.d.ts.map +1 -1
- package/dist/routes/gate-policies.js +29 -5
- package/dist/routes/gate-policies.js.map +1 -1
- package/dist/routes/guardrails.d.ts +16 -14
- package/dist/routes/guardrails.d.ts.map +1 -1
- package/dist/routes/guardrails.js +39 -3
- package/dist/routes/guardrails.js.map +1 -1
- package/dist/routes/identity.d.ts +20 -4
- package/dist/routes/identity.d.ts.map +1 -1
- package/dist/routes/identity.js +246 -6
- package/dist/routes/identity.js.map +1 -1
- package/dist/routes/improvement-passes.d.ts +52 -0
- package/dist/routes/improvement-passes.d.ts.map +1 -0
- package/dist/routes/improvement-passes.js +449 -0
- package/dist/routes/improvement-passes.js.map +1 -0
- package/dist/routes/judged-suites.d.ts +50 -0
- package/dist/routes/judged-suites.d.ts.map +1 -1
- package/dist/routes/judged-suites.js +66 -27
- package/dist/routes/judged-suites.js.map +1 -1
- package/dist/routes/judgment-context.d.ts +18 -2
- package/dist/routes/judgment-context.d.ts.map +1 -1
- package/dist/routes/judgment-context.js +63 -5
- package/dist/routes/judgment-context.js.map +1 -1
- package/dist/routes/judgment-flow-context.d.ts.map +1 -1
- package/dist/routes/judgment-flow-context.js +14 -2
- package/dist/routes/judgment-flow-context.js.map +1 -1
- package/dist/routes/judgments.d.ts.map +1 -1
- package/dist/routes/judgments.js +8 -1
- package/dist/routes/judgments.js.map +1 -1
- package/dist/routes/mcp.d.ts.map +1 -1
- package/dist/routes/mcp.js +26 -1
- package/dist/routes/mcp.js.map +1 -1
- package/dist/routes/memory-access.d.ts +43 -0
- package/dist/routes/memory-access.d.ts.map +1 -0
- package/dist/routes/memory-access.js +129 -0
- package/dist/routes/memory-access.js.map +1 -0
- package/dist/routes/memory-erasures.d.ts +25 -0
- package/dist/routes/memory-erasures.d.ts.map +1 -0
- package/dist/routes/memory-erasures.js +214 -0
- package/dist/routes/memory-erasures.js.map +1 -0
- package/dist/routes/memory-parse.d.ts +38 -0
- package/dist/routes/memory-parse.d.ts.map +1 -0
- package/dist/routes/memory-parse.js +199 -0
- package/dist/routes/memory-parse.js.map +1 -0
- package/dist/routes/memory.d.ts +9 -4
- package/dist/routes/memory.d.ts.map +1 -1
- package/dist/routes/memory.js +226 -234
- package/dist/routes/memory.js.map +1 -1
- package/dist/routes/observations.d.ts +4 -1
- package/dist/routes/observations.d.ts.map +1 -1
- package/dist/routes/observations.js +8 -2
- package/dist/routes/observations.js.map +1 -1
- package/dist/routes/pagination.d.ts +7 -0
- package/dist/routes/pagination.d.ts.map +1 -1
- package/dist/routes/pagination.js +10 -0
- package/dist/routes/pagination.js.map +1 -1
- package/dist/routes/policies.d.ts +2 -1
- package/dist/routes/policies.d.ts.map +1 -1
- package/dist/routes/policies.js +3 -1
- package/dist/routes/policies.js.map +1 -1
- package/dist/routes/project-mismatch.d.ts +22 -0
- package/dist/routes/project-mismatch.d.ts.map +1 -0
- package/dist/routes/project-mismatch.js +34 -0
- package/dist/routes/project-mismatch.js.map +1 -0
- package/dist/routes/projects.d.ts +15 -4
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +100 -9
- package/dist/routes/projects.js.map +1 -1
- package/dist/routes/proposals.d.ts +25 -17
- package/dist/routes/proposals.d.ts.map +1 -1
- package/dist/routes/proposals.js +340 -507
- package/dist/routes/proposals.js.map +1 -1
- package/dist/routes/provenance.d.ts +17 -3
- package/dist/routes/provenance.d.ts.map +1 -1
- package/dist/routes/provenance.js +79 -103
- package/dist/routes/provenance.js.map +1 -1
- package/dist/routes/providers.d.ts +17 -1
- package/dist/routes/providers.d.ts.map +1 -1
- package/dist/routes/providers.js +188 -8
- package/dist/routes/providers.js.map +1 -1
- package/dist/routes/public-run-tokens.d.ts.map +1 -1
- package/dist/routes/public-run-tokens.js +3 -0
- package/dist/routes/public-run-tokens.js.map +1 -1
- package/dist/routes/runs.d.ts +10 -0
- package/dist/routes/runs.d.ts.map +1 -1
- package/dist/routes/runs.js +92 -42
- package/dist/routes/runs.js.map +1 -1
- package/dist/routes/schedules.d.ts +21 -13
- package/dist/routes/schedules.d.ts.map +1 -1
- package/dist/routes/schedules.js +416 -55
- package/dist/routes/schedules.js.map +1 -1
- package/dist/routes/segments.d.ts +2 -0
- package/dist/routes/segments.d.ts.map +1 -1
- package/dist/routes/segments.js +5 -0
- package/dist/routes/segments.js.map +1 -1
- package/dist/routes/service-accounts.d.ts +17 -0
- package/dist/routes/service-accounts.d.ts.map +1 -0
- package/dist/routes/service-accounts.js +212 -0
- package/dist/routes/service-accounts.js.map +1 -0
- package/dist/routes/sign-in-options.d.ts +50 -0
- package/dist/routes/sign-in-options.d.ts.map +1 -0
- package/dist/routes/sign-in-options.js +98 -0
- package/dist/routes/sign-in-options.js.map +1 -0
- package/dist/routes/signing-keys.d.ts +2 -1
- package/dist/routes/signing-keys.d.ts.map +1 -1
- package/dist/routes/signing-keys.js +3 -1
- package/dist/routes/signing-keys.js.map +1 -1
- package/dist/routes/tenant-access.d.ts +13 -0
- package/dist/routes/tenant-access.d.ts.map +1 -0
- package/dist/routes/tenant-access.js +26 -0
- package/dist/routes/tenant-access.js.map +1 -0
- package/dist/routes/tenant.d.ts.map +1 -1
- package/dist/routes/tenant.js +4 -0
- package/dist/routes/tenant.js.map +1 -1
- package/dist/routes/token-sign-in.d.ts +36 -0
- package/dist/routes/token-sign-in.d.ts.map +1 -0
- package/dist/routes/token-sign-in.js +101 -0
- package/dist/routes/token-sign-in.js.map +1 -0
- package/dist/routes/tokens.d.ts +15 -5
- package/dist/routes/tokens.d.ts.map +1 -1
- package/dist/routes/tokens.js +162 -43
- package/dist/routes/tokens.js.map +1 -1
- package/dist/routes/tools.d.ts.map +1 -1
- package/dist/routes/tools.js +9 -1
- package/dist/routes/tools.js.map +1 -1
- package/dist/routes/trigger-access.d.ts +29 -0
- package/dist/routes/trigger-access.d.ts.map +1 -0
- package/dist/routes/trigger-access.js +33 -0
- package/dist/routes/trigger-access.js.map +1 -0
- package/dist/routes/webhook-endpoints.d.ts +2 -1
- package/dist/routes/webhook-endpoints.d.ts.map +1 -1
- package/dist/routes/webhook-endpoints.js +11 -3
- package/dist/routes/webhook-endpoints.js.map +1 -1
- package/dist/routes/webhooks.d.ts +5 -1
- package/dist/routes/webhooks.d.ts.map +1 -1
- package/dist/routes/webhooks.js +25 -2
- package/dist/routes/webhooks.js.map +1 -1
- package/dist/run-failure.d.ts +21 -0
- package/dist/run-failure.d.ts.map +1 -0
- package/dist/run-failure.js +29 -0
- package/dist/run-failure.js.map +1 -0
- package/dist/service-account-binding.d.ts +108 -0
- package/dist/service-account-binding.d.ts.map +1 -0
- package/dist/service-account-binding.js +4 -0
- package/dist/service-account-binding.js.map +1 -0
- package/dist/session-store-binding.d.ts +61 -13
- package/dist/session-store-binding.d.ts.map +1 -1
- package/dist/signed-export.d.ts +89 -0
- package/dist/signed-export.d.ts.map +1 -0
- package/dist/signed-export.js +149 -0
- package/dist/signed-export.js.map +1 -0
- package/dist/supervisor-binding.d.ts +186 -413
- package/dist/supervisor-binding.d.ts.map +1 -1
- package/dist/testing/app-bindings.d.ts +33 -0
- package/dist/testing/app-bindings.d.ts.map +1 -0
- package/dist/testing/app-bindings.js +112 -0
- package/dist/testing/app-bindings.js.map +1 -0
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +13 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/stub-binding.d.ts +34 -0
- package/dist/testing/stub-binding.d.ts.map +1 -0
- package/dist/testing/stub-binding.js +42 -0
- package/dist/testing/stub-binding.js.map +1 -0
- package/dist/testing/trigger-registry.d.ts +21 -0
- package/dist/testing/trigger-registry.d.ts.map +1 -0
- package/dist/testing/trigger-registry.js +206 -0
- package/dist/testing/trigger-registry.js.map +1 -0
- package/dist/token-admin.d.ts +46 -8
- package/dist/token-admin.d.ts.map +1 -1
- package/dist/token-admin.js.map +1 -1
- package/dist/tool-binding.d.ts +13 -0
- package/dist/tool-binding.d.ts.map +1 -1
- package/dist/trigger-binding.d.ts +2 -2
- package/dist/trigger-binding.d.ts.map +1 -1
- package/dist/trigger-binding.js +1 -1
- package/dist/trigger-binding.js.map +1 -1
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/webhook-endpoint-binding.d.ts +19 -3
- package/dist/webhook-endpoint-binding.d.ts.map +1 -1
- package/dist/webhook-endpoint-binding.js +1 -1
- package/dist/webhook-endpoint-binding.js.map +1 -1
- package/openapi.json +15286 -8653
- package/package.json +26 -22
- package/src/agent-binding.ts +14 -0
- package/src/agent-pins.ts +18 -2
- package/src/app.ts +366 -80
- package/src/block-publish.ts +181 -0
- package/src/caller.ts +62 -0
- package/src/capability-binding.ts +12 -0
- package/src/derive-agent-version.ts +9 -1
- package/src/errors.ts +73 -7
- package/src/eval-case-binding.ts +17 -1
- package/src/eval-run-binding.ts +31 -0
- package/src/eval-run-dispatcher.ts +7 -0
- package/src/eval-sample.ts +42 -0
- package/src/eval-suite-binding.ts +14 -0
- package/src/flow-binding.ts +19 -0
- package/src/flow-pins.ts +18 -2
- package/src/gate.ts +26 -0
- package/src/handler-binding.ts +36 -1
- package/src/hitl-binding.ts +24 -0
- package/src/identity-directory-binding.ts +85 -4
- package/src/identity-provider-binding.ts +216 -21
- package/src/improvement-pass-binding.ts +193 -0
- package/src/index.ts +153 -31
- package/src/judged-dispatcher.ts +78 -11
- package/src/judgment-binding.ts +25 -1
- package/src/mcp-endpoint-binding.ts +7 -0
- package/src/memory-binding.ts +121 -17
- package/src/memory-erasure-binding.ts +156 -0
- package/src/middleware/auth.ts +228 -62
- package/src/middleware/authorize.ts +139 -3
- package/src/middleware/error-mapper.ts +15 -1
- package/src/middleware/idempotency.ts +230 -43
- package/src/middleware/key-project.ts +86 -0
- package/src/middleware/principal.ts +9 -5
- package/src/middleware/project-ref.ts +3 -0
- package/src/openapi/generate.ts +11 -2
- package/src/openapi/operations.ts +1059 -142
- package/src/openapi/schemas.ts +2438 -485
- package/src/person-grants-binding.ts +76 -0
- package/src/proposal-service.ts +640 -0
- package/src/proposal-status.ts +176 -0
- package/src/provider-binding.ts +10 -0
- package/src/publish-refused.ts +38 -9
- package/src/routes/adapters.ts +4 -0
- package/src/routes/agent-releases.ts +121 -69
- package/src/routes/agents.ts +128 -1
- package/src/routes/approvals.ts +164 -154
- package/src/routes/artifacts.ts +181 -11
- package/src/routes/auth.ts +804 -336
- package/src/routes/blocks.ts +2 -53
- package/src/routes/capabilities.ts +10 -1
- package/src/routes/compliance.ts +60 -99
- package/src/routes/conversations.ts +101 -7
- package/src/routes/cost.ts +32 -3
- package/src/routes/denied.ts +28 -0
- package/src/routes/deployments.ts +62 -16
- package/src/routes/eval-comparison.ts +81 -2
- package/src/routes/eval-overrides.ts +108 -0
- package/src/routes/eval-runs.ts +86 -6
- package/src/routes/eval-suites.ts +25 -1
- package/src/routes/event-triggers.ts +27 -3
- package/src/routes/export-signing-keys.ts +31 -0
- package/src/routes/flows.ts +12 -1
- package/src/routes/gate-policies.ts +37 -6
- package/src/routes/guardrails.ts +61 -2
- package/src/routes/identity.ts +328 -10
- package/src/routes/improvement-passes.ts +541 -0
- package/src/routes/judged-suites.ts +113 -43
- package/src/routes/judgment-context.ts +76 -5
- package/src/routes/judgment-flow-context.ts +16 -2
- package/src/routes/judgments.ts +17 -3
- package/src/routes/mcp.ts +29 -1
- package/src/routes/memory-access.ts +179 -0
- package/src/routes/memory-erasures.ts +240 -0
- package/src/routes/memory-parse.ts +250 -0
- package/src/routes/memory.ts +244 -286
- package/src/routes/observations.ts +15 -2
- package/src/routes/pagination.ts +12 -0
- package/src/routes/policies.ts +7 -1
- package/src/routes/project-mismatch.ts +56 -0
- package/src/routes/projects.ts +107 -13
- package/src/routes/proposals.ts +370 -611
- package/src/routes/provenance.ts +99 -133
- package/src/routes/providers.ts +223 -8
- package/src/routes/public-run-tokens.ts +3 -0
- package/src/routes/runs.ts +119 -39
- package/src/routes/schedules.ts +472 -60
- package/src/routes/segments.ts +11 -0
- package/src/routes/service-accounts.ts +262 -0
- package/src/routes/sign-in-options.ts +168 -0
- package/src/routes/signing-keys.ts +7 -1
- package/src/routes/tenant-access.ts +37 -0
- package/src/routes/tenant.ts +6 -0
- package/src/routes/token-sign-in.ts +161 -0
- package/src/routes/tokens.ts +172 -46
- package/src/routes/tools.ts +12 -1
- package/src/routes/trigger-access.ts +72 -0
- package/src/routes/webhook-endpoints.ts +15 -3
- package/src/routes/webhooks.ts +26 -2
- package/src/run-failure.ts +42 -0
- package/src/service-account-binding.ts +113 -0
- package/src/session-store-binding.ts +65 -13
- package/src/signed-export.ts +250 -0
- package/src/supervisor-binding.ts +169 -409
- package/src/testing/app-bindings.ts +142 -0
- package/src/testing/index.ts +21 -0
- package/src/testing/stub-binding.ts +53 -0
- package/src/testing/trigger-registry.ts +259 -0
- package/src/token-admin.ts +40 -8
- package/src/tool-binding.ts +14 -0
- package/src/trigger-binding.ts +8 -1
- package/src/types.ts +16 -0
- package/src/webhook-endpoint-binding.ts +18 -3
package/dist/hitl-binding.d.ts
CHANGED
|
@@ -50,16 +50,39 @@ export interface ListApprovalsBindingInput {
|
|
|
50
50
|
readonly status?: ApprovalStatus;
|
|
51
51
|
readonly requiredRole?: ReviewerRole;
|
|
52
52
|
readonly since?: Timestamp;
|
|
53
|
+
/** A bare time: approvals created before it. Milliseconds, no tie-breaker; `after` replaces it. */
|
|
53
54
|
readonly cursor?: Cursor;
|
|
54
55
|
/**
|
|
55
56
|
* Only approvals whose `waitTokenId` is one of these: the approvals a
|
|
56
57
|
* run's open waits belong to (T272). Absent: no filter.
|
|
57
58
|
*/
|
|
58
59
|
readonly waitTokenIds?: readonly string[];
|
|
60
|
+
/**
|
|
61
|
+
* Only approvals after this one in the list's order (`createdAt` desc,
|
|
62
|
+
* then `id` desc): where a page that ended on it continues. Its
|
|
63
|
+
* `createdAt` is the binding's `exactCreatedAt` for it.
|
|
64
|
+
*/
|
|
65
|
+
readonly after?: ApprovalPosition;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Where a page of approvals ends: an approval's `createdAt` as stored
|
|
69
|
+
* (Postgres keeps microseconds), and its id. A JS `Date` keeps
|
|
70
|
+
* milliseconds: a position built from one skips the approvals created
|
|
71
|
+
* earlier in the same millisecond.
|
|
72
|
+
*/
|
|
73
|
+
export interface ApprovalPosition {
|
|
74
|
+
readonly createdAt: string;
|
|
75
|
+
readonly id: ApprovalId;
|
|
59
76
|
}
|
|
60
77
|
export interface ListApprovalsBindingResult {
|
|
61
78
|
readonly approvals: readonly Approval[];
|
|
62
79
|
readonly nextCursor?: Cursor;
|
|
80
|
+
/**
|
|
81
|
+
* Each listed approval's `createdAt` as stored (microseconds), by id:
|
|
82
|
+
* with the id, the `after` that continues past it. Absent from a binding
|
|
83
|
+
* that doesn't give it; a caller then continues by `cursor`.
|
|
84
|
+
*/
|
|
85
|
+
readonly exactCreatedAt?: Readonly<Record<string, string>>;
|
|
63
86
|
}
|
|
64
87
|
export interface SubmitReviewBindingInput {
|
|
65
88
|
readonly tenantId: TenantId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hitl-binding.d.ts","sourceRoot":"","sources":["../src/hitl-binding.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hitl-binding.d.ts","sourceRoot":"","sources":["../src/hitl-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,16 +9,16 @@ import type { Cursor, TenantId, Timestamp, UserId } from '@kindgi/types';
|
|
|
9
9
|
* tenant" / "show me a user's profile" / "revoke all a user's active
|
|
10
10
|
* sessions" question this binding covers.
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* bespoke store behind this binding.
|
|
12
|
+
* The framework does NOT own user persistence. Deployments plug in an
|
|
13
|
+
* LDAP / SCIM / IdP-mirror / bespoke store behind this binding.
|
|
15
14
|
*
|
|
16
15
|
* Same caller-plugged pattern as every other admin-plane binding
|
|
17
16
|
* (`PolicyRegistryBinding`, `ProviderRegistryBinding`, ...).
|
|
18
17
|
*
|
|
19
18
|
* The directory is flat. Groups / roles / RBAC / invitations /
|
|
20
19
|
* audit history / LDAP+SCIM sync / impersonation are not part of this
|
|
21
|
-
* binding.
|
|
20
|
+
* binding. Adding a person (`createUser`) is optional: a directory that
|
|
21
|
+
* mirrors an identity provider leaves it out.
|
|
22
22
|
*/
|
|
23
23
|
export interface IdentityDirectoryBinding {
|
|
24
24
|
/**
|
|
@@ -26,6 +26,14 @@ export interface IdentityDirectoryBinding {
|
|
|
26
26
|
* the route surfaces `null` as `404 identity-user-not-found`.
|
|
27
27
|
*/
|
|
28
28
|
getUser(input: IdentityGetUserInput): Promise<UserRecord | null>;
|
|
29
|
+
/**
|
|
30
|
+
* Optional. The person still in the tenant whose `primaryEmail` is
|
|
31
|
+
* `email`, compared as the directory compares emails when it adds a
|
|
32
|
+
* person (case-insensitively, for the runtime's); `null` when none.
|
|
33
|
+
* When present, `POST /v1/projects/{projectId}/memberships` takes an
|
|
34
|
+
* `email` as well as a `userId`.
|
|
35
|
+
*/
|
|
36
|
+
findUserByEmail?(input: IdentityFindUserByEmailInput): Promise<UserRecord | null>;
|
|
29
37
|
/**
|
|
30
38
|
* Cursor-paginated list of users in the tenant. Optional `query`
|
|
31
39
|
* is a prefix match on `displayName` — the natural filter shape
|
|
@@ -51,17 +59,83 @@ export interface IdentityDirectoryBinding {
|
|
|
51
59
|
* delegate to `SessionStoreBinding.revokeAllForUser`.
|
|
52
60
|
*/
|
|
53
61
|
revokeAllSessions(input: IdentityRevokeSessionsInput): Promise<RevokeSessionsResult>;
|
|
62
|
+
/**
|
|
63
|
+
* Optional. Add a person to the tenant as a tenant member, written to
|
|
64
|
+
* the authorization store before it returns: they can read the
|
|
65
|
+
* tenant's settings, not its projects. A tenant admin then gives them a
|
|
66
|
+
* role and mints their first API key. When present,
|
|
67
|
+
* `POST /v1/identity/users` mounts (tenant admins only). An email
|
|
68
|
+
* another person of the tenant has is refused.
|
|
69
|
+
*/
|
|
70
|
+
createUser?(input: IdentityCreateUserInput): Promise<IdentityCreateUserResult>;
|
|
71
|
+
/**
|
|
72
|
+
* Optional. Unregister a person (remove them from the tenant), in one
|
|
73
|
+
* step: they're marked unregistered (their record stays, with
|
|
74
|
+
* `unregisteredAt`, so their history still says who they were), every
|
|
75
|
+
* API key and session of theirs is revoked, and every grant and
|
|
76
|
+
* membership they hold is taken from the authorization store, all before
|
|
77
|
+
* it returns. Their email is then free: adding it again makes a new
|
|
78
|
+
* person. Unregistering someone already unregistered changes nothing.
|
|
79
|
+
* Refused for yourself, the deployment's seed user, and the tenant's
|
|
80
|
+
* only tenant admin. When present,
|
|
81
|
+
* `POST /v1/identity/users/{userId}/unregister` mounts (tenant admins
|
|
82
|
+
* only).
|
|
83
|
+
*/
|
|
84
|
+
unregisterUser?(input: IdentityUnregisterUserInput): Promise<IdentityUnregisterUserResult>;
|
|
54
85
|
}
|
|
86
|
+
export interface IdentityUnregisterUserInput {
|
|
87
|
+
readonly tenantId: TenantId;
|
|
88
|
+
readonly userId: UserId;
|
|
89
|
+
/** Who unregisters them: `user:<id>` or `service_account:<id>`. */
|
|
90
|
+
readonly unregisteredBy?: string;
|
|
91
|
+
}
|
|
92
|
+
/** Why a person can't be unregistered. */
|
|
93
|
+
export type IdentityUnregisterUserRefusal = 'yourself' | 'seed-user' | 'last-tenant-admin';
|
|
94
|
+
export type IdentityUnregisterUserResult = {
|
|
95
|
+
readonly kind: 'unregistered';
|
|
96
|
+
/** The person, with `unregisteredAt`. */
|
|
97
|
+
readonly user: UserRecord;
|
|
98
|
+
/** What unregistering took away (each 0 when they were already unregistered). */
|
|
99
|
+
readonly keysRevoked: number;
|
|
100
|
+
readonly sessionsRevoked: number;
|
|
101
|
+
readonly grantsRemoved: number;
|
|
102
|
+
} | {
|
|
103
|
+
readonly kind: 'not-found';
|
|
104
|
+
} | {
|
|
105
|
+
readonly kind: 'refused';
|
|
106
|
+
readonly reason: IdentityUnregisterUserRefusal;
|
|
107
|
+
readonly message: string;
|
|
108
|
+
};
|
|
109
|
+
export interface IdentityCreateUserInput {
|
|
110
|
+
readonly tenantId: TenantId;
|
|
111
|
+
readonly displayName: string;
|
|
112
|
+
readonly primaryEmail?: string;
|
|
113
|
+
/** Who added them: `user:<id>` or `service_account:<id>`. */
|
|
114
|
+
readonly createdBy?: string;
|
|
115
|
+
}
|
|
116
|
+
export type IdentityCreateUserResult = {
|
|
117
|
+
readonly kind: 'created';
|
|
118
|
+
readonly user: UserRecord;
|
|
119
|
+
} | {
|
|
120
|
+
readonly kind: 'email-taken';
|
|
121
|
+
readonly userId: UserId;
|
|
122
|
+
};
|
|
55
123
|
export interface IdentityGetUserInput {
|
|
56
124
|
readonly tenantId: TenantId;
|
|
57
125
|
readonly userId: UserId;
|
|
58
126
|
}
|
|
127
|
+
export interface IdentityFindUserByEmailInput {
|
|
128
|
+
readonly tenantId: TenantId;
|
|
129
|
+
readonly email: string;
|
|
130
|
+
}
|
|
59
131
|
export interface IdentityListUsersInput {
|
|
60
132
|
readonly tenantId: TenantId;
|
|
61
133
|
readonly limit: number;
|
|
62
134
|
readonly cursor?: Cursor;
|
|
63
135
|
/** Prefix match on `UserRecord.displayName`. Undefined = no filter. */
|
|
64
136
|
readonly query?: string;
|
|
137
|
+
/** Unregistered people too (`unregisteredAt` set). Default: only the people still here. */
|
|
138
|
+
readonly includeUnregistered?: boolean;
|
|
65
139
|
}
|
|
66
140
|
export interface IdentityListSessionsInput {
|
|
67
141
|
readonly tenantId: TenantId;
|
|
@@ -70,6 +144,8 @@ export interface IdentityListSessionsInput {
|
|
|
70
144
|
export interface IdentityRevokeSessionsInput {
|
|
71
145
|
readonly tenantId: TenantId;
|
|
72
146
|
readonly userId: UserId;
|
|
147
|
+
/** Who asked (`user:<id>`, `service_account:<id>`), for the audit trail. */
|
|
148
|
+
readonly revokedBy?: string;
|
|
73
149
|
}
|
|
74
150
|
/**
|
|
75
151
|
* The tenant-scoped user record on the wire. `primaryEmail` may be
|
|
@@ -85,6 +161,8 @@ export interface UserRecord {
|
|
|
85
161
|
readonly displayName?: string;
|
|
86
162
|
readonly createdAt: Timestamp;
|
|
87
163
|
readonly lastActiveAt?: Timestamp;
|
|
164
|
+
/** When they were removed from the tenant (`unregisterUser`); absent while they're here. */
|
|
165
|
+
readonly unregisteredAt?: Timestamp;
|
|
88
166
|
readonly metadata?: Readonly<Record<string, unknown>>;
|
|
89
167
|
}
|
|
90
168
|
export interface UserCollectionPage {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-directory-binding.d.ts","sourceRoot":"","sources":["../src/identity-directory-binding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACjE;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtE;;;;;;;;;OASG;IACH,YAAY,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5E;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"identity-directory-binding.d.ts","sourceRoot":"","sources":["../src/identity-directory-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,200 @@
|
|
|
1
1
|
import type { TenantId } from '@kindgi/types';
|
|
2
2
|
/**
|
|
3
|
-
* Caller-plugged catalog of
|
|
4
|
-
*
|
|
5
|
-
* `ProviderRegistryBinding` (model providers)
|
|
6
|
-
* NOT own provider persistence, and secrets never
|
|
3
|
+
* Caller-plugged catalog of the identity providers a tenant signs in
|
|
4
|
+
* with: OIDC and SAML identity providers (sign-in), and plain OAuth 2.0
|
|
5
|
+
* providers. Same pattern as `ProviderRegistryBinding` (model providers):
|
|
6
|
+
* the API package does NOT own provider persistence, and secrets never
|
|
7
|
+
* cross the wire.
|
|
7
8
|
*
|
|
8
|
-
* A
|
|
9
|
-
*
|
|
10
|
-
* secrets-manager path, KMS handle,
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* never surfaces on any HTTP response.
|
|
9
|
+
* A provider carries only REFERENCES to its secrets (`clientSecretRef`,
|
|
10
|
+
* `spSigningKeyRef`, `spDecryptionKeyRef`): opaque pointers the deployment
|
|
11
|
+
* resolves server-side (env-var lookup, secrets-manager path, KMS handle,
|
|
12
|
+
* etc.). The secrets themselves are used inside the deployment's boundary
|
|
13
|
+
* and never surface on any HTTP response.
|
|
14
14
|
*
|
|
15
|
-
* PKCE is mandatory (S256)
|
|
16
|
-
* rejected at boot; the framework does NOT emit `code_challenge_method`
|
|
17
|
-
* negotiation.
|
|
15
|
+
* PKCE is mandatory (S256) for the OAuth flows.
|
|
18
16
|
*/
|
|
19
17
|
export interface IdentityProviderBinding {
|
|
20
18
|
list(input: IdentityProviderListInput): Promise<IdentityProviderPage>;
|
|
21
19
|
get(input: IdentityProviderGetInput): Promise<ProviderConfig | null>;
|
|
22
20
|
register(input: IdentityProviderRegisterInput): Promise<IdentityProviderRegisterOutcome>;
|
|
23
21
|
unregister(input: IdentityProviderUnregisterInput): Promise<IdentityProviderUnregisterOutcome>;
|
|
22
|
+
/**
|
|
23
|
+
* The ways a person can sign in, before anyone is signed in
|
|
24
|
+
* (`GET /v1/auth/sign-in-options`, unauthenticated). Answer by the email
|
|
25
|
+
* DOMAIN only, never by whether a person exists:
|
|
26
|
+
* - with `emailDomain`: the providers whose `domains` include it, from
|
|
27
|
+
* the one tenant the domain is verified for (the deployment decides
|
|
28
|
+
* how: e.g. the only tenant it serves, or one its operator named);
|
|
29
|
+
* none when the domain isn't verified for any tenant;
|
|
30
|
+
* - without: the route doesn't ask. Sign-in is email first, so nothing
|
|
31
|
+
* is offered before an email.
|
|
32
|
+
* Absent → the route answers an empty list.
|
|
33
|
+
*/
|
|
34
|
+
readonly signInOptions?: (input: SignInOptionsInput) => Promise<readonly SignInOption[]>;
|
|
35
|
+
/**
|
|
36
|
+
* What to give the identity provider so it can send people back
|
|
37
|
+
* (`signIn`), for a provider registered now or later under this
|
|
38
|
+
* `providerId`: the same before registration, after it, and after an
|
|
39
|
+
* unregister and a new registration, so an admin can set up the
|
|
40
|
+
* identity provider's side first. `undefined` when this deployment
|
|
41
|
+
* doesn't sign in with that `kind`.
|
|
42
|
+
* Absent → `GET /v1/auth/providers/:providerId/sign-in` isn't mounted.
|
|
43
|
+
*/
|
|
44
|
+
readonly signInUrls?: (input: IdentityProviderSignInUrlsInput) => Promise<ProviderSignIn | undefined>;
|
|
45
|
+
/**
|
|
46
|
+
* Replace a registered provider's configuration, keeping its `signIn`
|
|
47
|
+
* (the identity provider's side doesn't change). Validated as a new
|
|
48
|
+
* registration is.
|
|
49
|
+
* Absent → `PATCH /v1/auth/providers/:providerId` isn't mounted.
|
|
50
|
+
*/
|
|
51
|
+
readonly update?: (input: IdentityProviderUpdateInput) => Promise<IdentityProviderUpdateOutcome>;
|
|
52
|
+
}
|
|
53
|
+
export interface IdentityProviderSignInUrlsInput {
|
|
54
|
+
readonly tenantId: TenantId;
|
|
55
|
+
readonly providerId: string;
|
|
56
|
+
readonly kind: IdentityProviderKind;
|
|
57
|
+
}
|
|
58
|
+
export interface IdentityProviderUpdateInput {
|
|
59
|
+
readonly tenantId: TenantId;
|
|
60
|
+
/** The whole new configuration (the route merges the changes in). */
|
|
61
|
+
readonly config: ProviderConfig;
|
|
62
|
+
}
|
|
63
|
+
export type IdentityProviderUpdateOutcome = {
|
|
64
|
+
readonly kind: 'ok';
|
|
65
|
+
readonly provider: ProviderConfig;
|
|
66
|
+
} | {
|
|
67
|
+
/** As on registration: 422 `identity-provider-invalid`, with `message`. */
|
|
68
|
+
readonly kind: 'invalid';
|
|
69
|
+
readonly message: string;
|
|
70
|
+
} | {
|
|
71
|
+
readonly kind: 'not-found';
|
|
72
|
+
};
|
|
73
|
+
export interface SignInOptionsInput {
|
|
74
|
+
/** Lowercase, from the email the person typed. */
|
|
75
|
+
readonly emailDomain?: string;
|
|
24
76
|
}
|
|
25
|
-
|
|
26
|
-
export interface
|
|
27
|
-
|
|
77
|
+
/** One way to sign in, as a sign-in page shows it. */
|
|
78
|
+
export interface SignInOption {
|
|
79
|
+
readonly providerId: string;
|
|
80
|
+
/** "Sign in with …". */
|
|
81
|
+
readonly displayName: string;
|
|
82
|
+
/** Where the browser goes to start signing in with this provider. */
|
|
83
|
+
readonly signInUrl: string;
|
|
84
|
+
/**
|
|
85
|
+
* Whose it is: a workspace's own identity provider (`tenant`), or one
|
|
86
|
+
* the deployment offers everyone it has added ("Continue with Google",
|
|
87
|
+
* `deployment`). A sign-in page shows a workspace's own first. Absent:
|
|
88
|
+
* `tenant`.
|
|
89
|
+
*/
|
|
90
|
+
readonly owner?: 'tenant' | 'deployment';
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* - `oidc`: an OpenID Connect identity provider people sign in with
|
|
94
|
+
* (Okta, Entra ID, Google, Keycloak…): an `issuer`, the endpoints come
|
|
95
|
+
* from its discovery document.
|
|
96
|
+
* - `saml`: a SAML 2.0 identity provider people sign in with.
|
|
97
|
+
* - `oauth2`: a plain OAuth 2.0 provider that isn't OpenID Connect (e.g.
|
|
98
|
+
* GitHub), with its endpoints given. Pick `oidc` for any provider that
|
|
99
|
+
* speaks OpenID Connect.
|
|
100
|
+
*/
|
|
101
|
+
export type IdentityProviderKind = 'oauth2' | 'oidc' | 'saml';
|
|
102
|
+
/**
|
|
103
|
+
* An identity provider's configuration: one shape per `kind`. Narrow on
|
|
104
|
+
* `kind` before reading kind-specific fields (`clientId`,
|
|
105
|
+
* `tokenEndpoint`, `idpMetadataXml`…).
|
|
106
|
+
*/
|
|
107
|
+
export type ProviderConfig = OAuth2ProviderConfig | OidcProviderConfig | SamlProviderConfig;
|
|
108
|
+
/** What every kind of identity provider has. */
|
|
109
|
+
export interface ProviderConfigBase {
|
|
110
|
+
/** Stable string chosen by the tenant (e.g. `acme-sso`, `globex-oidc`). */
|
|
28
111
|
readonly providerId: string;
|
|
29
112
|
readonly kind: IdentityProviderKind;
|
|
113
|
+
/** The name a sign-in page shows ("Sign in with …"). Default: `providerId`. */
|
|
114
|
+
readonly displayName?: string;
|
|
115
|
+
/**
|
|
116
|
+
* The email domains whose people sign in with this provider (lowercase,
|
|
117
|
+
* e.g. `acme.com`): how an email-first sign-in page finds it.
|
|
118
|
+
*/
|
|
119
|
+
readonly domains?: readonly string[];
|
|
120
|
+
/**
|
|
121
|
+
* Who may sign in the first time: `invite` (default) only people a
|
|
122
|
+
* tenant admin added; `domain` also anyone from one of `domains`, once
|
|
123
|
+
* the deployment has verified them.
|
|
124
|
+
*/
|
|
125
|
+
readonly join?: 'invite' | 'domain';
|
|
126
|
+
/**
|
|
127
|
+
* What to give the identity provider so it can send people back: set
|
|
128
|
+
* by the deployment on what it returns; ignored on registration.
|
|
129
|
+
*/
|
|
130
|
+
readonly signIn?: ProviderSignIn;
|
|
131
|
+
readonly metadata?: Record<string, unknown>;
|
|
132
|
+
}
|
|
133
|
+
/** Where the identity provider sends people back to. */
|
|
134
|
+
export type ProviderSignIn = {
|
|
135
|
+
/** OIDC / OAuth 2.0: the redirect URI to allow on the provider's client. */
|
|
136
|
+
readonly redirectUri: string;
|
|
137
|
+
} | {
|
|
138
|
+
/** SAML: the service provider's entity ID, as the IdP knows it. */
|
|
139
|
+
readonly spEntityId: string;
|
|
140
|
+
/** SAML: the assertion consumer service URL (HTTP-POST binding). */
|
|
141
|
+
readonly acsUrl: string;
|
|
142
|
+
/** SAML: the service provider's metadata, for IdPs that import it. */
|
|
143
|
+
readonly spMetadataUrl: string;
|
|
144
|
+
};
|
|
145
|
+
/** An OpenID Connect identity provider (sign-in). */
|
|
146
|
+
export interface OidcProviderConfig extends ProviderConfigBase {
|
|
147
|
+
readonly kind: 'oidc';
|
|
148
|
+
/** The issuer; its `/.well-known/openid-configuration` gives the endpoints. */
|
|
149
|
+
readonly issuer: string;
|
|
150
|
+
readonly clientId: string;
|
|
151
|
+
/** Opaque pointer resolved server-side. Never a plaintext secret. */
|
|
152
|
+
readonly clientSecretRef: string;
|
|
153
|
+
/** Default `openid email profile`. */
|
|
154
|
+
readonly scopes?: readonly string[];
|
|
155
|
+
/** From discovery when absent; returned once the deployment has them. */
|
|
156
|
+
readonly authorizationEndpoint?: string;
|
|
157
|
+
readonly tokenEndpoint?: string;
|
|
158
|
+
readonly userinfoEndpoint?: string;
|
|
159
|
+
readonly jwksEndpoint?: string;
|
|
160
|
+
readonly allowedRedirectUris?: readonly string[];
|
|
161
|
+
readonly claimMapping?: ClaimMappingSpec;
|
|
162
|
+
}
|
|
163
|
+
/** A SAML 2.0 identity provider (sign-in). */
|
|
164
|
+
export interface SamlProviderConfig extends ProviderConfigBase {
|
|
165
|
+
readonly kind: 'saml';
|
|
166
|
+
/** The IdP's metadata XML. Or give `idpEntityId` + `idpSsoUrl` + `idpCertificates`. */
|
|
167
|
+
readonly idpMetadataXml?: string;
|
|
168
|
+
readonly idpEntityId?: string;
|
|
169
|
+
/** The IdP's single sign-on URL (HTTP-Redirect binding). */
|
|
170
|
+
readonly idpSsoUrl?: string;
|
|
171
|
+
/** The IdP's signing certificates (PEM); several during a rollover. */
|
|
172
|
+
readonly idpCertificates?: readonly string[];
|
|
173
|
+
/**
|
|
174
|
+
* Opaque pointer to the service provider's signing key (PEM), for IdPs
|
|
175
|
+
* that require signed AuthnRequests. Never a plaintext key.
|
|
176
|
+
*/
|
|
177
|
+
readonly spSigningKeyRef?: string;
|
|
178
|
+
/** Opaque pointer to the key that decrypts encrypted assertions. Never a plaintext key. */
|
|
179
|
+
readonly spDecryptionKeyRef?: string;
|
|
180
|
+
/** Require signed assertions. Default `true`. */
|
|
181
|
+
readonly wantAssertionsSigned?: boolean;
|
|
182
|
+
/** Assertion attribute names. Defaults: `userId` = the NameID, `email` = `email`. */
|
|
183
|
+
readonly attributeMapping?: SamlAttributeMapping;
|
|
184
|
+
}
|
|
185
|
+
export interface SamlAttributeMapping {
|
|
186
|
+
readonly userId?: string;
|
|
187
|
+
readonly email?: string;
|
|
188
|
+
readonly displayName?: string;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* A plain OAuth 2.0 provider that isn't OpenID Connect (e.g. GitHub), run
|
|
192
|
+
* by this package's own OAuth flow (`/v1/auth/login` + callback, with the
|
|
193
|
+
* deployment's `exchangeCode`). For a provider that speaks OpenID Connect,
|
|
194
|
+
* use `oidc`.
|
|
195
|
+
*/
|
|
196
|
+
export interface OAuth2ProviderConfig extends ProviderConfigBase {
|
|
197
|
+
readonly kind: 'oauth2';
|
|
30
198
|
readonly clientId: string;
|
|
31
199
|
/**
|
|
32
200
|
* Opaque pointer resolved server-side. Never a plaintext secret. The
|
|
@@ -63,7 +231,6 @@ export interface ProviderConfig {
|
|
|
63
231
|
* own `ExchangeCodeFn` MAY honor this field the same way.
|
|
64
232
|
*/
|
|
65
233
|
readonly claimMapping?: ClaimMappingSpec;
|
|
66
|
-
readonly metadata?: Record<string, unknown>;
|
|
67
234
|
}
|
|
68
235
|
/**
|
|
69
236
|
* How provider claims map into Kindgi's session shape. All fields
|
|
@@ -130,6 +297,19 @@ export interface IdentityProviderRegisterInput {
|
|
|
130
297
|
export type IdentityProviderRegisterOutcome = {
|
|
131
298
|
readonly kind: 'ok';
|
|
132
299
|
readonly providerId: string;
|
|
300
|
+
/**
|
|
301
|
+
* The provider as stored: discovered endpoints, `signIn`. Absent from
|
|
302
|
+
* older bindings; the route then answers with `providerId` alone.
|
|
303
|
+
*/
|
|
304
|
+
readonly provider?: ProviderConfig;
|
|
305
|
+
} | {
|
|
306
|
+
/**
|
|
307
|
+
* The deployment couldn't use the configuration: the issuer's
|
|
308
|
+
* discovery failed, the SAML metadata didn't parse, a host it may
|
|
309
|
+
* not reach. 422 `identity-provider-invalid`, with `message`.
|
|
310
|
+
*/
|
|
311
|
+
readonly kind: 'invalid';
|
|
312
|
+
readonly message: string;
|
|
133
313
|
};
|
|
134
314
|
export interface IdentityProviderUnregisterInput {
|
|
135
315
|
readonly tenantId: TenantId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-provider-binding.d.ts","sourceRoot":"","sources":["../src/identity-provider-binding.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C
|
|
1
|
+
{"version":3,"file":"identity-provider-binding.d.ts","sourceRoot":"","sources":["../src/identity-provider-binding.ts"],"names":[],"mappings":"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"}
|