primitive-admin 1.2.0-alpha.0 → 1.2.0-alpha.10
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 +108 -136
- package/assets/skill/skills/primitive-platform/SKILL.md +37 -4
- package/dist/bin/primitive.js +30 -35
- package/dist/bin/primitive.js.map +1 -1
- package/dist/src/commands/agent-sessions.d.ts +133 -0
- package/dist/src/commands/agent-sessions.js +792 -0
- package/dist/src/commands/agent-sessions.js.map +1 -0
- package/dist/src/commands/analytics.js +0 -148
- package/dist/src/commands/analytics.js.map +1 -1
- package/dist/src/commands/apps-children.d.ts +54 -0
- package/dist/src/commands/apps-children.js +631 -0
- package/dist/src/commands/apps-children.js.map +1 -0
- package/dist/src/commands/apps.d.ts +6 -0
- package/dist/src/commands/apps.js +131 -9
- package/dist/src/commands/apps.js.map +1 -1
- package/dist/src/commands/auth-sessions.d.ts +3 -3
- package/dist/src/commands/auth-sessions.js +117 -23
- package/dist/src/commands/auth-sessions.js.map +1 -1
- package/dist/src/commands/auth.js +460 -36
- package/dist/src/commands/auth.js.map +1 -1
- package/dist/src/commands/collections.js +316 -256
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/config.d.ts +1 -1
- package/dist/src/commands/config.js +60 -28
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/connections.js +12 -17
- package/dist/src/commands/connections.js.map +1 -1
- package/dist/src/commands/database-type-configs.js +2 -76
- package/dist/src/commands/database-type-configs.js.map +1 -1
- package/dist/src/commands/databases.d.ts +9 -0
- package/dist/src/commands/databases.js +228 -566
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/db3-types.d.ts +15 -0
- package/dist/src/commands/db3-types.js +157 -0
- package/dist/src/commands/db3-types.js.map +1 -0
- package/dist/src/commands/db3.d.ts +12 -0
- package/dist/src/commands/db3.js +1052 -0
- package/dist/src/commands/db3.js.map +1 -0
- package/dist/src/commands/documents.d.ts +121 -2
- package/dist/src/commands/documents.js +1601 -1251
- package/dist/src/commands/documents.js.map +1 -1
- package/dist/src/commands/env.d.ts +9 -1
- package/dist/src/commands/env.js +164 -49
- package/dist/src/commands/env.js.map +1 -1
- package/dist/src/commands/function-trigger-commands.d.ts +28 -0
- package/dist/src/commands/function-trigger-commands.js +341 -0
- package/dist/src/commands/function-trigger-commands.js.map +1 -0
- package/dist/src/commands/functions.js +297 -24
- package/dist/src/commands/functions.js.map +1 -1
- package/dist/src/commands/groups.js +150 -49
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/guides.js +5 -5
- package/dist/src/commands/init.d.ts +7 -0
- package/dist/src/commands/init.js +23 -5
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/integrations.js +14 -8
- package/dist/src/commands/integrations.js.map +1 -1
- package/dist/src/commands/metadata-category-configs.d.ts +2 -2
- package/dist/src/commands/metadata-category-configs.js +2 -2
- package/dist/src/commands/prompts.d.ts +7 -0
- package/dist/src/commands/prompts.js +48 -5
- package/dist/src/commands/prompts.js.map +1 -1
- package/dist/src/commands/scripts.d.ts +9 -17
- package/dist/src/commands/scripts.js +24 -479
- package/dist/src/commands/scripts.js.map +1 -1
- package/dist/src/commands/sessions.js +3 -8
- package/dist/src/commands/sessions.js.map +1 -1
- package/dist/src/commands/sync-app-settings.d.ts +36 -8
- package/dist/src/commands/sync-app-settings.js +109 -23
- package/dist/src/commands/sync-app-settings.js.map +1 -1
- package/dist/src/commands/sync.d.ts +436 -613
- package/dist/src/commands/sync.js +2604 -5977
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.js +4 -9
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/users.js +77 -2
- package/dist/src/commands/users.js.map +1 -1
- package/dist/src/commands/workflows.d.ts +5 -83
- package/dist/src/commands/workflows.js +57 -2282
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/aggregate-output.d.ts +25 -0
- package/dist/src/lib/aggregate-output.js +53 -0
- package/dist/src/lib/aggregate-output.js.map +1 -0
- package/dist/src/lib/api-client.d.ts +681 -581
- package/dist/src/lib/api-client.js +880 -851
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-settings-descriptor.d.ts +47 -1
- package/dist/src/lib/app-settings-descriptor.js +114 -10
- package/dist/src/lib/app-settings-descriptor.js.map +1 -1
- package/dist/src/lib/auth-fixtures.d.ts +44 -0
- package/dist/src/lib/auth-fixtures.js +61 -0
- package/dist/src/lib/auth-fixtures.js.map +1 -0
- package/dist/src/lib/auth-flow.d.ts +41 -1
- package/dist/src/lib/auth-flow.js +70 -16
- package/dist/src/lib/auth-flow.js.map +1 -1
- package/dist/src/lib/block-layout.d.ts +12 -23
- package/dist/src/lib/block-layout.js +26 -92
- package/dist/src/lib/block-layout.js.map +1 -1
- package/dist/src/lib/block-selector.d.ts +2 -2
- package/dist/src/lib/block-selector.js +2 -2
- package/dist/src/lib/child-apps-local.d.ts +164 -0
- package/dist/src/lib/child-apps-local.js +258 -0
- package/dist/src/lib/child-apps-local.js.map +1 -0
- package/dist/src/lib/ci-session-request.d.ts +22 -0
- package/dist/src/lib/ci-session-request.js +51 -0
- package/dist/src/lib/ci-session-request.js.map +1 -0
- package/dist/src/lib/codegen-shared/generatedFiles.d.ts +10 -8
- package/dist/src/lib/codegen-shared/generatedFiles.js +21 -15
- package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
- package/dist/src/lib/codegen-shared/prettierStable.d.ts +1 -1
- package/dist/src/lib/codegen-shared/prettierStable.js +1 -1
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +2 -2
- package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +2 -2
- package/dist/src/lib/collection-export.d.ts +76 -15
- package/dist/src/lib/collection-export.js +116 -23
- package/dist/src/lib/collection-export.js.map +1 -1
- package/dist/src/lib/collection-principal.d.ts +22 -0
- package/dist/src/lib/collection-principal.js +35 -0
- package/dist/src/lib/collection-principal.js.map +1 -0
- package/dist/src/lib/config-object-descriptor.d.ts +3 -22
- package/dist/src/lib/config-object-descriptor.js +56 -291
- package/dist/src/lib/config-object-descriptor.js.map +1 -1
- package/dist/src/lib/config-payload.js +2 -3
- package/dist/src/lib/config-payload.js.map +1 -1
- package/dist/src/lib/config-surface.d.ts +5 -7
- package/dist/src/lib/config-surface.js +18 -40
- package/dist/src/lib/config-surface.js.map +1 -1
- package/dist/src/lib/connections-list.d.ts +10 -0
- package/dist/src/lib/connections-list.js +18 -0
- package/dist/src/lib/connections-list.js.map +1 -0
- package/dist/src/lib/credentials-home.d.ts +58 -0
- package/dist/src/lib/credentials-home.js +204 -0
- package/dist/src/lib/credentials-home.js.map +1 -0
- package/dist/src/lib/credentials-lock.d.ts +88 -0
- package/dist/src/lib/credentials-lock.js +302 -0
- package/dist/src/lib/credentials-lock.js.map +1 -0
- package/dist/src/lib/credentials-store.d.ts +179 -24
- package/dist/src/lib/credentials-store.js +712 -77
- package/dist/src/lib/credentials-store.js.map +1 -1
- package/dist/src/lib/csv.d.ts +8 -9
- package/dist/src/lib/csv.js +3 -4
- package/dist/src/lib/csv.js.map +1 -1
- package/dist/src/lib/custodian.d.ts +8 -0
- package/dist/src/lib/custodian.js +18 -0
- package/dist/src/lib/custodian.js.map +1 -0
- package/dist/src/lib/db-codegen/dbGenerator.js +5 -16
- package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/db-codegen/dbNaming.d.ts +5 -13
- package/dist/src/lib/db-codegen/dbNaming.js +5 -17
- package/dist/src/lib/db-codegen/dbNaming.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTemplates.d.ts +7 -56
- package/dist/src/lib/db-codegen/dbTemplates.js +25 -125
- package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
- package/dist/src/lib/db-codegen/dbTsTypes.d.ts +2 -2
- package/dist/src/lib/db-codegen/dbTsTypes.js +2 -2
- package/dist/src/lib/db-codegen/dbTypeIR.d.ts +67 -2
- package/dist/src/lib/db-codegen/dbTypeIR.js +13 -2
- package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -1
- package/dist/src/lib/db3-export.d.ts +231 -0
- package/dist/src/lib/db3-export.js +510 -0
- package/dist/src/lib/db3-export.js.map +1 -0
- package/dist/src/lib/db3-index-output.d.ts +27 -0
- package/dist/src/lib/db3-index-output.js +49 -0
- package/dist/src/lib/db3-index-output.js.map +1 -0
- package/dist/src/lib/document-export-lookups.d.ts +31 -0
- package/dist/src/lib/document-export-lookups.js +53 -0
- package/dist/src/lib/document-export-lookups.js.map +1 -0
- package/dist/src/lib/document-export-permissions.d.ts +7 -5
- package/dist/src/lib/document-export-permissions.js +7 -5
- package/dist/src/lib/document-export-permissions.js.map +1 -1
- package/dist/src/lib/document-export-record-log.d.ts +57 -0
- package/dist/src/lib/document-export-record-log.js +215 -0
- package/dist/src/lib/document-export-record-log.js.map +1 -0
- package/dist/src/lib/document-ingest-artifact.d.ts +26 -2
- package/dist/src/lib/document-ingest-artifact.js +42 -8
- package/dist/src/lib/document-ingest-artifact.js.map +1 -1
- package/dist/src/lib/document-ingest-format2.d.ts +36 -0
- package/dist/src/lib/document-ingest-format2.js +78 -0
- package/dist/src/lib/document-ingest-format2.js.map +1 -0
- package/dist/src/lib/document-ingest-input.d.ts +9 -0
- package/dist/src/lib/document-ingest-input.js +28 -1
- package/dist/src/lib/document-ingest-input.js.map +1 -1
- package/dist/src/lib/document-ingest-rows.d.ts +16 -0
- package/dist/src/lib/document-ingest-rows.js +17 -0
- package/dist/src/lib/document-ingest-rows.js.map +1 -1
- package/dist/src/lib/document-ingest.d.ts +33 -1
- package/dist/src/lib/document-ingest.js +49 -0
- package/dist/src/lib/document-ingest.js.map +1 -1
- package/dist/src/lib/document-schema-rows.d.ts +42 -0
- package/dist/src/lib/document-schema-rows.js +53 -0
- package/dist/src/lib/document-schema-rows.js.map +1 -0
- package/dist/src/lib/env-resolver-core.d.ts +70 -2
- package/dist/src/lib/env-resolver-core.js +137 -20
- package/dist/src/lib/env-resolver-core.js.map +1 -1
- package/dist/src/lib/env-resolver.d.ts +14 -2
- package/dist/src/lib/env-resolver.js +32 -10
- package/dist/src/lib/env-resolver.js.map +1 -1
- package/dist/src/lib/function-authorize-check.d.ts +142 -0
- package/dist/src/lib/function-authorize-check.js +310 -0
- package/dist/src/lib/function-authorize-check.js.map +1 -0
- package/dist/src/lib/function-authorize-view.d.ts +15 -0
- package/dist/src/lib/function-authorize-view.js +50 -0
- package/dist/src/lib/function-authorize-view.js.map +1 -0
- package/dist/src/lib/function-bundle.d.ts +38 -18
- package/dist/src/lib/function-bundle.js +96 -35
- package/dist/src/lib/function-bundle.js.map +1 -1
- package/dist/src/lib/function-collect.d.ts +75 -12
- package/dist/src/lib/function-collect.js +427 -12
- package/dist/src/lib/function-collect.js.map +1 -1
- package/dist/src/lib/function-db-types.d.ts +29 -0
- package/dist/src/lib/function-db-types.js +117 -7
- package/dist/src/lib/function-db-types.js.map +1 -1
- package/dist/src/lib/function-document-types.d.ts +5 -3
- package/dist/src/lib/function-document-types.js +10 -14
- package/dist/src/lib/function-document-types.js.map +1 -1
- package/dist/src/lib/function-lint.d.ts +34 -0
- package/dist/src/lib/function-lint.js +112 -0
- package/dist/src/lib/function-lint.js.map +1 -0
- package/dist/src/lib/function-log-row.js +21 -2
- package/dist/src/lib/function-log-row.js.map +1 -1
- package/dist/src/lib/function-run.d.ts +16 -21
- package/dist/src/lib/function-run.js +37 -30
- package/dist/src/lib/function-run.js.map +1 -1
- package/dist/src/lib/function-schema-codegen.d.ts +1 -1
- package/dist/src/lib/function-schema-codegen.js +5 -5
- package/dist/src/lib/function-schema-codegen.js.map +1 -1
- package/dist/src/lib/function-source-roots.d.ts +67 -0
- package/dist/src/lib/function-source-roots.js +148 -0
- package/dist/src/lib/function-source-roots.js.map +1 -0
- package/dist/src/lib/function-sync.d.ts +108 -22
- package/dist/src/lib/function-sync.js +127 -39
- package/dist/src/lib/function-sync.js.map +1 -1
- package/dist/src/lib/function-trigger-listing.d.ts +11 -6
- package/dist/src/lib/function-trigger-listing.js +32 -11
- package/dist/src/lib/function-trigger-listing.js.map +1 -1
- package/dist/src/lib/function-typecheck.d.ts +37 -2
- package/dist/src/lib/function-typecheck.js +210 -28
- package/dist/src/lib/function-typecheck.js.map +1 -1
- package/dist/src/lib/function-versions.d.ts +2 -0
- package/dist/src/lib/function-versions.js +1 -0
- package/dist/src/lib/function-versions.js.map +1 -1
- package/dist/src/lib/generated-allowlist.js +0 -20
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +703 -201
- package/dist/src/lib/generated-config-surfaces.js +2335 -2033
- package/dist/src/lib/generated-config-surfaces.js.map +1 -1
- package/dist/src/lib/generated-sdk-types.d.ts +1 -1
- package/dist/src/lib/generated-sdk-types.js +1 -1
- package/dist/src/lib/generated-sdk-types.js.map +1 -1
- package/dist/src/lib/init-adopt.js +12 -3
- package/dist/src/lib/init-adopt.js.map +1 -1
- package/dist/src/lib/init-login-note.d.ts +13 -0
- package/dist/src/lib/init-login-note.js +22 -0
- package/dist/src/lib/init-login-note.js.map +1 -0
- package/dist/src/lib/json-value.d.ts +6 -0
- package/dist/src/lib/json-value.js +13 -0
- package/dist/src/lib/json-value.js.map +1 -0
- package/dist/src/lib/load-routes.d.ts +33 -0
- package/dist/src/lib/load-routes.js +35 -0
- package/dist/src/lib/load-routes.js.map +1 -0
- package/dist/src/lib/local-state.d.ts +38 -7
- package/dist/src/lib/local-state.js +172 -49
- package/dist/src/lib/local-state.js.map +1 -1
- package/dist/src/lib/local-test-cases.d.ts +5 -2
- package/dist/src/lib/local-test-cases.js +7 -4
- package/dist/src/lib/local-test-cases.js.map +1 -1
- package/dist/src/lib/log-inspection.d.ts +42 -4
- package/dist/src/lib/log-inspection.js +37 -5
- package/dist/src/lib/log-inspection.js.map +1 -1
- package/dist/src/lib/login-exchange-check.d.ts +18 -0
- package/dist/src/lib/login-exchange-check.js +27 -0
- package/dist/src/lib/login-exchange-check.js.map +1 -0
- package/dist/src/lib/login-scope-lines.d.ts +25 -0
- package/dist/src/lib/login-scope-lines.js +45 -0
- package/dist/src/lib/login-scope-lines.js.map +1 -0
- package/dist/src/lib/logout-admin-session.d.ts +2 -1
- package/dist/src/lib/logout-admin-session.js +7 -1
- package/dist/src/lib/logout-admin-session.js.map +1 -1
- package/dist/src/lib/object-status-filter.d.ts +9 -1
- package/dist/src/lib/object-status-filter.js +9 -1
- package/dist/src/lib/object-status-filter.js.map +1 -1
- package/dist/src/lib/output.js +2 -0
- package/dist/src/lib/output.js.map +1 -1
- package/dist/src/lib/paginate.d.ts +0 -5
- package/dist/src/lib/paginate.js +0 -5
- package/dist/src/lib/paginate.js.map +1 -1
- package/dist/src/lib/pin-refusal-hint.d.ts +12 -0
- package/dist/src/lib/pin-refusal-hint.js +35 -0
- package/dist/src/lib/pin-refusal-hint.js.map +1 -0
- package/dist/src/lib/primitive-env-plugin.d.ts +99 -0
- package/dist/src/lib/primitive-env-plugin.js +408 -0
- package/dist/src/lib/primitive-env-plugin.js.map +1 -0
- package/dist/src/lib/project-config.d.ts +7 -0
- package/dist/src/lib/project-config.js +22 -1
- package/dist/src/lib/project-config.js.map +1 -1
- package/dist/src/lib/project-login-apps.d.ts +8 -0
- package/dist/src/lib/project-login-apps.js +27 -0
- package/dist/src/lib/project-login-apps.js.map +1 -0
- package/dist/src/lib/prompt-schema-codegen.d.ts +10 -3
- package/dist/src/lib/prompt-schema-codegen.js +52 -11
- package/dist/src/lib/prompt-schema-codegen.js.map +1 -1
- package/dist/src/lib/pull-write.d.ts +31 -0
- package/dist/src/lib/pull-write.js +49 -0
- package/dist/src/lib/pull-write.js.map +1 -0
- package/dist/src/lib/push-failure-report.d.ts +45 -0
- package/dist/src/lib/push-failure-report.js +57 -0
- package/dist/src/lib/push-failure-report.js.map +1 -0
- package/dist/src/lib/records-verbs.d.ts +69 -0
- package/dist/src/lib/records-verbs.js +40 -0
- package/dist/src/lib/records-verbs.js.map +1 -0
- package/dist/src/lib/refresh-admin-credentials.d.ts +7 -0
- package/dist/src/lib/refresh-admin-credentials.js +16 -4
- package/dist/src/lib/refresh-admin-credentials.js.map +1 -1
- package/dist/src/lib/root-import-decision.d.ts +65 -0
- package/dist/src/lib/root-import-decision.js +109 -0
- package/dist/src/lib/root-import-decision.js.map +1 -0
- package/dist/src/lib/run-status.d.ts +1 -1
- package/dist/src/lib/run-status.generated.d.ts +2 -2
- package/dist/src/lib/run-status.generated.js +3 -1
- package/dist/src/lib/run-status.generated.js.map +1 -1
- package/dist/src/lib/run-status.js +1 -1
- package/dist/src/lib/schema-codegen/generated-schema-descriptor.d.ts +129 -0
- package/dist/src/lib/schema-codegen/generated-schema-descriptor.js +269 -0
- package/dist/src/lib/schema-codegen/generated-schema-descriptor.js.map +1 -0
- package/dist/src/lib/schema-codegen/naming.d.ts +35 -0
- package/dist/src/lib/schema-codegen/naming.js +83 -0
- package/dist/src/lib/schema-codegen/naming.js.map +1 -0
- package/dist/src/lib/schema-codegen/schemaToTs.d.ts +82 -0
- package/dist/src/lib/schema-codegen/schemaToTs.js +305 -0
- package/dist/src/lib/schema-codegen/schemaToTs.js.map +1 -0
- package/dist/src/lib/scope-request.d.ts +84 -0
- package/dist/src/lib/scope-request.js +235 -0
- package/dist/src/lib/scope-request.js.map +1 -0
- package/dist/src/lib/session-id.d.ts +9 -0
- package/dist/src/lib/session-id.js +28 -0
- package/dist/src/lib/session-id.js.map +1 -0
- package/dist/src/lib/snapshot-build-rows.d.ts +21 -0
- package/dist/src/lib/snapshot-build-rows.js +22 -0
- package/dist/src/lib/snapshot-build-rows.js.map +1 -1
- package/dist/src/lib/snapshot-build.js +8 -3
- package/dist/src/lib/snapshot-build.js.map +1 -1
- package/dist/src/lib/snapshots.d.ts +17 -1
- package/dist/src/lib/snapshots.js +50 -2
- package/dist/src/lib/snapshots.js.map +1 -1
- package/dist/src/lib/swift-codegen/agentGenerator.d.ts +6 -2
- package/dist/src/lib/swift-codegen/agentGenerator.js +57 -5
- package/dist/src/lib/swift-codegen/agentGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/banners.d.ts +34 -7
- package/dist/src/lib/swift-codegen/banners.js +37 -7
- package/dist/src/lib/swift-codegen/banners.js.map +1 -1
- package/dist/src/lib/swift-codegen/dbGenerator.d.ts +4 -3
- package/dist/src/lib/swift-codegen/dbGenerator.js +14 -117
- package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/functionGenerator.d.ts +3 -3
- package/dist/src/lib/swift-codegen/functionGenerator.js +23 -18
- package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -1
- package/dist/src/lib/swift-codegen/generator.d.ts +5 -5
- package/dist/src/lib/swift-codegen/generator.js +35 -40
- package/dist/src/lib/swift-codegen/generator.js.map +1 -1
- package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +3 -3
- package/dist/src/lib/swift-codegen/schemaToSwift.js +4 -4
- package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -1
- package/dist/src/lib/swift-codegen/swiftKeys.d.ts +19 -0
- package/dist/src/lib/swift-codegen/swiftKeys.js +31 -0
- package/dist/src/lib/swift-codegen/swiftKeys.js.map +1 -0
- package/dist/src/lib/sync-paths.d.ts +35 -0
- package/dist/src/lib/sync-paths.js +57 -5
- package/dist/src/lib/sync-paths.js.map +1 -1
- package/dist/src/lib/sync-resource-types.d.ts +26 -26
- package/dist/src/lib/sync-resource-types.js +61 -189
- package/dist/src/lib/sync-resource-types.js.map +1 -1
- package/dist/src/lib/sync-selectors.d.ts +5 -1
- package/dist/src/lib/sync-selectors.js +23 -13
- package/dist/src/lib/sync-selectors.js.map +1 -1
- package/dist/src/lib/test-case-file-names.d.ts +3 -5
- package/dist/src/lib/test-case-file-names.js +3 -5
- package/dist/src/lib/test-case-file-names.js.map +1 -1
- package/dist/src/lib/toml-database-config.d.ts +15 -75
- package/dist/src/lib/toml-database-config.js +17 -306
- package/dist/src/lib/toml-database-config.js.map +1 -1
- package/dist/src/lib/transient-retry.d.ts +43 -0
- package/dist/src/lib/transient-retry.js +94 -0
- package/dist/src/lib/transient-retry.js.map +1 -0
- package/dist/src/lib/vars-override.d.ts +105 -0
- package/dist/src/lib/vars-override.js +143 -0
- package/dist/src/lib/vars-override.js.map +1 -0
- package/dist/src/lib/webhook-capture.d.ts +43 -0
- package/dist/src/lib/webhook-capture.js +91 -0
- package/dist/src/lib/webhook-capture.js.map +1 -0
- package/dist/src/lib/webhook-deliver.d.ts +18 -20
- package/dist/src/lib/webhook-deliver.js +34 -89
- package/dist/src/lib/webhook-deliver.js.map +1 -1
- package/dist/src/lib/webhook-test-run.d.ts +32 -0
- package/dist/src/lib/webhook-test-run.js +108 -0
- package/dist/src/lib/webhook-test-run.js.map +1 -0
- package/dist/src/lib/workflow-codegen/generator.d.ts +7 -7
- package/dist/src/lib/workflow-codegen/generator.js +16 -23
- package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
- package/dist/src/lib/workflow-codegen/invokerIR.d.ts +6 -12
- package/dist/src/lib/workflow-codegen/invokerIR.js +4 -5
- package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -1
- package/dist/src/lib/workflow-toml-validator.d.ts +2 -0
- package/dist/src/lib/workflow-toml-validator.js +28 -1
- package/dist/src/lib/workflow-toml-validator.js.map +1 -1
- package/dist/src/types/index.d.ts +30 -37
- package/dist/src/validators.d.ts +7 -55
- package/dist/src/validators.js +7 -53
- package/dist/src/validators.js.map +1 -1
- package/dist/src/vite.d.ts +17 -0
- package/dist/src/vite.js +18 -0
- package/dist/src/vite.js.map +1 -0
- package/package.json +20 -12
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { type ListEnvelope } from "./paginate.js";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* #4262 — an agent prompt's test case: its `[test.agent]` block on the wire.
|
|
4
|
+
* `agentHistory` is JSON text; context and the expected call are parsed.
|
|
5
|
+
*/
|
|
6
|
+
export interface AgentTestCaseWireFields {
|
|
7
|
+
agentHistory?: string | null;
|
|
8
|
+
agentContext?: Record<string, any> | null;
|
|
9
|
+
agentTimezone?: string | null;
|
|
10
|
+
agentLocale?: string | null;
|
|
11
|
+
agentExpectedToolCall?: Record<string, any> | null;
|
|
12
|
+
agentExpectedNoToolCall?: boolean | null;
|
|
13
|
+
}
|
|
3
14
|
/**
|
|
4
15
|
* Metadata for a single bucket blob, as returned by the metadata endpoint
|
|
5
16
|
* `GET blob-buckets/:bucketId/blobs/:blobId/metadata`. Mirrors the published
|
|
@@ -17,6 +28,49 @@ export interface BlobInfo {
|
|
|
17
28
|
uploaded?: string | null;
|
|
18
29
|
etag?: string | null;
|
|
19
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* One child app as `GET /admin/api/apps/{appId}/children` lists it. Dates
|
|
33
|
+
* are ISO-8601 strings.
|
|
34
|
+
*/
|
|
35
|
+
export interface AppChildSummary {
|
|
36
|
+
appId: string;
|
|
37
|
+
name: string;
|
|
38
|
+
childSlug: string;
|
|
39
|
+
parentAppId: string;
|
|
40
|
+
ownerAdminId: string | null;
|
|
41
|
+
owner: {
|
|
42
|
+
adminId: string;
|
|
43
|
+
email: string;
|
|
44
|
+
name: string | null;
|
|
45
|
+
} | null;
|
|
46
|
+
branch: string | null;
|
|
47
|
+
idleDays: number | null;
|
|
48
|
+
createdAt: string;
|
|
49
|
+
lastActivityAt: string | null;
|
|
50
|
+
expiresAt: string | null;
|
|
51
|
+
/** Exact origins the child's CORS and email-redirect checks accept beside its authored lists. */
|
|
52
|
+
previewOrigins?: string[];
|
|
53
|
+
/** The child's protection level: always `internal` (#4564); absent from an older server. */
|
|
54
|
+
protection?: string;
|
|
55
|
+
}
|
|
56
|
+
/** A child's preview origins after a write to them. */
|
|
57
|
+
export interface ChildPreviewOrigins {
|
|
58
|
+
appId: string;
|
|
59
|
+
parentAppId: string;
|
|
60
|
+
childSlug: string;
|
|
61
|
+
previewOrigins: string[];
|
|
62
|
+
}
|
|
63
|
+
/** One row of a db3's index registry, as `db3/:id/indexes` answers it. */
|
|
64
|
+
export interface Db3IndexRow {
|
|
65
|
+
name: string;
|
|
66
|
+
model: string;
|
|
67
|
+
fields: string[];
|
|
68
|
+
unique: boolean;
|
|
69
|
+
origins: Array<{
|
|
70
|
+
kind: "declaration" | "named";
|
|
71
|
+
unique: boolean;
|
|
72
|
+
}>;
|
|
73
|
+
}
|
|
20
74
|
export declare class ApiError extends Error {
|
|
21
75
|
statusCode: number;
|
|
22
76
|
code?: string;
|
|
@@ -64,9 +118,11 @@ export declare function blobFailure(response: Response, prefix: string): Promise
|
|
|
64
118
|
* integrations proxy) use `message`. This helper reads both fields so all CLI
|
|
65
119
|
* call sites surface the real server message instead of `HTTP <status>`.
|
|
66
120
|
*
|
|
67
|
-
* `htmlNotFound` is set when the body
|
|
68
|
-
*
|
|
69
|
-
* "API endpoint not found" message
|
|
121
|
+
* `htmlNotFound` is set when the body is an HTML 404 page (typically served
|
|
122
|
+
* when an API path is wrong); callers can use it to throw a clearer
|
|
123
|
+
* "API endpoint not found" message. An HTML page with any other status — a
|
|
124
|
+
* gateway's 502, a rate limiter's 429, a firewall's 403 — keeps its status, so
|
|
125
|
+
* a retry and an absence check read it as what it is (#4148).
|
|
70
126
|
*
|
|
71
127
|
* `details` can be either an array (legacy validation-issue list) or a
|
|
72
128
|
* structured record (issue #666 schema gate); the schema-feature errors
|
|
@@ -90,51 +146,11 @@ export interface ParsedErrorResponse {
|
|
|
90
146
|
export declare function parseErrorResponse(response: {
|
|
91
147
|
status: number;
|
|
92
148
|
}, text: string, path?: string): ParsedErrorResponse;
|
|
93
|
-
/**
|
|
94
|
-
* Typed exception classes for the database-schema feature (issue #666).
|
|
95
|
-
* Each maps 1:1 to a server `code` value emitted from the op-edit or
|
|
96
|
-
* schema-edit gate. They all extend ApiError so existing catch-all paths
|
|
97
|
-
* continue to work; specialized catch blocks can branch on `instanceof`.
|
|
98
|
-
*
|
|
99
|
-
* Per round-2 addendum A1, `details` is always preserved so callers can
|
|
100
|
-
* extract structured offender lists (refs[], operations[], etc.).
|
|
101
|
-
*/
|
|
102
|
-
export declare class SchemaRequiredError extends ApiError {
|
|
103
|
-
constructor(message: string, details?: Record<string, any>);
|
|
104
|
-
}
|
|
105
|
-
export declare class OperationRefError extends ApiError {
|
|
106
|
-
constructor(message: string, details?: Record<string, any>);
|
|
107
|
-
get refs(): Array<{
|
|
108
|
-
ref: string;
|
|
109
|
-
location: string;
|
|
110
|
-
}>;
|
|
111
|
-
}
|
|
112
|
-
export declare class SchemaBreaksOpsError extends ApiError {
|
|
113
|
-
constructor(message: string, details?: Record<string, any>);
|
|
114
|
-
get operations(): Array<{
|
|
115
|
-
operation: string;
|
|
116
|
-
refs: Array<{
|
|
117
|
-
ref: string;
|
|
118
|
-
location: string;
|
|
119
|
-
}>;
|
|
120
|
-
}>;
|
|
121
|
-
}
|
|
122
|
-
export declare class SchemaHasUncheckableOpsError extends ApiError {
|
|
123
|
-
constructor(message: string, details?: Record<string, any>);
|
|
124
|
-
get operations(): Array<{
|
|
125
|
-
operation: string;
|
|
126
|
-
locations: string[];
|
|
127
|
-
}>;
|
|
128
|
-
}
|
|
129
149
|
export declare class TomlParseError extends ApiError {
|
|
130
150
|
constructor(message: string, details?: Record<string, any>);
|
|
131
151
|
get line(): number | undefined;
|
|
132
152
|
get column(): number | undefined;
|
|
133
153
|
}
|
|
134
|
-
export declare class OpsExistError extends ApiError {
|
|
135
|
-
constructor(message: string, details?: Record<string, any>);
|
|
136
|
-
get opCount(): number;
|
|
137
|
-
}
|
|
138
154
|
interface EmailTemplateSummary {
|
|
139
155
|
emailType: string;
|
|
140
156
|
label: string;
|
|
@@ -368,13 +384,7 @@ export interface ArchiveEnvelope {
|
|
|
368
384
|
archived?: boolean;
|
|
369
385
|
[key: string]: unknown;
|
|
370
386
|
}
|
|
371
|
-
/**
|
|
372
|
-
* Body accepted by integration create and update (#2631).
|
|
373
|
-
*
|
|
374
|
-
* `accessRule` is the CEL expression gating who may invoke the integration
|
|
375
|
-
* through the proxy. The server REQUIRES it on create; on update, `null` or
|
|
376
|
-
* `""` clears it, and a cleared rule denies every non-admin call.
|
|
377
|
-
*/
|
|
387
|
+
/** Body accepted by integration create and update (#2631). */
|
|
378
388
|
export interface IntegrationWritePayload {
|
|
379
389
|
integrationKey?: string;
|
|
380
390
|
displayName?: string;
|
|
@@ -382,11 +392,10 @@ export interface IntegrationWritePayload {
|
|
|
382
392
|
requestConfig?: any;
|
|
383
393
|
timeoutMs?: number;
|
|
384
394
|
status?: string;
|
|
385
|
-
accessRule?: string | null;
|
|
386
395
|
}
|
|
387
396
|
/**
|
|
388
|
-
* Integration detail response. `
|
|
389
|
-
* summary does not carry it
|
|
397
|
+
* Integration detail response. `requestConfig` is only on the detail — the
|
|
398
|
+
* list summary does not carry it.
|
|
390
399
|
*/
|
|
391
400
|
export interface IntegrationDetail {
|
|
392
401
|
integrationId: string;
|
|
@@ -396,7 +405,6 @@ export interface IntegrationDetail {
|
|
|
396
405
|
status?: string;
|
|
397
406
|
timeoutMs?: number;
|
|
398
407
|
requestConfig?: any;
|
|
399
|
-
accessRule?: string | null;
|
|
400
408
|
modifiedAt?: string;
|
|
401
409
|
[key: string]: any;
|
|
402
410
|
}
|
|
@@ -412,20 +420,6 @@ interface AnalyticsIntegrationMetricsResponse {
|
|
|
412
420
|
integrations: AnalyticsIntegrationMetric[];
|
|
413
421
|
_timing: AnalyticsTiming;
|
|
414
422
|
}
|
|
415
|
-
interface WorkflowAnalyticsSummary {
|
|
416
|
-
workflowKey: string;
|
|
417
|
-
runs: number;
|
|
418
|
-
successRate: number;
|
|
419
|
-
medianDurationMs: number;
|
|
420
|
-
p95: number;
|
|
421
|
-
totalTokens: number;
|
|
422
|
-
}
|
|
423
|
-
interface TopWorkflowsResponse {
|
|
424
|
-
windowDays: number;
|
|
425
|
-
limit: number;
|
|
426
|
-
workflows: WorkflowAnalyticsSummary[];
|
|
427
|
-
_timing: AnalyticsTiming;
|
|
428
|
-
}
|
|
429
423
|
interface PromptAnalyticsSummary {
|
|
430
424
|
promptKey: string;
|
|
431
425
|
executions: number;
|
|
@@ -471,35 +465,6 @@ export interface DatabaseBatchOperation {
|
|
|
471
465
|
*/
|
|
472
466
|
condition?: Record<string, any>;
|
|
473
467
|
}
|
|
474
|
-
/**
|
|
475
|
-
* Normalize a `databases operations execute` result to the CLI's one list
|
|
476
|
-
* envelope — but only when the result is a Durable Object query page
|
|
477
|
-
* (issue #2440).
|
|
478
|
-
*
|
|
479
|
-
* A registered operation is a list only sometimes. Of the shapes the server's
|
|
480
|
-
* operation dispatch can return, exactly two carry a top-level `data` array: a
|
|
481
|
-
* bare `query` and a `pipeline` whose `returnField` names a query step. A
|
|
482
|
-
* `count` (`{ count }`), an `aggregate` (`{ result }`), a mutation
|
|
483
|
-
* (`{ results }`), an `applyToQuery` (`{ matched, affected, failed, … }`) and a
|
|
484
|
-
* `returnField: "all"` pipeline (`{ steps: { … } }`) do not, so blanket
|
|
485
|
-
* normalization would corrupt them. This helper therefore tests the shape
|
|
486
|
-
* first and passes everything else through byte-for-byte — including the
|
|
487
|
-
* nested steps of a `returnField: "all"` pipeline, which are operation-defined
|
|
488
|
-
* objects the CLI must not reach into.
|
|
489
|
-
*
|
|
490
|
-
* Deliberately narrow, not a general-purpose predicate: the contract is
|
|
491
|
-
* specifically "an operations-execute result may be a DO query page".
|
|
492
|
-
* `executeDatabaseOperation()` is the only caller.
|
|
493
|
-
*
|
|
494
|
-
* The conversion itself is delegated to `normalizeCliListEnvelope()` so cursor
|
|
495
|
-
* handling, `prevCursor` dropping and `hasMore` derivation have exactly one
|
|
496
|
-
* implementation. That helper throws on an unrecognized shape — correct when
|
|
497
|
-
* the payload is supposed to be a list, wrong here, where the payload is the
|
|
498
|
-
* caller's own result — which is why the shape test has to run first. `_timing`
|
|
499
|
-
* (`--timing`) is re-attached afterwards, since it rides alongside the envelope
|
|
500
|
-
* rather than inside it.
|
|
501
|
-
*/
|
|
502
|
-
export declare function normalizeDatabaseOperationResult(raw: unknown): unknown;
|
|
503
468
|
export declare class ApiClient {
|
|
504
469
|
/**
|
|
505
470
|
* Loaded on first use (`ensureAuthenticated`), never in a constructor.
|
|
@@ -522,6 +487,40 @@ export declare class ApiClient {
|
|
|
522
487
|
private ensureAuthenticated;
|
|
523
488
|
private refreshToken;
|
|
524
489
|
request<T = any>(path: string, options?: RequestInit): Promise<T>;
|
|
490
|
+
/**
|
|
491
|
+
* Whether a 403 should be retried with the stored step-up: it names
|
|
492
|
+
* `admin` among the missing scopes, or it is a protected app's refusal of
|
|
493
|
+
* a token that is no step-up, and an unexpired step-up is stored.
|
|
494
|
+
*/
|
|
495
|
+
private stepUpApplies;
|
|
496
|
+
/**
|
|
497
|
+
* #4564 — a request outside `request` (an upload, a function invocation)
|
|
498
|
+
* sent with the CLI's own credentials, retried once with the stored step-up
|
|
499
|
+
* exactly as `request` retries. `init` builds the request for a bearer. The
|
|
500
|
+
* answer is the retry's, unless the retry was refused 401: the step-up is
|
|
501
|
+
* dropped and the original refusal comes back, still readable.
|
|
502
|
+
*/
|
|
503
|
+
private fetchWithStepUp;
|
|
504
|
+
/** Forget a step-up the server no longer accepts. */
|
|
505
|
+
private dropStepUp;
|
|
506
|
+
/** The typed error a failed response throws. */
|
|
507
|
+
private responseError;
|
|
508
|
+
/**
|
|
509
|
+
* `POST /admin/api/auth/token` — derive a token no wider than the stored
|
|
510
|
+
* one (`primitive token --scope`, #3889). A wider request is refused with
|
|
511
|
+
* `TOKEN_WIDER_THAN_PRESENTED`.
|
|
512
|
+
*/
|
|
513
|
+
exchangeToken(body: {
|
|
514
|
+
scope: string[];
|
|
515
|
+
apps?: string[];
|
|
516
|
+
ttl?: string;
|
|
517
|
+
}): Promise<{
|
|
518
|
+
accessToken: string;
|
|
519
|
+
expiresAt: string;
|
|
520
|
+
sessionId: string;
|
|
521
|
+
scope: string[];
|
|
522
|
+
apps: string[];
|
|
523
|
+
}>;
|
|
525
524
|
get<T = any>(path: string, params?: Record<string, any>): Promise<T>;
|
|
526
525
|
post<T = any>(path: string, body?: any): Promise<T>;
|
|
527
526
|
put<T = any>(path: string, body?: any): Promise<T>;
|
|
@@ -540,11 +539,14 @@ export declare class ApiClient {
|
|
|
540
539
|
listAppsPage(params?: {
|
|
541
540
|
limit?: number;
|
|
542
541
|
cursor?: string;
|
|
542
|
+
kind?: "parent" | "child";
|
|
543
543
|
}): Promise<{
|
|
544
544
|
items: Array<{
|
|
545
545
|
id: string;
|
|
546
546
|
name: string;
|
|
547
547
|
role?: string;
|
|
548
|
+
parentAppId?: string | null;
|
|
549
|
+
childSlug?: string | null;
|
|
548
550
|
}>;
|
|
549
551
|
hasMore?: boolean;
|
|
550
552
|
nextCursor?: string | null;
|
|
@@ -563,25 +565,44 @@ export declare class ApiClient {
|
|
|
563
565
|
}>;
|
|
564
566
|
}>;
|
|
565
567
|
/**
|
|
566
|
-
*
|
|
567
|
-
*
|
|
568
|
-
*
|
|
569
|
-
*
|
|
570
|
-
*
|
|
571
|
-
* --all-apps` has to reach apps nobody is assigned to, which is the global
|
|
572
|
-
* route `GET /admin/api/apps` (`App.iterateAll()`), and that route
|
|
573
|
-
* identifies an app as `appId` rather than `id` (D3130-001).
|
|
574
|
-
*
|
|
575
|
-
* One drain of that route is lossy — its cursor re-scans `App.iterateAll()`
|
|
576
|
-
* from the start of each page, so a list that changes under it both repeats
|
|
577
|
-
* and drops rows — so the walk is the union of repeated drains
|
|
578
|
-
* (`drainAppsUntilConverged`, which carries the measurement).
|
|
568
|
+
* Create an app. An ordinary app takes `name` (and, for a super-admin,
|
|
569
|
+
* `initialAdminEmail`). A child app takes `parentAppId` and `childSlug`
|
|
570
|
+
* instead, plus the optional `branch`, `idleDays` (7-30, default 30) and
|
|
571
|
+
* `copySecrets` (default true); the server names it `<parent name> /
|
|
572
|
+
* <slug>` and copies the parent's settings.
|
|
579
573
|
*/
|
|
580
|
-
listAllAppsGlobal(): Promise<GlobalAppRef[]>;
|
|
581
574
|
createApp(data: {
|
|
582
|
-
name
|
|
575
|
+
name?: string;
|
|
583
576
|
initialAdminEmail?: string;
|
|
577
|
+
parentAppId?: string;
|
|
578
|
+
childSlug?: string;
|
|
579
|
+
branch?: string;
|
|
580
|
+
idleDays?: number;
|
|
581
|
+
copySecrets?: boolean;
|
|
584
582
|
}): Promise<any>;
|
|
583
|
+
/**
|
|
584
|
+
* One page of an app's child apps, in creation order
|
|
585
|
+
* (`GET /admin/api/apps/{appId}/children`).
|
|
586
|
+
*/
|
|
587
|
+
listAppChildren(parentAppId: string, params?: {
|
|
588
|
+
limit?: number;
|
|
589
|
+
cursor?: string;
|
|
590
|
+
}): Promise<{
|
|
591
|
+
items: AppChildSummary[];
|
|
592
|
+
hasMore: boolean;
|
|
593
|
+
nextCursor: string | null;
|
|
594
|
+
}>;
|
|
595
|
+
/**
|
|
596
|
+
* Add one origin to a child's preview origins
|
|
597
|
+
* (`POST /admin/api/apps/{parentAppId}/children/{slug}/preview-origins`).
|
|
598
|
+
*/
|
|
599
|
+
addChildPreviewOrigin(parentAppId: string, slug: string, origin: string): Promise<ChildPreviewOrigins>;
|
|
600
|
+
/**
|
|
601
|
+
* Remove one origin from a child's preview origins
|
|
602
|
+
* (`DELETE /admin/api/apps/{parentAppId}/children/{slug}/preview-origins`).
|
|
603
|
+
*/
|
|
604
|
+
removeChildPreviewOrigin(parentAppId: string, slug: string, origin: string): Promise<ChildPreviewOrigins>;
|
|
605
|
+
private childPreviewOriginsPath;
|
|
585
606
|
getApp(appId: string): Promise<{
|
|
586
607
|
id: string;
|
|
587
608
|
name: string;
|
|
@@ -592,7 +613,23 @@ export declare class ApiClient {
|
|
|
592
613
|
addUserByEmail(appId: string, data: {
|
|
593
614
|
email: string;
|
|
594
615
|
role?: string;
|
|
616
|
+
name?: string;
|
|
617
|
+
avatarUrl?: string | null;
|
|
595
618
|
}): Promise<any>;
|
|
619
|
+
/**
|
|
620
|
+
* Set a member's display name and/or avatar URL
|
|
621
|
+
* (`PATCH /admin/api/apps/:appId/users/:userId/profile`). An omitted field
|
|
622
|
+
* is left alone; `avatarUrl: null` or `""` clears the avatar.
|
|
623
|
+
*/
|
|
624
|
+
setUserProfile(appId: string, userId: string, data: {
|
|
625
|
+
name?: string;
|
|
626
|
+
avatarUrl?: string | null;
|
|
627
|
+
}): Promise<{
|
|
628
|
+
userId: string;
|
|
629
|
+
email: string;
|
|
630
|
+
name: string | null;
|
|
631
|
+
avatarUrl: string | null;
|
|
632
|
+
}>;
|
|
596
633
|
mintTestJwt(appId: string, userId: string, role?: string): Promise<any>;
|
|
597
634
|
rebuildUserSearchText(appId: string): Promise<{
|
|
598
635
|
count: number;
|
|
@@ -696,7 +733,7 @@ export declare class ApiClient {
|
|
|
696
733
|
hasMore?: boolean;
|
|
697
734
|
nextCursor?: string | null;
|
|
698
735
|
}>;
|
|
699
|
-
/** Integration detail (
|
|
736
|
+
/** Integration detail (`requestConfig` is on the detail, not the list summary). */
|
|
700
737
|
getIntegration(appId: string, integrationId: string): Promise<IntegrationDetail>;
|
|
701
738
|
/**
|
|
702
739
|
* An integration's named configs. Test cases pin a config by NAME so the
|
|
@@ -726,9 +763,8 @@ export declare class ApiClient {
|
|
|
726
763
|
source?: "user" | "admin" | "test" | "workflow" | "function";
|
|
727
764
|
/** #3691 — only the calls this run made, workflow run or function run. */
|
|
728
765
|
runId?: string;
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
limit?: number;
|
|
766
|
+
/** #3781 — only the calls this step made: a workflow step id or a function step name. */
|
|
767
|
+
stepId?: string;
|
|
732
768
|
}): Promise<any[]>;
|
|
733
769
|
listAppSecrets(appId: string): Promise<any[]>;
|
|
734
770
|
createAppSecret(appId: string, payload: {
|
|
@@ -753,33 +789,6 @@ export declare class ApiClient {
|
|
|
753
789
|
expectNotExists?: boolean;
|
|
754
790
|
}): Promise<any>;
|
|
755
791
|
deleteAppConfigVar(appId: string, key: string, expectedModifiedAt?: string): Promise<any>;
|
|
756
|
-
listWebhooks(appId: string, params?: {
|
|
757
|
-
status?: string;
|
|
758
|
-
cursor?: string;
|
|
759
|
-
limit?: number;
|
|
760
|
-
}): Promise<{
|
|
761
|
-
items: any[];
|
|
762
|
-
hasMore?: boolean;
|
|
763
|
-
nextCursor?: string | null;
|
|
764
|
-
}>;
|
|
765
|
-
getWebhook(appId: string, webhookId: string): Promise<any>;
|
|
766
|
-
createWebhook(appId: string, payload: any): Promise<any>;
|
|
767
|
-
updateWebhook(appId: string, webhookId: string, payload: any, expectedModifiedAt?: string): Promise<any>;
|
|
768
|
-
/**
|
|
769
|
-
* Delete a webhook. Archives it by default; `hard` hard-deletes the row
|
|
770
|
-
* instead (#2232), which is what frees a slot under the per-app webhook cap
|
|
771
|
-
* and releases the webhook key for reuse. Same `?hard=true` verb the admin
|
|
772
|
-
* integrations delete uses.
|
|
773
|
-
*/
|
|
774
|
-
deleteWebhook(appId: string, webhookId: string, options?: {
|
|
775
|
-
hard?: boolean;
|
|
776
|
-
}): Promise<ArchiveEnvelope>;
|
|
777
|
-
/**
|
|
778
|
-
* #2803 — the operational verb pair for a webhook. It posts to the
|
|
779
|
-
* enable/disable route rather than PATCHing `status`, which is server-owned
|
|
780
|
-
* and refused on every configuration write path.
|
|
781
|
-
*/
|
|
782
|
-
setWebhookAvailability(appId: string, webhookId: string, action: "enable" | "disable"): Promise<any>;
|
|
783
792
|
listFunctions(appId: string): Promise<{
|
|
784
793
|
items: any[];
|
|
785
794
|
}>;
|
|
@@ -811,6 +820,30 @@ export declare class ApiClient {
|
|
|
811
820
|
items: any[];
|
|
812
821
|
nextCursor?: string | null;
|
|
813
822
|
}>;
|
|
823
|
+
private functionTriggersPath;
|
|
824
|
+
/** The function's webhook delivery log, newest first. */
|
|
825
|
+
listFunctionWebhookEvents(appId: string, functionId: string, params?: {
|
|
826
|
+
limit?: number;
|
|
827
|
+
cursor?: string;
|
|
828
|
+
}): Promise<{
|
|
829
|
+
items: any[];
|
|
830
|
+
hasMore?: boolean;
|
|
831
|
+
nextCursor?: string | null;
|
|
832
|
+
}>;
|
|
833
|
+
/** Sign a preview delivery for the function's webhook trigger. */
|
|
834
|
+
testFunctionWebhook(appId: string, functionId: string, payload?: any): Promise<any>;
|
|
835
|
+
/** Check captured headers and a captured body against the trigger's verifier. */
|
|
836
|
+
verifyFunctionWebhook(appId: string, functionId: string, payload: {
|
|
837
|
+
headers: Array<[string, string]>;
|
|
838
|
+
rawBody?: string;
|
|
839
|
+
bodyBase64?: string;
|
|
840
|
+
}): Promise<any>;
|
|
841
|
+
/** Point the trigger's `signingSecret` at a new `{{secrets.KEY}}` reference. */
|
|
842
|
+
rotateFunctionWebhookSecret(appId: string, functionId: string, payload: {
|
|
843
|
+
signingSecret: string;
|
|
844
|
+
}): Promise<any>;
|
|
845
|
+
/** One cron entry verb: `fire`, `fire-scheduled`, `enable` or `disable`. */
|
|
846
|
+
functionCronEntryAction(appId: string, functionId: string, name: string, action: "fire" | "fire-scheduled" | "enable" | "disable"): Promise<any>;
|
|
814
847
|
/**
|
|
815
848
|
* A function run's step trace — #3348.
|
|
816
849
|
*
|
|
@@ -823,6 +856,17 @@ export declare class ApiClient {
|
|
|
823
856
|
getFunctionStepRuns(appId: string, functionId: string, runId: string): Promise<{
|
|
824
857
|
items: any[];
|
|
825
858
|
}>;
|
|
859
|
+
/**
|
|
860
|
+
* The integration calls one function run made — #3190.
|
|
861
|
+
*
|
|
862
|
+
* The run → integration-logs pivot, addressed by the function that owns the
|
|
863
|
+
* run (it was `workflows/runs/{runId}/integration-logs`).
|
|
864
|
+
*/
|
|
865
|
+
listFunctionRunIntegrationLogs(appId: string, functionId: string, runId: string, options?: {
|
|
866
|
+
limit?: number;
|
|
867
|
+
}): Promise<{
|
|
868
|
+
items: any[];
|
|
869
|
+
}>;
|
|
826
870
|
/**
|
|
827
871
|
* End a function run that will not settle — #3348.
|
|
828
872
|
*
|
|
@@ -910,9 +954,8 @@ export declare class ApiClient {
|
|
|
910
954
|
/**
|
|
911
955
|
* Which runtime this call means — #3482. The ROUTE is the selector:
|
|
912
956
|
* `POST functions/{key}` runs the function inside the request and
|
|
913
|
-
* `POST functions/{key}/start` runs it as a task
|
|
914
|
-
* door
|
|
915
|
-
* in the body (F-3482-007); phase 7's rename may fold it.
|
|
957
|
+
* `POST functions/{key}/start` runs it as a task; the admin-only system
|
|
958
|
+
* door has `invoke-as-system` and `start-as-system` (#3190).
|
|
916
959
|
*/
|
|
917
960
|
runtime?: "request" | "task";
|
|
918
961
|
}): Promise<{
|
|
@@ -920,6 +963,18 @@ export declare class ApiClient {
|
|
|
920
963
|
retryAfterSeconds: number | null;
|
|
921
964
|
body: any;
|
|
922
965
|
}>;
|
|
966
|
+
/**
|
|
967
|
+
* Run only a function's `authorize` and hand back the ANSWER, whatever its
|
|
968
|
+
* HTTP status — #4732. Like `invokeFunction`, it returns a refusal rather
|
|
969
|
+
* than throwing it, so `functions authorize` renders the server's own
|
|
970
|
+
* answer (and a case run records it as a failed row); it throws only when
|
|
971
|
+
* the request did not complete. The CLI's own credentials, with the
|
|
972
|
+
* step-up retry a protected app's refusal asks for.
|
|
973
|
+
*/
|
|
974
|
+
authorizeFunction(appId: string, functionId: string, body: Record<string, unknown>): Promise<{
|
|
975
|
+
httpStatus: number;
|
|
976
|
+
body: any;
|
|
977
|
+
}>;
|
|
923
978
|
/**
|
|
924
979
|
* A function's versions, newest first (#3462).
|
|
925
980
|
*
|
|
@@ -954,28 +1009,15 @@ export declare class ApiClient {
|
|
|
954
1009
|
setPromptAvailability(appId: string, promptId: string, action: "enable" | "disable"): Promise<any>;
|
|
955
1010
|
/** #2803 — the operational verb pair for an integration (admin API). */
|
|
956
1011
|
setIntegrationAvailability(appId: string, integrationId: string, action: "enable" | "disable"): Promise<any>;
|
|
957
|
-
rotateWebhookSecret(appId: string, webhookId: string, payload: {
|
|
958
|
-
signingSecret: string;
|
|
959
|
-
}): Promise<any>;
|
|
960
|
-
listWebhookEvents(appId: string, webhookId: string, params?: {
|
|
961
|
-
limit?: number;
|
|
962
|
-
cursor?: string;
|
|
963
|
-
}): Promise<{
|
|
964
|
-
items: any[];
|
|
965
|
-
hasMore?: boolean;
|
|
966
|
-
nextCursor?: string | null;
|
|
967
|
-
}>;
|
|
968
1012
|
/**
|
|
969
1013
|
* List the live connections the server believes exist for exactly one of a
|
|
970
|
-
* document
|
|
1014
|
+
* document or user. Read-only inspection over admin-api. Rows are
|
|
971
1015
|
* per-connection-×-subscription bindings, so `connectionId` is not unique
|
|
972
|
-
* across rows.
|
|
973
|
-
* bound CEL input — typed `unknown`.
|
|
1016
|
+
* across rows.
|
|
974
1017
|
*/
|
|
975
1018
|
listConnections(appId: string, selector: {
|
|
976
1019
|
documentId?: string;
|
|
977
1020
|
userId?: string;
|
|
978
|
-
databaseId?: string;
|
|
979
1021
|
}, params?: {
|
|
980
1022
|
limit?: number;
|
|
981
1023
|
cursor?: string;
|
|
@@ -984,6 +1026,28 @@ export declare class ApiClient {
|
|
|
984
1026
|
hasMore?: boolean;
|
|
985
1027
|
nextCursor?: string | null;
|
|
986
1028
|
}>;
|
|
1029
|
+
/**
|
|
1030
|
+
* One page of one user's agent sessions (#3809): the app API's sessions
|
|
1031
|
+
* list, which an app owner or admin may read for any user.
|
|
1032
|
+
*/
|
|
1033
|
+
listAgentSessions(appId: string, params: {
|
|
1034
|
+
userId: string;
|
|
1035
|
+
agent?: string;
|
|
1036
|
+
scope?: string;
|
|
1037
|
+
limit?: number;
|
|
1038
|
+
cursor?: string;
|
|
1039
|
+
}): Promise<{
|
|
1040
|
+
items: unknown[];
|
|
1041
|
+
hasMore?: boolean;
|
|
1042
|
+
nextCursor?: string | null;
|
|
1043
|
+
}>;
|
|
1044
|
+
/**
|
|
1045
|
+
* One agent session (#3809): its binding, status, members and active turn,
|
|
1046
|
+
* and for an app owner or admin the session object's state. Never its rows.
|
|
1047
|
+
*/
|
|
1048
|
+
getAgentSession(appId: string, sessionId: string): Promise<any>;
|
|
1049
|
+
/** Delete an agent session and its document (#3809); a repeat succeeds again. */
|
|
1050
|
+
deleteAgentSession(appId: string, sessionId: string): Promise<any>;
|
|
987
1051
|
listSessions(appId: string, userId: string, params?: {
|
|
988
1052
|
limit?: number;
|
|
989
1053
|
cursor?: string;
|
|
@@ -1010,20 +1074,6 @@ export declare class ApiClient {
|
|
|
1010
1074
|
sessionId: string;
|
|
1011
1075
|
revokedAt: string;
|
|
1012
1076
|
}>;
|
|
1013
|
-
testWebhook(appId: string, webhookId: string, payload?: any): Promise<any>;
|
|
1014
|
-
/**
|
|
1015
|
-
* Run a webhook's configured verifier over headers and a body captured from
|
|
1016
|
-
* a real delivery, and report whether that signature checks out (#2445).
|
|
1017
|
-
*
|
|
1018
|
-
* `headers` is sent as ordered `[name, value]` pairs so a capture carrying a
|
|
1019
|
-
* field name on more than one line survives the round trip. Nothing is
|
|
1020
|
-
* delivered: no delivery record, no workflow run.
|
|
1021
|
-
*/
|
|
1022
|
-
verifyWebhook(appId: string, webhookId: string, payload: {
|
|
1023
|
-
headers: Array<[string, string]>;
|
|
1024
|
-
rawBody?: string;
|
|
1025
|
-
bodyBase64?: string;
|
|
1026
|
-
}): Promise<any>;
|
|
1027
1077
|
listLocks(appId: string): Promise<{
|
|
1028
1078
|
locks: any[];
|
|
1029
1079
|
}>;
|
|
@@ -1034,29 +1084,6 @@ export declare class ApiClient {
|
|
|
1034
1084
|
*/
|
|
1035
1085
|
acquireLock(appId: string, key: string, ttlMs: number, owner?: string): Promise<any>;
|
|
1036
1086
|
releaseLock(appId: string, key: string, handleId: string): Promise<any>;
|
|
1037
|
-
listCronTriggers(appId: string): Promise<{
|
|
1038
|
-
items: any[];
|
|
1039
|
-
}>;
|
|
1040
|
-
getCronTrigger(appId: string, triggerId: string): Promise<any>;
|
|
1041
|
-
createCronTrigger(appId: string, payload: any): Promise<any>;
|
|
1042
|
-
updateCronTrigger(appId: string, triggerId: string, payload: any): Promise<any>;
|
|
1043
|
-
/**
|
|
1044
|
-
* Retire a cron trigger. The default soft-deletes (writes the `archived`
|
|
1045
|
-
* tombstone); `{ hard: true }` destroys the row, which is what
|
|
1046
|
-
* `config push --prune` passes (#2803) so a pruned trigger stops consuming
|
|
1047
|
-
* the per-app cap and holding its key.
|
|
1048
|
-
*/
|
|
1049
|
-
deleteCronTrigger(appId: string, triggerId: string, options?: {
|
|
1050
|
-
hard?: boolean;
|
|
1051
|
-
}): Promise<ArchiveEnvelope>;
|
|
1052
|
-
disableCronTrigger(appId: string, triggerId: string): Promise<any>;
|
|
1053
|
-
enableCronTrigger(appId: string, triggerId: string): Promise<any>;
|
|
1054
|
-
testCronTrigger(appId: string, triggerId: string): Promise<any>;
|
|
1055
|
-
listIterations(appId: string): Promise<{
|
|
1056
|
-
items: any[];
|
|
1057
|
-
}>;
|
|
1058
|
-
getIteration(appId: string, iterationName: string): Promise<any>;
|
|
1059
|
-
resetIteration(appId: string, iterationName: string): Promise<any>;
|
|
1060
1087
|
readResourceMetadata(appId: string, resourceType: string, resourceId: string, category: string): Promise<any>;
|
|
1061
1088
|
writeResourceMetadata(appId: string, resourceType: string, resourceId: string, category: string, data: Record<string, any>): Promise<any>;
|
|
1062
1089
|
batchReadResourceMetadata(appId: string, requests: Array<{
|
|
@@ -1149,44 +1176,16 @@ export declare class ApiClient {
|
|
|
1149
1176
|
* is a distinct block version: `configId` is the stable version selector,
|
|
1150
1177
|
* `contentHash` is its content identity, and `status` reports whether it is
|
|
1151
1178
|
* `active`/`draft`/`archived`. The script header's `activeConfigId` names
|
|
1152
|
-
* the live
|
|
1153
|
-
* commands to run against a specific pinned version.
|
|
1179
|
+
* the version that was live. Used by `scripts configs list`.
|
|
1154
1180
|
*/
|
|
1155
1181
|
listScriptConfigs(appId: string, scriptId: string): Promise<{
|
|
1156
1182
|
items: any[];
|
|
1157
1183
|
}>;
|
|
1158
|
-
createScript(appId: string, payload: {
|
|
1159
|
-
name: string;
|
|
1160
|
-
body: string;
|
|
1161
|
-
description?: string;
|
|
1162
|
-
}): Promise<any>;
|
|
1163
|
-
/**
|
|
1164
|
-
* Push a new body for an existing script by creating a new `ScriptConfig`
|
|
1165
|
-
* and activating it (the prompt-model "edit → activate" flow). Referencing
|
|
1166
|
-
* workflows pick up the new body on their next run with no fan-out. The
|
|
1167
|
-
* config name is unique per script, so we mint a timestamped name.
|
|
1168
|
-
*/
|
|
1169
|
-
pushScriptBody(appId: string, scriptId: string, body: string,
|
|
1170
1184
|
/**
|
|
1171
|
-
*
|
|
1172
|
-
*
|
|
1173
|
-
* ACTIVATION step: if the active config has moved since the caller read it,
|
|
1174
|
-
* the server rejects with a 409 instead of overwriting a concurrent script
|
|
1175
|
-
* change. It takes BOTH halves of "what is active", because a config's body
|
|
1176
|
-
* can be edited in place without the active id changing — the id alone
|
|
1177
|
-
* would let such an edit through. Omitted (e.g. `--force`) means activate
|
|
1178
|
-
* unconditionally.
|
|
1185
|
+
* One version of a script, body included. A body the server cannot load
|
|
1186
|
+
* answers a 404 naming the version rather than an empty body.
|
|
1179
1187
|
*/
|
|
1180
|
-
|
|
1181
|
-
configId?: string;
|
|
1182
|
-
modifiedAt?: string;
|
|
1183
|
-
}): Promise<any>;
|
|
1184
|
-
/**
|
|
1185
|
-
* Delete a script header (cascades its configs). `force` overrides the
|
|
1186
|
-
* server's guard against deleting a script that an active workflow still
|
|
1187
|
-
* references by name — without it the server answers 409.
|
|
1188
|
-
*/
|
|
1189
|
-
deleteScript(appId: string, scriptId: string, force?: boolean): Promise<void>;
|
|
1188
|
+
getScriptConfig(appId: string, scriptId: string, configId: string): Promise<any>;
|
|
1190
1189
|
getPromptSchema(appId: string, promptId: string): Promise<{
|
|
1191
1190
|
promptId: string;
|
|
1192
1191
|
promptKey: string;
|
|
@@ -1202,7 +1201,7 @@ export declare class ApiClient {
|
|
|
1202
1201
|
* 100) and reports `nextCursor`; callers that reconcile the sync tree must
|
|
1203
1202
|
* drain every page before deleting or classifying anything (#2769).
|
|
1204
1203
|
*/
|
|
1205
|
-
listTestCases(appId: string, blockType: "prompt" | "integration"
|
|
1204
|
+
listTestCases(appId: string, blockType: "prompt" | "integration", blockId: string, params?: {
|
|
1206
1205
|
limit?: number;
|
|
1207
1206
|
cursor?: string;
|
|
1208
1207
|
}): Promise<{
|
|
@@ -1210,8 +1209,8 @@ export declare class ApiClient {
|
|
|
1210
1209
|
hasMore?: boolean;
|
|
1211
1210
|
nextCursor?: string;
|
|
1212
1211
|
}>;
|
|
1213
|
-
getTestCase(appId: string, blockType: "prompt" | "integration"
|
|
1214
|
-
createTestCase(appId: string, blockType: "prompt" | "integration"
|
|
1212
|
+
getTestCase(appId: string, blockType: "prompt" | "integration", blockId: string, testCaseId: string): Promise<any>;
|
|
1213
|
+
createTestCase(appId: string, blockType: "prompt" | "integration", blockId: string, payload: {
|
|
1215
1214
|
name: string;
|
|
1216
1215
|
description?: string | null;
|
|
1217
1216
|
inputVariables: Record<string, any>;
|
|
@@ -1223,8 +1222,8 @@ export declare class ApiClient {
|
|
|
1223
1222
|
evaluatorConfigId?: string;
|
|
1224
1223
|
/** The sidecar's file name — the case's identity (#2896). */
|
|
1225
1224
|
key?: string;
|
|
1226
|
-
}): Promise<any>;
|
|
1227
|
-
updateTestCase(appId: string, blockType: "prompt" | "integration"
|
|
1225
|
+
} & AgentTestCaseWireFields): Promise<any>;
|
|
1226
|
+
updateTestCase(appId: string, blockType: "prompt" | "integration", blockId: string, testCaseId: string, payload: {
|
|
1228
1227
|
name?: string;
|
|
1229
1228
|
description?: string | null;
|
|
1230
1229
|
inputVariables?: Record<string, any>;
|
|
@@ -1236,9 +1235,9 @@ export declare class ApiClient {
|
|
|
1236
1235
|
evaluatorConfigId?: string | null;
|
|
1237
1236
|
/** The sidecar's file name, on a create-or-rename backfill (#2896). */
|
|
1238
1237
|
key?: string;
|
|
1239
|
-
}): Promise<any>;
|
|
1240
|
-
deleteTestCase(appId: string, blockType: "prompt" | "integration"
|
|
1241
|
-
listTestCaseAttachments(appId: string, blockType: "prompt" | "integration"
|
|
1238
|
+
} & AgentTestCaseWireFields): Promise<any>;
|
|
1239
|
+
deleteTestCase(appId: string, blockType: "prompt" | "integration", blockId: string, testCaseId: string): Promise<void>;
|
|
1240
|
+
listTestCaseAttachments(appId: string, blockType: "prompt" | "integration", blockId: string, testCaseId: string): Promise<{
|
|
1242
1241
|
attachments: Array<{
|
|
1243
1242
|
filename: string;
|
|
1244
1243
|
contentType: string;
|
|
@@ -1246,7 +1245,7 @@ export declare class ApiClient {
|
|
|
1246
1245
|
r2Key: string;
|
|
1247
1246
|
}>;
|
|
1248
1247
|
}>;
|
|
1249
|
-
uploadTestCaseAttachment(appId: string, blockType: "prompt" | "integration"
|
|
1248
|
+
uploadTestCaseAttachment(appId: string, blockType: "prompt" | "integration", blockId: string, testCaseId: string, filename: string, data: Buffer, contentType: string): Promise<{
|
|
1250
1249
|
success: boolean;
|
|
1251
1250
|
attachment: {
|
|
1252
1251
|
filename: string;
|
|
@@ -1255,26 +1254,26 @@ export declare class ApiClient {
|
|
|
1255
1254
|
r2Key: string;
|
|
1256
1255
|
};
|
|
1257
1256
|
}>;
|
|
1258
|
-
downloadTestCaseAttachment(appId: string, blockType: "prompt" | "integration"
|
|
1257
|
+
downloadTestCaseAttachment(appId: string, blockType: "prompt" | "integration", blockId: string, testCaseId: string, filename: string): Promise<{
|
|
1259
1258
|
data: Buffer;
|
|
1260
1259
|
contentType: string;
|
|
1261
1260
|
}>;
|
|
1262
|
-
deleteTestCaseAttachment(appId: string, blockType: "prompt" | "integration"
|
|
1261
|
+
deleteTestCaseAttachment(appId: string, blockType: "prompt" | "integration", blockId: string, testCaseId: string, filename: string): Promise<{
|
|
1263
1262
|
success: boolean;
|
|
1264
1263
|
deleted: boolean;
|
|
1265
1264
|
}>;
|
|
1266
|
-
executeBlockTest(appId: string, blockType: "prompt" | "integration"
|
|
1265
|
+
executeBlockTest(appId: string, blockType: "prompt" | "integration", blockId: string, payload: {
|
|
1267
1266
|
variables?: Record<string, any>;
|
|
1268
1267
|
testCaseId?: string;
|
|
1269
1268
|
configId?: string;
|
|
1270
1269
|
comparisonGroup?: string;
|
|
1271
1270
|
}): Promise<any>;
|
|
1272
|
-
runAllTestCases(appId: string, blockType: "prompt" | "integration"
|
|
1271
|
+
runAllTestCases(appId: string, blockType: "prompt" | "integration", blockId: string, payload?: {
|
|
1273
1272
|
overrideConfigId?: string;
|
|
1274
1273
|
comparisonGroup?: string;
|
|
1275
1274
|
testCaseIds?: string[];
|
|
1276
1275
|
}): Promise<any>;
|
|
1277
|
-
listTestRuns(appId: string, blockType: "prompt" | "integration"
|
|
1276
|
+
listTestRuns(appId: string, blockType: "prompt" | "integration", blockId: string, params?: {
|
|
1278
1277
|
limit?: number;
|
|
1279
1278
|
comparisonGroup?: string;
|
|
1280
1279
|
}): Promise<{
|
|
@@ -1290,121 +1289,10 @@ export declare class ApiClient {
|
|
|
1290
1289
|
nextCursor?: string | null;
|
|
1291
1290
|
}>;
|
|
1292
1291
|
getWorkflow(appId: string, workflowId: string): Promise<any>;
|
|
1293
|
-
/**
|
|
1294
|
-
* One app's workflow step usage report (#3132).
|
|
1295
|
-
*
|
|
1296
|
-
* `windowDays` is omitted from the query when the caller did not ask for a
|
|
1297
|
-
* window, so the server applies its own default rather than the CLI
|
|
1298
|
-
* restating it on the wire.
|
|
1299
|
-
*/
|
|
1300
|
-
getWorkflowUsage(appId: string, params?: {
|
|
1301
|
-
windowDays?: number;
|
|
1302
|
-
}): Promise<WorkflowUsageReport>;
|
|
1303
|
-
createWorkflow(appId: string, payload: any): Promise<any>;
|
|
1304
|
-
updateWorkflow(appId: string, workflowId: string, payload: any, expectedModifiedAt?: string): Promise<any>;
|
|
1305
|
-
/**
|
|
1306
|
-
* Retire a workflow, or destroy it (#2887).
|
|
1307
|
-
*
|
|
1308
|
-
* The plain call ARCHIVES: the definition row stays, so its runs, revisions
|
|
1309
|
-
* and test cases keep resolving. `{ hard: true }` performs the full cascade
|
|
1310
|
-
* and is what releases the `workflowKey` — the flag `config push --prune`
|
|
1311
|
-
* sends, for the same reason it sends it for webhooks and integrations.
|
|
1312
|
-
*/
|
|
1313
|
-
deleteWorkflow(appId: string, workflowId: string, options?: {
|
|
1314
|
-
hard?: boolean;
|
|
1315
|
-
}): Promise<ArchiveEnvelope>;
|
|
1316
|
-
/**
|
|
1317
|
-
* #2645 criterion 9 — the operational toggle. Deliberately NOT the config
|
|
1318
|
-
* PATCH: `config push` owns every configuration field, and taking a workflow
|
|
1319
|
-
* out of service must not touch one, or an operator's action would show up as
|
|
1320
|
-
* drift against the repo. Same route shape as `cron-triggers pause|resume`.
|
|
1321
|
-
*/
|
|
1322
|
-
disableWorkflow(appId: string, workflowId: string): Promise<any>;
|
|
1323
|
-
enableWorkflow(appId: string, workflowId: string): Promise<any>;
|
|
1324
|
-
updateWorkflowDraft(appId: string, workflowId: string, payload: any): Promise<any>;
|
|
1325
|
-
previewWorkflow(appId: string, workflowId: string, payload: {
|
|
1326
|
-
rootInput?: object;
|
|
1327
|
-
meta?: object;
|
|
1328
|
-
configId?: string;
|
|
1329
|
-
useDraft?: boolean;
|
|
1330
|
-
preferActive?: boolean;
|
|
1331
|
-
}): Promise<{
|
|
1332
|
-
instanceId: string;
|
|
1333
|
-
usingDraft?: boolean;
|
|
1334
|
-
source?: "config" | "active" | "draft" | null;
|
|
1335
|
-
configName?: string | null;
|
|
1336
|
-
configId?: string | null;
|
|
1337
|
-
warning?: string;
|
|
1338
|
-
}>;
|
|
1339
|
-
getPreviewStatus(appId: string, workflowId: string, instanceId: string): Promise<any>;
|
|
1340
|
-
listWorkflowRuns(appId: string, workflowId: string, params?: {
|
|
1341
|
-
status?: string;
|
|
1342
|
-
limit?: number;
|
|
1343
|
-
cursor?: string;
|
|
1344
|
-
forward?: boolean;
|
|
1345
|
-
follow?: boolean;
|
|
1346
|
-
after?: string;
|
|
1347
|
-
}): Promise<{
|
|
1348
|
-
items: any[];
|
|
1349
|
-
hasMore?: boolean;
|
|
1350
|
-
nextCursor?: string | null;
|
|
1351
|
-
/** #1969 — opaque follow checkpoint; present on `follow=true` responses. */
|
|
1352
|
-
resumeAfter?: string;
|
|
1353
|
-
/**
|
|
1354
|
-
* #2237 — index rows the server examined for this request. Filtered reads
|
|
1355
|
-
* only, and only on a server new enough to report it; `undefined`
|
|
1356
|
-
* otherwise, which callers must treat as "unknown", not zero.
|
|
1357
|
-
*/
|
|
1358
|
-
scanned?: number;
|
|
1359
|
-
}>;
|
|
1360
|
-
/**
|
|
1361
|
-
* Workflow runs started by one app user, across every workflow (#1967).
|
|
1362
|
-
* Backed by `GET /admin/api/apps/{appId}/users/{userId}/workflow-runs`,
|
|
1363
|
-
* which resolves the app user before querying the `runsByUser` index.
|
|
1364
|
-
*/
|
|
1365
|
-
listUserWorkflowRuns(appId: string, userId: string, params?: {
|
|
1366
|
-
status?: string;
|
|
1367
|
-
limit?: number;
|
|
1368
|
-
cursor?: string;
|
|
1369
|
-
forward?: boolean;
|
|
1370
|
-
workflowId?: string;
|
|
1371
|
-
}): Promise<{
|
|
1372
|
-
items: any[];
|
|
1373
|
-
hasMore?: boolean;
|
|
1374
|
-
nextCursor?: string | null;
|
|
1375
|
-
/** #2237 — index rows examined; filtered reads only, `undefined` if unknown. */
|
|
1376
|
-
scanned?: number;
|
|
1377
|
-
}>;
|
|
1378
|
-
getWorkflowRunStatus(appId: string, workflowId: string, runId: string): Promise<any>;
|
|
1379
|
-
getWorkflowStepRuns(appId: string, workflowId: string, runId: string): Promise<{
|
|
1380
|
-
items: any[];
|
|
1381
|
-
}>;
|
|
1382
1292
|
listWorkflowConfigs(appId: string, workflowId: string): Promise<{
|
|
1383
1293
|
items: any[];
|
|
1384
1294
|
}>;
|
|
1385
1295
|
getWorkflowConfig(appId: string, workflowId: string, configId: string): Promise<any>;
|
|
1386
|
-
createWorkflowConfig(appId: string, workflowId: string, payload: {
|
|
1387
|
-
configName: string;
|
|
1388
|
-
description?: string;
|
|
1389
|
-
steps: any[];
|
|
1390
|
-
expressions?: {
|
|
1391
|
-
cel?: Record<string, string>;
|
|
1392
|
-
};
|
|
1393
|
-
}): Promise<any>;
|
|
1394
|
-
updateWorkflowConfig(appId: string, workflowId: string, configId: string, payload: {
|
|
1395
|
-
configName?: string;
|
|
1396
|
-
description?: string;
|
|
1397
|
-
steps?: any[];
|
|
1398
|
-
status?: string;
|
|
1399
|
-
expressions?: {
|
|
1400
|
-
cel?: Record<string, string>;
|
|
1401
|
-
};
|
|
1402
|
-
}): Promise<any>;
|
|
1403
|
-
archiveWorkflowConfig(appId: string, workflowId: string, configId: string): Promise<any>;
|
|
1404
|
-
activateWorkflowConfig(appId: string, workflowId: string, configId: string): Promise<any>;
|
|
1405
|
-
duplicateWorkflowConfig(appId: string, workflowId: string, configId: string, payload?: {
|
|
1406
|
-
configName?: string;
|
|
1407
|
-
}): Promise<any>;
|
|
1408
1296
|
getAnalyticsTopUsers(appId: string, params?: {
|
|
1409
1297
|
windowDays?: number;
|
|
1410
1298
|
limit?: number;
|
|
@@ -1453,10 +1341,6 @@ export declare class ApiClient {
|
|
|
1453
1341
|
limit?: number;
|
|
1454
1342
|
[key: string]: any;
|
|
1455
1343
|
}): Promise<AnalyticsErrorsGroupsResponse>;
|
|
1456
|
-
getAnalyticsTopWorkflows(appId: string, params?: {
|
|
1457
|
-
windowDays?: number;
|
|
1458
|
-
limit?: number;
|
|
1459
|
-
}): Promise<TopWorkflowsResponse>;
|
|
1460
1344
|
getAnalyticsTopPrompts(appId: string, params?: {
|
|
1461
1345
|
windowDays?: number;
|
|
1462
1346
|
limit?: number;
|
|
@@ -1516,7 +1400,7 @@ export declare class ApiClient {
|
|
|
1516
1400
|
createIntegrationCatalogItem(payload: any): Promise<any>;
|
|
1517
1401
|
updateIntegrationCatalogItem(catalogId: string, payload: any): Promise<any>;
|
|
1518
1402
|
deleteIntegrationCatalogItem(catalogId: string): Promise<void>;
|
|
1519
|
-
startBatchTests(appId: string, blockType: "prompt" | "integration"
|
|
1403
|
+
startBatchTests(appId: string, blockType: "prompt" | "integration", blockId: string, payload?: {
|
|
1520
1404
|
comparisonGroup?: string;
|
|
1521
1405
|
overrideConfigId?: string;
|
|
1522
1406
|
testCaseIds?: string[];
|
|
@@ -1526,7 +1410,7 @@ export declare class ApiClient {
|
|
|
1526
1410
|
instanceIds: string[];
|
|
1527
1411
|
errors?: any[];
|
|
1528
1412
|
}>;
|
|
1529
|
-
getBatchTestStatus(appId: string, blockType: "prompt" | "integration"
|
|
1413
|
+
getBatchTestStatus(appId: string, blockType: "prompt" | "integration", blockId: string, batchId: string): Promise<{
|
|
1530
1414
|
status: string;
|
|
1531
1415
|
batchId: string;
|
|
1532
1416
|
completed: number;
|
|
@@ -1543,7 +1427,7 @@ export declare class ApiClient {
|
|
|
1543
1427
|
endedAt?: string;
|
|
1544
1428
|
}>;
|
|
1545
1429
|
}>;
|
|
1546
|
-
cancelBatchTests(appId: string, blockType: "prompt" | "integration"
|
|
1430
|
+
cancelBatchTests(appId: string, blockType: "prompt" | "integration", blockId: string, batchId: string, instanceIds: string[]): Promise<{
|
|
1547
1431
|
batchId: string;
|
|
1548
1432
|
terminated: string[];
|
|
1549
1433
|
errors?: any[];
|
|
@@ -1650,41 +1534,11 @@ export declare class ApiClient {
|
|
|
1650
1534
|
createDatabase(appId: string, data: {
|
|
1651
1535
|
title: string;
|
|
1652
1536
|
databaseType?: string;
|
|
1653
|
-
metadata?: Record<string, any> | string;
|
|
1654
1537
|
initialMetadata?: Record<string, Record<string, unknown>>;
|
|
1655
1538
|
}): Promise<any>;
|
|
1656
1539
|
getDatabase(appId: string, databaseId: string): Promise<any>;
|
|
1657
1540
|
updateDatabase(appId: string, databaseId: string, data: Record<string, any>): Promise<any>;
|
|
1658
1541
|
deleteDatabase(appId: string, databaseId: string): Promise<void>;
|
|
1659
|
-
/**
|
|
1660
|
-
* Read a database's CEL context dict.
|
|
1661
|
-
*
|
|
1662
|
-
* The HTTP path stays `/metadata` because the wire field name is still
|
|
1663
|
-
* `metadata`; only the client/CLI-facing helper names were reframed.
|
|
1664
|
-
*
|
|
1665
|
-
* @deprecated Use resource metadata categories instead (`primitive metadata
|
|
1666
|
-
* get database <id> <category>`, #1420, #1815).
|
|
1667
|
-
*/
|
|
1668
|
-
getDatabaseCelContext(appId: string, databaseId: string): Promise<any>;
|
|
1669
|
-
/**
|
|
1670
|
-
* Update a database's CEL context dict (merge with existing).
|
|
1671
|
-
*
|
|
1672
|
-
* @deprecated Use resource metadata categories instead (`primitive metadata
|
|
1673
|
-
* set database <id> <category>`, #1420, #1815).
|
|
1674
|
-
*/
|
|
1675
|
-
updateDatabaseCelContext(appId: string, databaseId: string, celContext: Record<string, any>): Promise<any>;
|
|
1676
|
-
/**
|
|
1677
|
-
* @deprecated Database CEL context is deprecated; use resource metadata
|
|
1678
|
-
* categories instead (`primitive metadata get database <id> <category>`,
|
|
1679
|
-
* #1420, #1815).
|
|
1680
|
-
*/
|
|
1681
|
-
getDatabaseMetadata(appId: string, databaseId: string): Promise<any>;
|
|
1682
|
-
/**
|
|
1683
|
-
* @deprecated Database CEL context is deprecated; use resource metadata
|
|
1684
|
-
* categories instead (`primitive metadata set database <id> <category>`,
|
|
1685
|
-
* #1420, #1815).
|
|
1686
|
-
*/
|
|
1687
|
-
updateDatabaseMetadata(appId: string, databaseId: string, metadata: Record<string, any>): Promise<any>;
|
|
1688
1542
|
listDatabasePermissions(appId: string, databaseId: string): Promise<any[]>;
|
|
1689
1543
|
addDatabaseManager(appId: string, databaseId: string, userId: string): Promise<any>;
|
|
1690
1544
|
removeDatabaseManager(appId: string, databaseId: string, userId: string): Promise<any>;
|
|
@@ -1743,44 +1597,6 @@ export declare class ApiClient {
|
|
|
1743
1597
|
* `{ success, id, appliedFields }`.
|
|
1744
1598
|
*/
|
|
1745
1599
|
patchDatabaseRecord(appId: string, databaseId: string, modelName: string, id: string, data: any): Promise<any>;
|
|
1746
|
-
listDatabaseOperations(appId: string, databaseId: string): Promise<any[]>;
|
|
1747
|
-
/**
|
|
1748
|
-
* Execute a registered operation and, when the result is a query page,
|
|
1749
|
-
* normalize it to the CLI's one list envelope (issue #2440).
|
|
1750
|
-
*
|
|
1751
|
-
* The registered operation decides the response shape, so the normalization
|
|
1752
|
-
* is conditional — see {@link normalizeDatabaseOperationResult}. Everything
|
|
1753
|
-
* else (a `count`, an `aggregate`, a mutation, a `returnField: "all"`
|
|
1754
|
-
* pipeline) is returned exactly as the server sent it.
|
|
1755
|
-
*/
|
|
1756
|
-
executeDatabaseOperation(appId: string, databaseId: string, operationName: string, data?: {
|
|
1757
|
-
params?: Record<string, any>;
|
|
1758
|
-
limit?: number;
|
|
1759
|
-
cursor?: string;
|
|
1760
|
-
direction?: number;
|
|
1761
|
-
}, token?: string, options?: {
|
|
1762
|
-
timing?: boolean;
|
|
1763
|
-
}): Promise<any>;
|
|
1764
|
-
/**
|
|
1765
|
-
* Execute a registered batch (bulk) database operation. Posts a chunk of
|
|
1766
|
-
* items to the canonical `operations/:name/batch` endpoint (the same one the
|
|
1767
|
-
* client library's `executeBatch` uses — NOT the deprecated `import-bulk`
|
|
1768
|
-
* alias). Used by `databases import-csv`.
|
|
1769
|
-
*
|
|
1770
|
-
* @returns `{ imported, failed }` — DO-level write outcome counts. Per-item
|
|
1771
|
-
* validation/access failures abort the whole chunk with a 4xx (thrown).
|
|
1772
|
-
*/
|
|
1773
|
-
executeBatch(appId: string, databaseId: string, operationName: string, batch: Array<{
|
|
1774
|
-
params: Record<string, any>;
|
|
1775
|
-
}>): Promise<{
|
|
1776
|
-
imported: number;
|
|
1777
|
-
failed: number;
|
|
1778
|
-
}>;
|
|
1779
|
-
/**
|
|
1780
|
-
* Make a request using a specific JWT token instead of the CLI's credentials.
|
|
1781
|
-
* Used for executing operations as a different user.
|
|
1782
|
-
*/
|
|
1783
|
-
requestWithToken<T = any>(path: string, token: string, options?: RequestInit): Promise<T>;
|
|
1784
1600
|
listDatabaseIndexes(appId: string, databaseId: string, modelName?: string): Promise<any>;
|
|
1785
1601
|
registerDatabaseIndex(appId: string, databaseId: string, data: {
|
|
1786
1602
|
modelName: string;
|
|
@@ -1810,12 +1626,6 @@ export declare class ApiClient {
|
|
|
1810
1626
|
databaseType: string;
|
|
1811
1627
|
ruleSetId?: string | null;
|
|
1812
1628
|
triggers?: Record<string, any> | null;
|
|
1813
|
-
/**
|
|
1814
|
-
* @deprecated The TOML `type.celContextAccess` expression. Use resource
|
|
1815
|
-
* metadata categories instead (#1420, #1815).
|
|
1816
|
-
*/
|
|
1817
|
-
metadataAccess?: string | null;
|
|
1818
|
-
defaultAccess?: string | null;
|
|
1819
1629
|
autoPopulatedFields?: Record<string, any> | null;
|
|
1820
1630
|
timestamps?: Record<string, any> | null;
|
|
1821
1631
|
schema?: string | null;
|
|
@@ -1826,24 +1636,10 @@ export declare class ApiClient {
|
|
|
1826
1636
|
updateDatabaseTypeConfig(appId: string, databaseType: string, data: {
|
|
1827
1637
|
ruleSetId?: string | null;
|
|
1828
1638
|
triggers?: Record<string, any> | null;
|
|
1829
|
-
/**
|
|
1830
|
-
* @deprecated The TOML `type.celContextAccess` expression. Use resource
|
|
1831
|
-
* metadata categories instead (#1420, #1815).
|
|
1832
|
-
*/
|
|
1833
|
-
metadataAccess?: string | null;
|
|
1834
|
-
defaultAccess?: string | null;
|
|
1835
1639
|
autoPopulatedFields?: Record<string, any> | null;
|
|
1836
1640
|
timestamps?: Record<string, any> | null;
|
|
1837
1641
|
schema?: string | null;
|
|
1838
|
-
pendingOpDeletes?: string[];
|
|
1839
|
-
finalOpNames?: string[];
|
|
1840
1642
|
metadataManifest?: any;
|
|
1841
|
-
pendingOpUpdates?: Array<{
|
|
1842
|
-
name: string;
|
|
1843
|
-
access?: string | null;
|
|
1844
|
-
params?: Record<string, any> | null;
|
|
1845
|
-
}>;
|
|
1846
|
-
pendingOpUpserts?: Array<Record<string, any>>;
|
|
1847
1643
|
}, expectedModifiedAt?: string, options?: {
|
|
1848
1644
|
dryRun?: boolean;
|
|
1849
1645
|
acceptWarnings?: boolean;
|
|
@@ -1852,51 +1648,14 @@ export declare class ApiClient {
|
|
|
1852
1648
|
force?: boolean;
|
|
1853
1649
|
}): Promise<any>;
|
|
1854
1650
|
/**
|
|
1855
|
-
* Issue #666 Phase 3: ask the server to scaffold a TOML schema from
|
|
1856
|
-
*
|
|
1651
|
+
* Issue #666 Phase 3: ask the server to scaffold a TOML schema from the
|
|
1652
|
+
* type's databases (the models each holds, and their fields). Read-only —
|
|
1653
|
+
* does NOT persist.
|
|
1857
1654
|
*/
|
|
1858
1655
|
scaffoldDatabaseTypeSchema(appId: string, databaseType: string): Promise<{
|
|
1859
1656
|
schema: string;
|
|
1860
1657
|
}>;
|
|
1861
|
-
listDatabaseTypeOperations(appId: string, databaseType: string): Promise<any[]>;
|
|
1862
|
-
getDatabaseTypeOperation(appId: string, databaseType: string, name: string): Promise<any>;
|
|
1863
|
-
createDatabaseTypeOperation(appId: string, databaseType: string, data: {
|
|
1864
|
-
name: string;
|
|
1865
|
-
type: string;
|
|
1866
|
-
modelName: string;
|
|
1867
|
-
access?: string | null;
|
|
1868
|
-
definition: Record<string, any>;
|
|
1869
|
-
params?: Record<string, any> | null;
|
|
1870
|
-
}, options?: {
|
|
1871
|
-
dryRun?: boolean;
|
|
1872
|
-
schemaOverride?: string | null;
|
|
1873
|
-
defaultAccess?: string | null;
|
|
1874
|
-
metadataManifestOverride?: Record<string, any> | null;
|
|
1875
|
-
}): Promise<any>;
|
|
1876
|
-
updateDatabaseTypeOperation(appId: string, databaseType: string, name: string, data: Record<string, any>, expectedModifiedAt?: string, options?: {
|
|
1877
|
-
dryRun?: boolean;
|
|
1878
|
-
schemaOverride?: string | null;
|
|
1879
|
-
metadataManifestOverride?: Record<string, any> | null;
|
|
1880
|
-
}): Promise<any>;
|
|
1881
|
-
deleteDatabaseTypeOperation(appId: string, databaseType: string, name: string): Promise<any>;
|
|
1882
|
-
listDatabaseTypeSubscriptions(appId: string, databaseType: string): Promise<any[]>;
|
|
1883
|
-
getDatabaseTypeSubscription(appId: string, databaseType: string, subscriptionKey: string): Promise<any>;
|
|
1884
|
-
createDatabaseTypeSubscription(appId: string, databaseType: string, data: {
|
|
1885
|
-
subscriptionKey: string;
|
|
1886
|
-
displayName: string;
|
|
1887
|
-
modelName: string;
|
|
1888
|
-
filter: string;
|
|
1889
|
-
access: string;
|
|
1890
|
-
description?: string | null;
|
|
1891
|
-
select?: string[] | null;
|
|
1892
|
-
emit?: string[] | null;
|
|
1893
|
-
params?: Record<string, any> | null;
|
|
1894
|
-
status?: string;
|
|
1895
|
-
}): Promise<any>;
|
|
1896
|
-
updateDatabaseTypeSubscription(appId: string, databaseType: string, subscriptionKey: string, data: Record<string, any>, expectedModifiedAt?: string): Promise<any>;
|
|
1897
|
-
deleteDatabaseTypeSubscription(appId: string, databaseType: string, subscriptionKey: string): Promise<any>;
|
|
1898
1658
|
listGroups(appId: string, params?: {
|
|
1899
|
-
type?: string;
|
|
1900
1659
|
limit?: number;
|
|
1901
1660
|
cursor?: string;
|
|
1902
1661
|
}): Promise<{
|
|
@@ -1904,28 +1663,56 @@ export declare class ApiClient {
|
|
|
1904
1663
|
nextCursor?: string;
|
|
1905
1664
|
hasMore?: boolean;
|
|
1906
1665
|
}>;
|
|
1666
|
+
/** One page of one custodian's groups (`app` or `user:<userId>`), through the admin API. */
|
|
1667
|
+
listGroupsByCustodian(appId: string, custodian: string, params?: {
|
|
1668
|
+
limit?: number;
|
|
1669
|
+
cursor?: string;
|
|
1670
|
+
}): Promise<{
|
|
1671
|
+
items: any[];
|
|
1672
|
+
nextCursor?: string;
|
|
1673
|
+
hasMore?: boolean;
|
|
1674
|
+
}>;
|
|
1675
|
+
/** Transfer a group to `to` (`app` or `user:<userId>`) through the admin API. */
|
|
1676
|
+
transferGroup(appId: string, groupId: string, to: string): Promise<any>;
|
|
1677
|
+
/**
|
|
1678
|
+
* Create a group through the admin API; `custodian` is `app` or
|
|
1679
|
+
* `user:<userId>`. The server mints the group's id and answers it as
|
|
1680
|
+
* `groupId`.
|
|
1681
|
+
*/
|
|
1907
1682
|
createGroup(appId: string, data: {
|
|
1908
|
-
groupType: string;
|
|
1909
|
-
groupId?: string;
|
|
1910
1683
|
name: string;
|
|
1911
1684
|
description?: string;
|
|
1685
|
+
custodian: string;
|
|
1686
|
+
settings?: {
|
|
1687
|
+
memberList?: "members" | "managers";
|
|
1688
|
+
};
|
|
1912
1689
|
initialMetadata?: Record<string, Record<string, unknown>>;
|
|
1913
1690
|
}): Promise<any>;
|
|
1914
|
-
|
|
1915
|
-
|
|
1691
|
+
/**
|
|
1692
|
+
* A group by id. `groupType` looks a group written before groups were
|
|
1693
|
+
* addressed by id up by its type first (the routes' deprecated
|
|
1694
|
+
* `?groupType=`), as an exported collection's grants still name them.
|
|
1695
|
+
*/
|
|
1696
|
+
getGroup(appId: string, groupId: string, options?: {
|
|
1697
|
+
groupType?: string;
|
|
1698
|
+
}): Promise<any>;
|
|
1699
|
+
updateGroup(appId: string, groupId: string, data: {
|
|
1916
1700
|
name?: string;
|
|
1917
1701
|
description?: string;
|
|
1702
|
+
settings?: {
|
|
1703
|
+
memberList?: "members" | "managers";
|
|
1704
|
+
};
|
|
1918
1705
|
}): Promise<any>;
|
|
1919
|
-
deleteGroup(appId: string,
|
|
1706
|
+
deleteGroup(appId: string, groupId: string): Promise<any>;
|
|
1920
1707
|
/**
|
|
1921
|
-
* One page of a group's members.
|
|
1708
|
+
* One page of a group's members, with their roles.
|
|
1922
1709
|
*
|
|
1923
1710
|
* The route paginates cursor-style (no default limit, cap 200) and reports
|
|
1924
1711
|
* the boundary, so `groups members list` carries `--limit`/`--cursor` and
|
|
1925
1712
|
* forwards them (#3646) rather than printing a first page that claims to be
|
|
1926
1713
|
* the whole membership.
|
|
1927
1714
|
*/
|
|
1928
|
-
listGroupMembers(appId: string,
|
|
1715
|
+
listGroupMembers(appId: string, groupId: string, options?: {
|
|
1929
1716
|
include?: "profiles";
|
|
1930
1717
|
limit?: number;
|
|
1931
1718
|
cursor?: string;
|
|
@@ -1934,11 +1721,16 @@ export declare class ApiClient {
|
|
|
1934
1721
|
nextCursor?: string;
|
|
1935
1722
|
hasMore?: boolean;
|
|
1936
1723
|
}>;
|
|
1937
|
-
|
|
1724
|
+
/** Add a member through the admin API; `role: "owner"` restores the custodian's owner row. */
|
|
1725
|
+
addGroupMember(appId: string, groupId: string, data: {
|
|
1938
1726
|
userId: string;
|
|
1727
|
+
role?: string;
|
|
1939
1728
|
}): Promise<any>;
|
|
1940
|
-
|
|
1941
|
-
|
|
1729
|
+
/** Change a member's role through the admin API, the owner row's included. */
|
|
1730
|
+
setGroupMemberRole(appId: string, groupId: string, userId: string, role: string): Promise<any>;
|
|
1731
|
+
/** Remove a member through the admin API, the owner row included. */
|
|
1732
|
+
removeGroupMember(appId: string, groupId: string, userId: string): Promise<any>;
|
|
1733
|
+
listGroupDocuments(appId: string, groupId: string): Promise<any[]>;
|
|
1942
1734
|
listUserMemberships(appId: string, userId: string): Promise<any[]>;
|
|
1943
1735
|
listDocumentGroupPermissions(appId: string, documentId: string): Promise<any[]>;
|
|
1944
1736
|
grantDocumentGroupPermission(appId: string, documentId: string, data: {
|
|
@@ -1972,12 +1764,40 @@ export declare class ApiClient {
|
|
|
1972
1764
|
*/
|
|
1973
1765
|
collectionType?: string;
|
|
1974
1766
|
initialMetadata?: Record<string, Record<string, unknown>>;
|
|
1767
|
+
}): Promise<any>;
|
|
1768
|
+
/** One page of one custodian's collections (`app` or `user:<userId>`), through the admin API. */
|
|
1769
|
+
listCollectionsByCustodian(appId: string, custodian: string, params?: {
|
|
1770
|
+
limit?: number;
|
|
1771
|
+
cursor?: string;
|
|
1772
|
+
}): Promise<{
|
|
1773
|
+
items: any[];
|
|
1774
|
+
nextCursor?: string;
|
|
1775
|
+
hasMore?: boolean;
|
|
1776
|
+
}>;
|
|
1777
|
+
/** Transfer a collection to `to` (`app` or `user:<userId>`) through the admin API. */
|
|
1778
|
+
transferCollection(appId: string, collectionId: string, to: string): Promise<any>;
|
|
1779
|
+
/**
|
|
1780
|
+
* Create a collection through the admin API, for `custodian` (`app` or
|
|
1781
|
+
* `user:<userId>`; a user custodian holds the owner row). Spends no
|
|
1782
|
+
* create budget.
|
|
1783
|
+
*/
|
|
1784
|
+
createCollectionAsAdmin(appId: string, data: {
|
|
1785
|
+
name: string;
|
|
1786
|
+
description?: string;
|
|
1975
1787
|
/**
|
|
1976
|
-
*
|
|
1977
|
-
*
|
|
1978
|
-
* itself, exactly as `createDocument`'s does.
|
|
1788
|
+
* Deprecated: the server still records it while enforcement reads rule
|
|
1789
|
+
* sets, so a migration carries it across.
|
|
1979
1790
|
*/
|
|
1980
|
-
|
|
1791
|
+
collectionType?: string;
|
|
1792
|
+
custodian: string;
|
|
1793
|
+
settings?: {
|
|
1794
|
+
memberList?: "members" | "managers";
|
|
1795
|
+
} | Record<string, unknown>;
|
|
1796
|
+
initialMembers?: Array<{
|
|
1797
|
+
userId: string;
|
|
1798
|
+
role: string;
|
|
1799
|
+
}>;
|
|
1800
|
+
initialMetadata?: Record<string, Record<string, unknown>>;
|
|
1981
1801
|
}): Promise<any>;
|
|
1982
1802
|
getCollection(appId: string, collectionId: string): Promise<any>;
|
|
1983
1803
|
updateCollection(appId: string, collectionId: string, data: {
|
|
@@ -2004,30 +1824,30 @@ export declare class ApiClient {
|
|
|
2004
1824
|
items: any[];
|
|
2005
1825
|
nextCursor?: string | null;
|
|
2006
1826
|
}>;
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
1827
|
+
/**
|
|
1828
|
+
* Every member of a collection, users and groups as principals with their
|
|
1829
|
+
* roles, in one answer.
|
|
1830
|
+
*/
|
|
1831
|
+
listCollectionMembers(appId: string, collectionId: string): Promise<{
|
|
1832
|
+
items: any[];
|
|
1833
|
+
hasMore: boolean;
|
|
1834
|
+
}>;
|
|
1835
|
+
/**
|
|
1836
|
+
* Add a user or a group to a collection through the admin API, with a role;
|
|
1837
|
+
* `role: "owner"` restores the custodian's owner row.
|
|
1838
|
+
*/
|
|
1839
|
+
addCollectionMember(appId: string, collectionId: string, data: ({
|
|
2015
1840
|
userId: string;
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
createCollectionTypeConfig(appId: string, data: {
|
|
2022
|
-
collectionType: string;
|
|
2023
|
-
ruleSetId?: string;
|
|
2024
|
-
metadataManifest?: any;
|
|
1841
|
+
} | {
|
|
1842
|
+
groupId: string;
|
|
1843
|
+
groupType?: string;
|
|
1844
|
+
}) & {
|
|
1845
|
+
role: string;
|
|
2025
1846
|
}): Promise<any>;
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
deleteCollectionTypeConfig(appId: string, collectionType: string): Promise<any>;
|
|
1847
|
+
/** Change a member's role through the admin API, the owner row's included. */
|
|
1848
|
+
setCollectionMemberRole(appId: string, collectionId: string, principal: string, role: string): Promise<any>;
|
|
1849
|
+
/** Remove a user or `group:<groupId>` through the admin API, the owner row included. */
|
|
1850
|
+
removeCollectionMember(appId: string, collectionId: string, principal: string): Promise<any>;
|
|
2031
1851
|
/**
|
|
2032
1852
|
* List all metadata category configs for an app. The route returns
|
|
2033
1853
|
* `{ configs: [...] }`; unwrap to a bare array to match the other
|
|
@@ -2085,20 +1905,6 @@ export declare class ApiClient {
|
|
|
2085
1905
|
}>;
|
|
2086
1906
|
testRuleSet(appId: string, ruleSetId: string, data: any): Promise<any>;
|
|
2087
1907
|
debugRuleSet(appId: string, data: any): Promise<any>;
|
|
2088
|
-
listGroupTypeConfigs(appId: string): Promise<any[]>;
|
|
2089
|
-
getGroupTypeConfig(appId: string, groupType: string): Promise<any>;
|
|
2090
|
-
createGroupTypeConfig(appId: string, data: {
|
|
2091
|
-
groupType: string;
|
|
2092
|
-
ruleSetId?: string;
|
|
2093
|
-
autoAddCreator?: boolean;
|
|
2094
|
-
metadataManifest?: any;
|
|
2095
|
-
}): Promise<any>;
|
|
2096
|
-
updateGroupTypeConfig(appId: string, groupType: string, data: {
|
|
2097
|
-
ruleSetId?: string | null;
|
|
2098
|
-
autoAddCreator?: boolean;
|
|
2099
|
-
metadataManifest?: any;
|
|
2100
|
-
}, expectedModifiedAt?: string): Promise<any>;
|
|
2101
|
-
deleteGroupTypeConfig(appId: string, groupType: string): Promise<any>;
|
|
2102
1908
|
exportDocumentState(appId: string, documentId: string): Promise<{
|
|
2103
1909
|
state: string;
|
|
2104
1910
|
byteLength: number;
|
|
@@ -2121,28 +1927,6 @@ export declare class ApiClient {
|
|
|
2121
1927
|
*/
|
|
2122
1928
|
downloadDocumentArtifact(_appId: string, grantedPath: string): Promise<Buffer>;
|
|
2123
1929
|
importDocumentState(appId: string, documentId: string, stateBase64: string): Promise<any>;
|
|
2124
|
-
/**
|
|
2125
|
-
* Upload one artifact of a large document's import chain (#2816,
|
|
2126
|
-
* behavior 20).
|
|
2127
|
-
*
|
|
2128
|
-
* The bytes travel raw and unmodified: the manifest's digest is over the
|
|
2129
|
-
* STORED bytes, so re-encoding a chunk here would fail its own verification
|
|
2130
|
-
* on install. The query says which artifact it is — the server derives the
|
|
2131
|
-
* key from the document it belongs to, so nothing here composes one.
|
|
2132
|
-
*/
|
|
2133
|
-
uploadDocumentChainArtifact(appId: string, documentId: string, query: Record<string, string | number>, body: Buffer): Promise<any>;
|
|
2134
|
-
/** Start installing an uploaded chain (#2816, behavior 20). */
|
|
2135
|
-
installDocumentChain(appId: string, documentId: string, plan: {
|
|
2136
|
-
installId?: string;
|
|
2137
|
-
base: {
|
|
2138
|
-
epoch: number;
|
|
2139
|
-
buildId: string;
|
|
2140
|
-
} | null;
|
|
2141
|
-
overlays: number[];
|
|
2142
|
-
currentEpoch: number;
|
|
2143
|
-
}): Promise<any>;
|
|
2144
|
-
/** How far a document's chain install has got (#2816, behavior 20). */
|
|
2145
|
-
getDocumentChainInstall(appId: string, documentId: string): Promise<any>;
|
|
2146
1930
|
getDocument(appId: string, documentId: string): Promise<any>;
|
|
2147
1931
|
/**
|
|
2148
1932
|
* Delete a document and everything hanging off it (#2756). The server route
|
|
@@ -2174,42 +1958,64 @@ export declare class ApiClient {
|
|
|
2174
1958
|
* through the caller's document permission (reader+) or the app-admin arm.
|
|
2175
1959
|
* Returns the unified `{ items, hasMore, nextCursor? }` envelope. The cursor
|
|
2176
1960
|
* is an opaque token — feed `nextCursor` back as `cursor` for the next page.
|
|
1961
|
+
* `limit` is 100 records when omitted and at most 10000; it is forwarded
|
|
1962
|
+
* unparsed (a string from the command line) so the server validates it.
|
|
2177
1963
|
*/
|
|
2178
1964
|
queryDocumentRecords(appId: string, documentId: string, modelName: string, queryOptions?: {
|
|
2179
1965
|
filter?: Record<string, any>;
|
|
2180
|
-
|
|
1966
|
+
/** `{ field: 1 | -1 }`, key order as precedence; the route validates it. */
|
|
1967
|
+
sort?: unknown;
|
|
1968
|
+
limit?: number | string;
|
|
2181
1969
|
cursor?: string;
|
|
2182
1970
|
/** #3764 — the format the caller believes this document has. */
|
|
2183
|
-
documentFormat?: 1 |
|
|
1971
|
+
documentFormat?: 1 | 3;
|
|
1972
|
+
/** #4692 — include specs, answered on a db3 as `_related`; the route validates them. */
|
|
1973
|
+
include?: unknown;
|
|
2184
1974
|
}): Promise<ListEnvelope>;
|
|
2185
1975
|
/**
|
|
2186
1976
|
* Count records in a document model (issue #1964 Phase 3). Returns `{ count }`.
|
|
2187
1977
|
*/
|
|
2188
1978
|
countDocumentRecords(appId: string, documentId: string, modelName: string, queryOptions?: {
|
|
2189
1979
|
filter?: Record<string, any>;
|
|
2190
|
-
documentFormat?: 1 |
|
|
1980
|
+
documentFormat?: 1 | 3;
|
|
2191
1981
|
}): Promise<{
|
|
2192
1982
|
count: number;
|
|
2193
1983
|
}>;
|
|
2194
1984
|
/**
|
|
2195
1985
|
* Aggregate records in a document model (issue #2437) — the documents twin
|
|
2196
1986
|
* of {@link aggregateDatabaseRecords}. `POST documents/:id/records/:model/aggregate`
|
|
2197
|
-
* with `{ options: { operations, groupBy?, filter? } }`,
|
|
2198
|
-
* in the same shape as the database endpoint.
|
|
1987
|
+
* with `{ options: { operations, groupBy?, filter?, sort?, limit? } }`,
|
|
1988
|
+
* answering `{ result }` in the same shape as the database endpoint.
|
|
2199
1989
|
*
|
|
2200
|
-
* `groupBy` takes plain field names
|
|
2201
|
-
*
|
|
2202
|
-
*
|
|
1990
|
+
* `groupBy` takes plain field names and period levels `{ field, period }`
|
|
1991
|
+
* (keyed `<field>_<period>` in a row's `group`). On a db3 (a format-3
|
|
1992
|
+
* document) a StringSet field name is a facet, `{ field, contains }` a
|
|
1993
|
+
* membership, and `sort` and `limit` order and bound the groups; a format-1
|
|
1994
|
+
* document refuses those four with a 400.
|
|
2203
1995
|
*/
|
|
2204
1996
|
aggregateDocumentRecords(appId: string, documentId: string, modelName: string, options: {
|
|
2205
1997
|
operations: {
|
|
2206
1998
|
type: string;
|
|
2207
1999
|
field?: string;
|
|
2208
2000
|
}[];
|
|
2209
|
-
|
|
2001
|
+
/** On a db3, a StringSet field name is a facet and `{ field, contains }` a membership. */
|
|
2002
|
+
groupBy?: Array<string | {
|
|
2003
|
+
field: string;
|
|
2004
|
+
period: "month" | "quarter" | "year";
|
|
2005
|
+
} | {
|
|
2006
|
+
field: string;
|
|
2007
|
+
contains: string;
|
|
2008
|
+
}>;
|
|
2210
2009
|
filter?: Record<string, any>;
|
|
2010
|
+
/** The groups' order; a db3 only. */
|
|
2011
|
+
sort?: {
|
|
2012
|
+
field: string;
|
|
2013
|
+
direction: 1 | -1;
|
|
2014
|
+
};
|
|
2015
|
+
/** The most groups answered, 1 to 10,000; a db3 only. */
|
|
2016
|
+
limit?: number;
|
|
2211
2017
|
}, extra?: {
|
|
2212
|
-
documentFormat?: 1 |
|
|
2018
|
+
documentFormat?: 1 | 3;
|
|
2213
2019
|
}): Promise<{
|
|
2214
2020
|
result: unknown;
|
|
2215
2021
|
}>;
|
|
@@ -2218,6 +2024,17 @@ export declare class ApiClient {
|
|
|
2218
2024
|
* record/model/blob counts, approximate size, and last-modified timestamp.
|
|
2219
2025
|
*/
|
|
2220
2026
|
getDocumentStats(appId: string, documentId: string): Promise<any>;
|
|
2027
|
+
/**
|
|
2028
|
+
* A record-log document's room (#4306): `GET documents/:id/room` →
|
|
2029
|
+
* `{ ok, appId, documentId, documentFormat, room }`, `room` null for a
|
|
2030
|
+
* format that has no record room. With `refused` (#4310), the answer also
|
|
2031
|
+
* carries a page of that bulk load's refused rows. App admins only.
|
|
2032
|
+
*/
|
|
2033
|
+
getDocumentRoom(appId: string, documentId: string, query?: {
|
|
2034
|
+
refused?: string;
|
|
2035
|
+
limit?: number;
|
|
2036
|
+
cursor?: string;
|
|
2037
|
+
}): Promise<any>;
|
|
2221
2038
|
/**
|
|
2222
2039
|
* A large document's snapshot builds, newest first, one page (#3432).
|
|
2223
2040
|
* `GET documents/:id/snapshots` → `{ items, hasMore, nextCursor? }`.
|
|
@@ -2247,8 +2064,16 @@ export declare class ApiClient {
|
|
|
2247
2064
|
}>;
|
|
2248
2065
|
/** One bulk-load session's status (#3434). */
|
|
2249
2066
|
getDocumentIngest(appId: string, documentId: string, sessionId: string): Promise<any>;
|
|
2250
|
-
/**
|
|
2251
|
-
|
|
2067
|
+
/**
|
|
2068
|
+
* Open a bulk-load session on a large document (#3435, criterion 9). A
|
|
2069
|
+
* record-log (format 3) document's load takes `reserveEpoch`, `mode` and a
|
|
2070
|
+
* refresh's `models` (#4310); `{}` keeps every format's defaults.
|
|
2071
|
+
*/
|
|
2072
|
+
createDocumentIngest(appId: string, documentId: string, options?: {
|
|
2073
|
+
reserveEpoch?: "open" | "commit";
|
|
2074
|
+
mode?: "merge" | "refresh";
|
|
2075
|
+
models?: string[];
|
|
2076
|
+
}): Promise<any>;
|
|
2252
2077
|
/**
|
|
2253
2078
|
* Upload one chunk of a bulk-load session's artifact (#3435).
|
|
2254
2079
|
*
|
|
@@ -2268,6 +2093,8 @@ export declare class ApiClient {
|
|
|
2268
2093
|
lastId: string;
|
|
2269
2094
|
body: Buffer;
|
|
2270
2095
|
}): Promise<any>;
|
|
2096
|
+
/** A chunk upload to `<base>/ingest/<session>/chunks`: the documents route or its db3 mount. */
|
|
2097
|
+
private uploadIngestChunkAt;
|
|
2271
2098
|
/** Freeze a session's manifest and hand it to the pipeline (#3435). */
|
|
2272
2099
|
commitDocumentIngest(appId: string, documentId: string, sessionId: string): Promise<any>;
|
|
2273
2100
|
/** Give a session up; allowed until the swap (#3435). */
|
|
@@ -2294,7 +2121,7 @@ export declare class ApiClient {
|
|
|
2294
2121
|
data: Record<string, unknown>;
|
|
2295
2122
|
options?: Record<string, unknown>;
|
|
2296
2123
|
}, extra?: {
|
|
2297
|
-
documentFormat?: 1 |
|
|
2124
|
+
documentFormat?: 1 | 3;
|
|
2298
2125
|
}): Promise<{
|
|
2299
2126
|
record: unknown;
|
|
2300
2127
|
}>;
|
|
@@ -2307,7 +2134,7 @@ export declare class ApiClient {
|
|
|
2307
2134
|
data: Record<string, unknown>;
|
|
2308
2135
|
options?: Record<string, unknown>;
|
|
2309
2136
|
}, extra?: {
|
|
2310
|
-
documentFormat?: 1 |
|
|
2137
|
+
documentFormat?: 1 | 3;
|
|
2311
2138
|
}): Promise<{
|
|
2312
2139
|
record: unknown;
|
|
2313
2140
|
}>;
|
|
@@ -2317,7 +2144,7 @@ export declare class ApiClient {
|
|
|
2317
2144
|
* a silent no-op per the facade contract. Returns `{ deleted: true }`.
|
|
2318
2145
|
*/
|
|
2319
2146
|
deleteDocumentRecord(appId: string, documentId: string, modelName: string, recordId: string, extra?: {
|
|
2320
|
-
documentFormat?: 1 |
|
|
2147
|
+
documentFormat?: 1 | 3;
|
|
2321
2148
|
}): Promise<{
|
|
2322
2149
|
deleted: boolean;
|
|
2323
2150
|
}>;
|
|
@@ -2328,7 +2155,7 @@ export declare class ApiClient {
|
|
|
2328
2155
|
* `{ applied, added, updated, deleted }`.
|
|
2329
2156
|
*/
|
|
2330
2157
|
bulkDocumentRecords(appId: string, documentId: string, operations: Array<Record<string, unknown>>, extra?: {
|
|
2331
|
-
documentFormat?: 1 |
|
|
2158
|
+
documentFormat?: 1 | 3;
|
|
2332
2159
|
}): Promise<{
|
|
2333
2160
|
applied: number;
|
|
2334
2161
|
added: Array<{
|
|
@@ -2340,13 +2167,246 @@ export declare class ApiClient {
|
|
|
2340
2167
|
id: string;
|
|
2341
2168
|
}>;
|
|
2342
2169
|
deleted: number;
|
|
2170
|
+
upserted: Array<{
|
|
2171
|
+
index: number;
|
|
2172
|
+
model: string;
|
|
2173
|
+
id: string;
|
|
2174
|
+
created: boolean;
|
|
2175
|
+
}>;
|
|
2176
|
+
}>;
|
|
2177
|
+
/** `/app/<app>/api/db3/<id>`, the id encoded: every `db3.*` route's prefix. */
|
|
2178
|
+
private db3Path;
|
|
2179
|
+
/** `GET db3/:id/indexes` → `{ indexes }`, sorted by name. */
|
|
2180
|
+
listDb3Indexes(appId: string, db3Id: string): Promise<{
|
|
2181
|
+
indexes: Db3IndexRow[];
|
|
2182
|
+
}>;
|
|
2183
|
+
/**
|
|
2184
|
+
* `POST db3/:id/indexes` with `{ model, field | fields, unique?, name? }` →
|
|
2185
|
+
* `{ index }`. The route applies the registration rules.
|
|
2186
|
+
*/
|
|
2187
|
+
registerDb3Index(appId: string, db3Id: string, body: {
|
|
2188
|
+
model: string;
|
|
2189
|
+
field?: string;
|
|
2190
|
+
fields?: string[];
|
|
2191
|
+
unique?: boolean;
|
|
2192
|
+
name?: string;
|
|
2193
|
+
}): Promise<{
|
|
2194
|
+
index: Db3IndexRow;
|
|
2195
|
+
}>;
|
|
2196
|
+
/** `DELETE db3/:id/indexes/:name` → `{ ok, name }`. */
|
|
2197
|
+
dropDb3Index(appId: string, db3Id: string, name: string): Promise<{
|
|
2198
|
+
ok: boolean;
|
|
2199
|
+
name: string;
|
|
2200
|
+
}>;
|
|
2201
|
+
/** The db3 mount of {@link queryDocumentRecords}: `GET db3/:id/records/:model`. */
|
|
2202
|
+
queryDb3Records(appId: string, db3Id: string, modelName: string, queryOptions?: {
|
|
2203
|
+
filter?: Record<string, any>;
|
|
2204
|
+
sort?: unknown;
|
|
2205
|
+
limit?: number | string;
|
|
2206
|
+
cursor?: string;
|
|
2207
|
+
include?: unknown;
|
|
2208
|
+
}): Promise<ListEnvelope>;
|
|
2209
|
+
/** The db3 mount of {@link countDocumentRecords}: `GET db3/:id/records/:model/count`. */
|
|
2210
|
+
countDb3Records(appId: string, db3Id: string, modelName: string, queryOptions?: {
|
|
2211
|
+
filter?: Record<string, any>;
|
|
2212
|
+
}): Promise<{
|
|
2213
|
+
count: number;
|
|
2214
|
+
}>;
|
|
2215
|
+
/** The db3 mount of {@link aggregateDocumentRecords}: `POST db3/:id/records/:model/aggregate`. */
|
|
2216
|
+
aggregateDb3Records(appId: string, db3Id: string, modelName: string, options: Parameters<ApiClient["aggregateDocumentRecords"]>[3]): Promise<{
|
|
2217
|
+
result: unknown;
|
|
2218
|
+
}>;
|
|
2219
|
+
/** The db3 mount of {@link saveDocumentRecord}: `POST db3/:id/records/:model`. */
|
|
2220
|
+
saveDb3Record(appId: string, db3Id: string, modelName: string, body: {
|
|
2221
|
+
id: string;
|
|
2222
|
+
data: Record<string, unknown>;
|
|
2223
|
+
options?: Record<string, unknown>;
|
|
2224
|
+
}): Promise<{
|
|
2225
|
+
record: unknown;
|
|
2226
|
+
}>;
|
|
2227
|
+
/** The db3 mount of {@link patchDocumentRecord}: `PATCH db3/:id/records/:model/:recordId`. */
|
|
2228
|
+
patchDb3Record(appId: string, db3Id: string, modelName: string, recordId: string, body: {
|
|
2229
|
+
data: Record<string, unknown>;
|
|
2230
|
+
options?: Record<string, unknown>;
|
|
2231
|
+
}): Promise<{
|
|
2232
|
+
record: unknown;
|
|
2233
|
+
}>;
|
|
2234
|
+
/** The db3 mount of {@link deleteDocumentRecord}: `DELETE db3/:id/records/:model/:recordId`. */
|
|
2235
|
+
deleteDb3Record(appId: string, db3Id: string, modelName: string, recordId: string): Promise<{
|
|
2236
|
+
deleted: boolean;
|
|
2237
|
+
}>;
|
|
2238
|
+
/** The db3 mount of {@link bulkDocumentRecords}: `POST db3/:id/records/bulk`. */
|
|
2239
|
+
bulkDb3Records(appId: string, db3Id: string, operations: Array<Record<string, unknown>>): ReturnType<ApiClient["bulkDocumentRecords"]>;
|
|
2240
|
+
/** The db3 mount of {@link getDocumentSchema}: `GET db3/:id/schema`. */
|
|
2241
|
+
getDb3Schema(appId: string, db3Id: string): Promise<any>;
|
|
2242
|
+
/** `?limit=&cursor=` for a listing. */
|
|
2243
|
+
private pageQuery;
|
|
2244
|
+
/** `GET db3/:id/ingest` (#4889): a db3's bulk-load sessions, newest first. */
|
|
2245
|
+
listDb3Ingests(appId: string, db3Id: string, options?: {
|
|
2246
|
+
limit?: number;
|
|
2247
|
+
cursor?: string;
|
|
2248
|
+
}): Promise<{
|
|
2249
|
+
items: any[];
|
|
2250
|
+
hasMore: boolean;
|
|
2251
|
+
nextCursor?: string;
|
|
2252
|
+
}>;
|
|
2253
|
+
/** `GET db3/:id/ingest/:sessionId` (#4889). */
|
|
2254
|
+
getDb3Ingest(appId: string, db3Id: string, sessionId: string): Promise<any>;
|
|
2255
|
+
/** `POST db3/:id/ingest` (#4889): open a bulk-load session; `{}` keeps the defaults. */
|
|
2256
|
+
createDb3Ingest(appId: string, db3Id: string, options?: {
|
|
2257
|
+
reserveEpoch?: "open" | "commit";
|
|
2258
|
+
mode?: "merge" | "refresh";
|
|
2259
|
+
models?: string[];
|
|
2260
|
+
}): Promise<any>;
|
|
2261
|
+
/** `POST db3/:id/ingest/:sessionId/chunks` (#4889): one chunk, multipart, as the documents upload sends it. */
|
|
2262
|
+
uploadDb3IngestChunk(appId: string, db3Id: string, sessionId: string, chunk: Parameters<ApiClient["uploadDocumentIngestChunk"]>[3]): Promise<any>;
|
|
2263
|
+
/** `POST db3/:id/ingest/:sessionId/commit` (#4889). */
|
|
2264
|
+
commitDb3Ingest(appId: string, db3Id: string, sessionId: string): Promise<any>;
|
|
2265
|
+
/** `POST db3/:id/ingest/:sessionId/abort` (#4889). */
|
|
2266
|
+
abortDb3Ingest(appId: string, db3Id: string, sessionId: string): Promise<any>;
|
|
2267
|
+
/** `GET db3/:id/snapshots` (#4889): a db3's segment exports, newest first. */
|
|
2268
|
+
listDb3Snapshots(appId: string, db3Id: string, options?: {
|
|
2269
|
+
limit?: number;
|
|
2270
|
+
cursor?: string;
|
|
2271
|
+
}): Promise<{
|
|
2272
|
+
items: any[];
|
|
2273
|
+
hasMore: boolean;
|
|
2274
|
+
nextCursor?: string;
|
|
2275
|
+
}>;
|
|
2276
|
+
/** `GET db3/:id/snapshots/:segmentId` (#4889). */
|
|
2277
|
+
getDb3Snapshot(appId: string, db3Id: string, segmentId: string): Promise<any>;
|
|
2278
|
+
/** `POST db3/:id/snapshots` (#4889): start a segment export. */
|
|
2279
|
+
requestDb3Snapshot(appId: string, db3Id: string): Promise<any>;
|
|
2280
|
+
/** `GET db3/:id/export/chain` (#4889): the current segment, signed for download. */
|
|
2281
|
+
exportDb3Chain(appId: string, db3Id: string): Promise<any>;
|
|
2282
|
+
/** `GET db3/:id/blobs` (#4889): one page of a db3's blobs. */
|
|
2283
|
+
listDb3Blobs(appId: string, db3Id: string, params?: {
|
|
2284
|
+
cursor?: string;
|
|
2285
|
+
limit?: number;
|
|
2286
|
+
}): Promise<any>;
|
|
2287
|
+
/** `GET db3/:id/blobs/:blobId/download` (#4889): a blob's bytes. */
|
|
2288
|
+
downloadDb3Blob(appId: string, db3Id: string, blobId: string): Promise<Buffer>;
|
|
2289
|
+
/** `PUT db3/:id/blobs/:blobId` (#4889): a blob under its own id, as the documents upload sends it. */
|
|
2290
|
+
uploadDb3Blob(appId: string, db3Id: string, blobId: string, data: Buffer, meta: {
|
|
2291
|
+
filename: string;
|
|
2292
|
+
contentType: string;
|
|
2293
|
+
sha256: string;
|
|
2294
|
+
}): Promise<any>;
|
|
2295
|
+
/** The db3 mount of {@link getDocumentRoom}: `GET db3/:id/room`. App admins only. */
|
|
2296
|
+
getDb3Room(appId: string, db3Id: string, query?: {
|
|
2297
|
+
refused?: string;
|
|
2298
|
+
limit?: number;
|
|
2299
|
+
cursor?: string;
|
|
2300
|
+
}): Promise<any>;
|
|
2301
|
+
/**
|
|
2302
|
+
* `POST db3` (#4804): create a db3 and answer it, `{ id, title, createdBy,
|
|
2303
|
+
* createdAt, modifiedAt, custodian, sync, type, tags }`. Without `custodian`
|
|
2304
|
+
* an admin token's create is held by the app. `id` keeps a caller-chosen id
|
|
2305
|
+
* (#4921), refused `DB3_ID_EXISTS` when the app holds it.
|
|
2306
|
+
*/
|
|
2307
|
+
createDb3(appId: string, body: {
|
|
2308
|
+
title: string;
|
|
2309
|
+
type?: string;
|
|
2310
|
+
sync?: boolean;
|
|
2311
|
+
custodian?: string;
|
|
2312
|
+
tags?: string[];
|
|
2313
|
+
id?: string;
|
|
2314
|
+
}): Promise<any>;
|
|
2315
|
+
/** `GET db3/:id` (#4804): the db3, with the caller's grant when it reads it through one. */
|
|
2316
|
+
getDb3(appId: string, db3Id: string): Promise<any>;
|
|
2317
|
+
/** `DELETE db3/:id` (#4804): the documents delete for a db3. */
|
|
2318
|
+
deleteDb3(appId: string, db3Id: string): Promise<any>;
|
|
2319
|
+
/** The db3 mount of {@link getDocumentStats}: `GET db3/:id/stats`. */
|
|
2320
|
+
getDb3Stats(appId: string, db3Id: string): Promise<any>;
|
|
2321
|
+
/**
|
|
2322
|
+
* `POST db3/:id/records/:model/:recordId/increment` (#4797): add each of
|
|
2323
|
+
* `fields` to the record's field, answering `{ record, values }`.
|
|
2324
|
+
*/
|
|
2325
|
+
incrementDb3Record(appId: string, db3Id: string, modelName: string, recordId: string, body: {
|
|
2326
|
+
fields: Record<string, number>;
|
|
2327
|
+
}): Promise<{
|
|
2328
|
+
record: unknown;
|
|
2329
|
+
values: Record<string, number>;
|
|
2330
|
+
}>;
|
|
2331
|
+
/** `GET db3/:id/sync` (#4799): `{ id, sync }`. */
|
|
2332
|
+
getDb3Sync(appId: string, db3Id: string): Promise<{
|
|
2333
|
+
id: string;
|
|
2334
|
+
sync: boolean;
|
|
2335
|
+
}>;
|
|
2336
|
+
/** `PUT db3/:id/sync` (#4799): `{ id, sync, changed }`. */
|
|
2337
|
+
setDb3Sync(appId: string, db3Id: string, sync: boolean): Promise<{
|
|
2338
|
+
id: string;
|
|
2339
|
+
sync: boolean;
|
|
2340
|
+
changed: boolean;
|
|
2341
|
+
}>;
|
|
2342
|
+
/** `GET db3/:id/app-access` (#4801): `{ id, level }`, the level every user of the app holds, or null. */
|
|
2343
|
+
getDb3AppAccess(appId: string, db3Id: string): Promise<{
|
|
2344
|
+
id: string;
|
|
2345
|
+
level: string | null;
|
|
2346
|
+
}>;
|
|
2347
|
+
/** `PUT db3/:id/app-access` (#4801): grant the db3 to every user of the app, or remove the grant with null. */
|
|
2348
|
+
setDb3AppAccess(appId: string, db3Id: string, level: "reader" | "read-write" | null): Promise<{
|
|
2349
|
+
id: string;
|
|
2350
|
+
level: string | null;
|
|
2351
|
+
changed: boolean;
|
|
2352
|
+
}>;
|
|
2353
|
+
/** One custodian's db3s through the admin API (#4800): `custodian` is `app` or `user:<userId>`. */
|
|
2354
|
+
listDb3ByCustodian(appId: string, custodian: string, params?: {
|
|
2355
|
+
limit?: number;
|
|
2356
|
+
cursor?: string;
|
|
2357
|
+
}): Promise<{
|
|
2358
|
+
items: any[];
|
|
2359
|
+
nextCursor?: string;
|
|
2360
|
+
hasMore?: boolean;
|
|
2343
2361
|
}>;
|
|
2362
|
+
/** Transfer a db3 to `to` (`app` or `user:<userId>`) through the admin API (#4804). */
|
|
2363
|
+
transferDb3(appId: string, db3Id: string, to: string): Promise<any>;
|
|
2364
|
+
/** Remove or restore a db3's owner row through the admin API (#4804): `{ id, custodian, ownerRow, changed }`. */
|
|
2365
|
+
setDb3OwnerRow(appId: string, db3Id: string, present: boolean): Promise<{
|
|
2366
|
+
id: string;
|
|
2367
|
+
custodian: string;
|
|
2368
|
+
ownerRow: boolean;
|
|
2369
|
+
changed: boolean;
|
|
2370
|
+
}>;
|
|
2371
|
+
/** `GET db3/:id/type` (#4802): the type the db3's row names, its revision, and what its room holds. */
|
|
2372
|
+
getDb3Type(appId: string, db3Id: string): Promise<any>;
|
|
2373
|
+
/** `PUT db3/:id/type` (#4802): attach a type, installing its current revision whole or refusing it whole. */
|
|
2374
|
+
attachDb3Type(appId: string, db3Id: string, type: string): Promise<any>;
|
|
2375
|
+
/** `/app/<app>/api/db3-types/<name>`, the name encoded (#4802). */
|
|
2376
|
+
private db3TypePath;
|
|
2377
|
+
/** `GET db3-types` (#4802): the app's db3 types, each with its revision. */
|
|
2378
|
+
listDb3Types(appId: string): Promise<{
|
|
2379
|
+
types: any[];
|
|
2380
|
+
}>;
|
|
2381
|
+
/** `GET db3-types/:name` (#4802). */
|
|
2382
|
+
getDb3TypeConfig(appId: string, name: string): Promise<any>;
|
|
2383
|
+
/**
|
|
2384
|
+
* `PUT db3-types/:name` (#4802): create or update the type, and push its new
|
|
2385
|
+
* revision to every db3 of it. `dryRun` judges the body and persists nothing.
|
|
2386
|
+
*/
|
|
2387
|
+
pushDb3Type(appId: string, name: string, data: {
|
|
2388
|
+
ruleSetId?: string | null;
|
|
2389
|
+
triggers?: Record<string, any> | null;
|
|
2390
|
+
autoPopulatedFields?: Record<string, any> | null;
|
|
2391
|
+
timestamps?: Record<string, any> | null;
|
|
2392
|
+
schema?: string | null;
|
|
2393
|
+
metadataManifest?: any;
|
|
2394
|
+
expectedModifiedAt?: string;
|
|
2395
|
+
}, options?: {
|
|
2396
|
+
dryRun?: boolean;
|
|
2397
|
+
}): Promise<any>;
|
|
2398
|
+
/** `DELETE db3-types/:name` (#4802): refused while a db3 is of the type. */
|
|
2399
|
+
deleteDb3Type(appId: string, name: string): Promise<any>;
|
|
2400
|
+
/** `GET db3-types/:name/push-status` (#4802): a push's outcome per db3; the latest without `runId`. */
|
|
2401
|
+
getDb3TypePushStatus(appId: string, name: string, runId?: string): Promise<any>;
|
|
2402
|
+
/** `POST db3-types/:name/push?runId=` (#4802): push the current revision again to a run's refused and failed db3s. */
|
|
2403
|
+
retryDb3TypePush(appId: string, name: string, runId: string): Promise<any>;
|
|
2344
2404
|
createDocument(appId: string, data: {
|
|
2345
2405
|
title: string;
|
|
2346
2406
|
documentId?: string;
|
|
2347
2407
|
tags?: string[];
|
|
2348
2408
|
createdBy?: string;
|
|
2349
|
-
documentFormat?: 1 |
|
|
2409
|
+
documentFormat?: 1 | 3;
|
|
2350
2410
|
}): Promise<any>;
|
|
2351
2411
|
listDocumentPermissions(appId: string, documentId: string): Promise<any[]>;
|
|
2352
2412
|
grantDocumentPermission(appId: string, documentId: string, permissions: Array<{
|
|
@@ -2384,14 +2444,52 @@ export declare class ApiClient {
|
|
|
2384
2444
|
* grants whose app invitation is still outstanding.
|
|
2385
2445
|
*/
|
|
2386
2446
|
listDocumentPendingInvitations(appId: string, documentId: string): Promise<any>;
|
|
2387
|
-
|
|
2447
|
+
/**
|
|
2448
|
+
* One page of a document's uploaded blobs (the `{ items, hasMore,
|
|
2449
|
+
* nextCursor? }` envelope); pass the previous page's `nextCursor` for the
|
|
2450
|
+
* next.
|
|
2451
|
+
*/
|
|
2452
|
+
listDocumentBlobs(appId: string, documentId: string, params?: {
|
|
2453
|
+
cursor?: string;
|
|
2454
|
+
limit?: number;
|
|
2455
|
+
}): Promise<any>;
|
|
2388
2456
|
downloadBlob(appId: string, documentId: string, blobId: string): Promise<Buffer>;
|
|
2457
|
+
/** A blob's bytes from `<base>/blobs/<id>/download`: the documents route or its db3 mount. */
|
|
2458
|
+
private downloadBlobAt;
|
|
2389
2459
|
uploadBlob(appId: string, documentId: string, blobId: string, data: Buffer, meta: {
|
|
2390
2460
|
filename: string;
|
|
2391
2461
|
contentType: string;
|
|
2392
2462
|
sha256: string;
|
|
2393
2463
|
}): Promise<any>;
|
|
2464
|
+
/** A blob PUT to `<base>/blobs/<id>`: the documents route or its db3 mount. */
|
|
2465
|
+
private uploadBlobAt;
|
|
2466
|
+
/**
|
|
2467
|
+
* Upload a file to an agent session by `sessionId` (#4585): the document
|
|
2468
|
+
* blob upload's headers and body, on the session's attachment route.
|
|
2469
|
+
*/
|
|
2470
|
+
uploadAgentSessionAttachment(appId: string, sessionId: string, blobId: string, data: Buffer, meta: {
|
|
2471
|
+
filename: string;
|
|
2472
|
+
contentType: string;
|
|
2473
|
+
sha256: string;
|
|
2474
|
+
}): Promise<any>;
|
|
2475
|
+
/** Download an agent session's file by `sessionId` (#4585). */
|
|
2476
|
+
downloadAgentSessionAttachment(appId: string, sessionId: string, blobId: string): Promise<Buffer>;
|
|
2477
|
+
/**
|
|
2478
|
+
* An agent session file's download headers (lower-cased names) by
|
|
2479
|
+
* `sessionId` (#4585). A refusal has no body, so it fails with the status
|
|
2480
|
+
* alone and no code.
|
|
2481
|
+
*/
|
|
2482
|
+
headAgentSessionAttachment(appId: string, sessionId: string, blobId: string): Promise<{
|
|
2483
|
+
status: number;
|
|
2484
|
+
headers: Record<string, string>;
|
|
2485
|
+
}>;
|
|
2486
|
+
private agentSessionAttachmentRead;
|
|
2394
2487
|
listDocumentAliases(appId: string, documentId: string): Promise<any[]>;
|
|
2488
|
+
/**
|
|
2489
|
+
* The document a user's alias points at, or null when the user holds no
|
|
2490
|
+
* alias under that key (#4148).
|
|
2491
|
+
*/
|
|
2492
|
+
getDocumentAlias(appId: string, aliasScope: string, aliasKey: string, userId: string): Promise<any | null>;
|
|
2395
2493
|
setDocumentAlias(appId: string, aliasScope: string, aliasKey: string, documentId: string, ownerUserId?: string, mustNotExist?: boolean): Promise<any>;
|
|
2396
2494
|
/**
|
|
2397
2495
|
* Resolve an app user by exact email — the single email → userId lookup in
|
|
@@ -2446,6 +2544,7 @@ export declare class ApiClient {
|
|
|
2446
2544
|
*/
|
|
2447
2545
|
getUserRootDocument(appId: string, userId: string): Promise<{
|
|
2448
2546
|
rootDocId: string | null;
|
|
2547
|
+
documentFormat?: number;
|
|
2449
2548
|
}>;
|
|
2450
2549
|
/**
|
|
2451
2550
|
* Get or create the user's root document (#3135).
|
|
@@ -2458,6 +2557,7 @@ export declare class ApiClient {
|
|
|
2458
2557
|
ensureUserRootDocument(appId: string, userId: string): Promise<{
|
|
2459
2558
|
rootDocId: string;
|
|
2460
2559
|
created: boolean;
|
|
2560
|
+
documentFormat?: number;
|
|
2461
2561
|
}>;
|
|
2462
2562
|
/**
|
|
2463
2563
|
* Apply an ordered batch of record operations via `records/batch`.
|