@wildo-ai/saas-models 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/__tests__/setup.d.ts.map +1 -1
- package/dist/esm/_inspect.d.ts.map +1 -1
- package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications-context.schemas.d.ts +14 -10
- package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.js +4 -3
- package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +0 -4
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.js +59 -17
- package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts +77 -21
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.js +85 -23
- package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.d.ts +4 -3
- package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.js +45 -0
- package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/price.shared.schemas.js +7 -1
- package/dist/esm/billing/price.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js +52 -11
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-definition.shared.schemas.d.ts +2 -2
- package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +2 -2
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.schemas.d.ts +2 -2
- package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.schemas.js +7 -3
- package/dist/esm/billing/product.shared.schemas.js.map +1 -1
- package/dist/esm/billing/promotions.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js +15 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.d.ts +7 -3
- package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.js +22 -3
- package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
- package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
- package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +71 -2
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js +20 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
- package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +85 -0
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +157 -0
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +23 -0
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js +56 -0
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts +658 -26
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js +873 -27
- package/dist/esm/compliance/audit-trails/auditable-events.shared.schema.js.map +1 -1
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js +104 -3
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +54 -26
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +132 -3
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts +17 -0
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js +27 -4
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts +82 -29
- package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/redaction.shared.schemas.js +95 -29
- package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.js +12 -5
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts +21 -0
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.js +20 -0
- package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +7 -5
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts +8 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.js +29 -0
- package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
- package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +95 -17
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.js +86 -8
- package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +26 -26
- package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts +139 -3
- package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -1
- package/dist/esm/config/frontend/chart-registration-alignment.shared.js +151 -4
- package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -1
- package/dist/esm/config-authoring.entry.d.ts.map +1 -1
- package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
- package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +34 -0
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts.map +1 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js +34 -0
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
- package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +45 -12
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
- package/dist/esm/external-data.exports.d.ts.map +1 -1
- package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +110 -58
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +183 -15
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts +15 -3
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +32 -5
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
- package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +87 -7
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts +59 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js +61 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts +97 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js +41 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -0
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +205 -2
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js +85 -1
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts +175 -0
- package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -0
- package/dist/esm/external-providers/frontend-provider-public-config.shared.js +207 -0
- package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -0
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +5 -28
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.js +4 -2
- package/dist/esm/external-providers/provider-capability.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts +28 -8
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js +15 -4
- package/dist/esm/external-providers/provider-compliance-profile.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts +165 -0
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js +39 -0
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +338 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js +332 -0
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +178 -9
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js +181 -9
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +7 -5
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-protocol.shared.schemas.js +7 -5
- package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts +40 -0
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.js +80 -0
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -0
- package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/features/application-features.shared.resources-config.schemas.js +12 -0
- package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
- package/dist/esm/features/core-feature-definitions.shared.js +7 -1
- package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
- package/dist/esm/features/feature-builders.shared.d.ts +32 -0
- package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
- package/dist/esm/features/feature-builders.shared.js +32 -0
- package/dist/esm/features/feature-builders.shared.js.map +1 -1
- package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
- package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.js +12 -0
- package/dist/esm/features/user-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts +73 -0
- package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts.map +1 -0
- package/dist/esm/files/file-remote-reference-link.shared.schemas.js +62 -0
- package/dist/esm/files/file-remote-reference-link.shared.schemas.js.map +1 -0
- package/dist/esm/files/file-upload-grant.shared.schemas.d.ts +14 -2
- package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/file-upload-grant.shared.schemas.js +44 -5
- package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
- package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/files/files.shared.schemas.d.ts +15 -8
- package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/files.shared.schemas.js +15 -8
- package/dist/esm/files/files.shared.schemas.js.map +1 -1
- package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js +3 -2
- package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts +54 -5
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +0 -3
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/deliberation.shared.schemas.js +0 -5
- package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +14 -0
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js +40 -3
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +19 -0
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js +33 -0
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts +14 -9
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +14 -9
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js +3 -2
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.js +3 -2
- package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts +130 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js +153 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts +0 -3
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js +1 -4
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts +0 -16
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js +1 -17
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +3 -3
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js +3 -3
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts +2 -8
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js +4 -15
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts +112 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js +113 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -0
- package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.utils.js +1 -0
- package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
- package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
- package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts +8 -0
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts +46 -0
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.js +49 -0
- package/dist/esm/guidance/progression-state.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.d.ts.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +320 -50
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js +137 -36
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
- package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
- package/dist/esm/index.d.ts +15 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
- package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +11 -2
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/email/email-template.shared.enums.d.ts +15 -0
- package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-template.shared.enums.js +15 -0
- package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js +19 -0
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +30 -0
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +65 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.core.definitions.d.ts +6 -4
- package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.core.definitions.js +6 -4
- package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.d.ts +167 -5
- package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.js +191 -6
- package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.d.ts +158 -0
- package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.js +200 -1
- package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js +13 -0
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.js +22 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts +26 -0
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.js +25 -0
- package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +25 -0
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.js +42 -17
- package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts +3 -2
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.js +9 -2
- package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +18 -3
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +13 -0
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +13 -0
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
- package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
- package/dist/esm/public-runtime/index.d.ts +71 -2
- package/dist/esm/public-runtime/index.d.ts.map +1 -1
- package/dist/esm/public-runtime/index.js +62 -1
- package/dist/esm/public-runtime/index.js.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts +6 -5
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js +6 -5
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.d.ts +16 -3
- package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.js +16 -3
- package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
- package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-documentation.d.ts +137 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.js +1255 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -0
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts +114 -0
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.js +129 -0
- package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
- package/dist/esm/requests/rate-limits.shared.schemas.d.ts +11 -1
- package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/rate-limits.shared.schemas.js +11 -1
- package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.d.ts +28 -3
- package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.js +52 -0
- package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
- package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.d.ts +1 -0
- package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.js +203 -25
- package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.d.ts +297 -68
- package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources-registry.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources-registry.shared.core.definitions.js +151 -5
- package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-relationships.shared.factory.js +15 -0
- package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.d.ts +54 -0
- package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.js +69 -0
- package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.d.ts +11 -2
- package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.js +34 -3
- package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources.shared.utils.d.ts +32 -7
- package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.utils.js +32 -7
- package/dist/esm/resources/resources.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts +51 -0
- package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/field-value-disclosure.utils.js +53 -0
- package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -0
- package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-summary.utils.d.ts +16 -2
- package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-summary.utils.js +19 -5
- package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
- package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js +11 -0
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js.map +1 -1
- package/dist/esm/resources/utils/templatable-file-fields.shared.utils.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.shared.definitions.d.ts +25 -0
- package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
- package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +38 -0
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +38 -0
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +5 -12
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +0 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts +84 -5
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.js +83 -3
- package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts +1 -0
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js +11 -0
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +15 -0
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js +21 -4
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts +61 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +238 -6
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts +37 -27
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +134 -12
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +2 -6
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js +32 -8
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts +45 -2
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +45 -2
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts +35 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js +257 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts +143 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js +219 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -0
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +27 -0
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts +75 -7
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js +69 -8
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.defaults.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +31 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js +198 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +31 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js +191 -0
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +307 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +530 -0
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -0
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts +4 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +29 -0
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts +4 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +29 -0
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +6 -0
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +31 -0
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts +13 -0
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js +24 -3
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -1
- package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -1
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +4 -4
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +4 -4
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.js +33 -3
- package/dist/esm/users/user-self.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.resources-config.schemas.d.ts +17 -1
- package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.resources-config.schemas.js +136 -5
- package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.schemas.d.ts +60 -13
- package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.schemas.js +56 -9
- package/dist/esm/users/users.shared.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -2,10 +2,11 @@ import { z } from "zod";
|
|
|
2
2
|
import { PersonalDataCategory } from "../privacy/personal-data-category.shared.schemas.js";
|
|
3
3
|
import { ResourceOperationRiskLevel, ResourceOperationVariantType } from "../../resources/resources.shared.schemas.js";
|
|
4
4
|
import { CoreResourceOperation } from "../../resources/resources.shared.core.definitions.js";
|
|
5
|
-
import { PlatformAccessGrantAutoApprovalReason, PlatformAccessGrantLifecycleTransition, PlatformAccessGrantStatus, } from "../../security/authorizations/platform-access-grants.shared.schemas.js";
|
|
5
|
+
import { PlatformAccessGrantAutoApprovalReason, PlatformAccessGrantLifecycleTransition, PlatformAccessGrantScope, PlatformAccessGrantStatus, } from "../../security/authorizations/platform-access-grants.shared.schemas.js";
|
|
6
6
|
import { ExecutionContext_ExecutionType } from "../../runtime/execution-context.shared.schemas.js";
|
|
7
7
|
import { AuthScopeType, SsoConnectionType, } from "../../security/authentications/authentication.shared.schemas.js";
|
|
8
8
|
import { WebhookEndpointProbeOutcome } from "../../notifications/m2m/webhook-config.shared.schemas.js";
|
|
9
|
+
import { ProviderCredentialDeletionReason, ProviderCredentialResolutionSource, } from "../../security/connected-accounts/provider-credentials.shared.schemas.js";
|
|
9
10
|
export var CoreAuditableEventType;
|
|
10
11
|
(function (CoreAuditableEventType) {
|
|
11
12
|
// Authentication Events
|
|
@@ -172,6 +173,55 @@ export var CoreAuditableEventType;
|
|
|
172
173
|
// Organization Security Management Events
|
|
173
174
|
CoreAuditableEventType["ORGANIZATION_SSO_CONFIGURATION_CHANGED"] = "organization_sso_configuration_changed";
|
|
174
175
|
CoreAuditableEventType["ORGANIZATION_SIEM_EXPORT_CONFIGURED"] = "organization_siem_export_configured";
|
|
176
|
+
// Organization Provider Credential Events
|
|
177
|
+
//
|
|
178
|
+
// An organization's OWN credential toward a third party. The four verbs are separate members
|
|
179
|
+
// rather than one event with a `changeType`, because they answer four different questions a
|
|
180
|
+
// credential incident asks in a different order — when did this tenant grant us authority, when
|
|
181
|
+
// did the value last change, when was it last SPENT, and when did the grant end — and a SIEM
|
|
182
|
+
// rule that alerts on a spend cannot be written against a payload discriminator that also
|
|
183
|
+
// matches configuration edits.
|
|
184
|
+
//
|
|
185
|
+
// NONE of the four payloads carries the credential value. That is a structural property of the
|
|
186
|
+
// schemas below, not a redaction step somebody has to remember: there is no field to put it in.
|
|
187
|
+
//
|
|
188
|
+
// assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — an organization authorizes this
|
|
189
|
+
// application to act as it toward a named third party.
|
|
190
|
+
CoreAuditableEventType["ORGANIZATION_PROVIDER_CREDENTIAL_SET"] = "organization_provider_credential_set";
|
|
191
|
+
CoreAuditableEventType["ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED"] = "organization_provider_credential_rotated";
|
|
192
|
+
CoreAuditableEventType["ORGANIZATION_PROVIDER_CREDENTIAL_USED"] = "organization_provider_credential_used";
|
|
193
|
+
CoreAuditableEventType["ORGANIZATION_PROVIDER_CREDENTIAL_DELETED"] = "organization_provider_credential_deleted";
|
|
194
|
+
// A PERSON's own credential toward a third party. Four members mirroring the organization's,
|
|
195
|
+
// and deliberately NOT the same members with a nullable organization: the subject differs, the
|
|
196
|
+
// SIEM routing differs (there is no tenant to route to), and the data-protection reading differs
|
|
197
|
+
// — a person's connection to a vendor is that person's, and an event saying so must not be
|
|
198
|
+
// indistinguishable from one about a tenant's shared integration.
|
|
199
|
+
CoreAuditableEventType["USER_PROVIDER_CREDENTIAL_SET"] = "user_provider_credential_set";
|
|
200
|
+
CoreAuditableEventType["USER_PROVIDER_CREDENTIAL_ROTATED"] = "user_provider_credential_rotated";
|
|
201
|
+
CoreAuditableEventType["USER_PROVIDER_CREDENTIAL_USED"] = "user_provider_credential_used";
|
|
202
|
+
CoreAuditableEventType["USER_PROVIDER_CREDENTIAL_DELETED"] = "user_provider_credential_deleted";
|
|
203
|
+
// A delegated authorization GRANTED at a vendor, for each owner scope.
|
|
204
|
+
//
|
|
205
|
+
// Distinct from `_SET` rather than a flag on it, on the same three grounds the vocabulary already
|
|
206
|
+
// uses to separate its members. The ACT differs: `_SET` is a value arriving in a row, and this is
|
|
207
|
+
// a principal completing a consent ceremony at a third party — the only event in this family that
|
|
208
|
+
// records somebody deciding something. The DATA differs: a grant carries the scopes that were
|
|
209
|
+
// authorized and the vendor account they were authorized for, neither of which exists for a pasted
|
|
210
|
+
// secret. And the EMISSION POINT differs, which is what makes a flag impractical as well as wrong:
|
|
211
|
+
// `_SET` is emitted by the resource's write hook, which sees the row after the value is sealed,
|
|
212
|
+
// while the scopes are known only to the store that received the grant, before sealing.
|
|
213
|
+
//
|
|
214
|
+
// The distinction is the one an auditor asks for first. "Which of our people granted a third party
|
|
215
|
+
// access, to what, and when" is a different question from "which credentials were configured", and
|
|
216
|
+
// a trail that answers them with the same event answers neither well.
|
|
217
|
+
//
|
|
218
|
+
// Neither payload carries a token, and as with the four above that is structural rather than a
|
|
219
|
+
// redaction step: there is no field to put one in.
|
|
220
|
+
//
|
|
221
|
+
// assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — the act of authorizing is recorded
|
|
222
|
+
// as itself, with what was authorized.
|
|
223
|
+
CoreAuditableEventType["ORGANIZATION_PROVIDER_CONNECTION_GRANTED"] = "organization_provider_connection_granted";
|
|
224
|
+
CoreAuditableEventType["USER_PROVIDER_CONNECTION_GRANTED"] = "user_provider_connection_granted";
|
|
175
225
|
// Application Security Configuration Events
|
|
176
226
|
// The per-user-type authentication policy (`userTypes.<type>.auth` — MFA, password, and lockout
|
|
177
227
|
// requirements) is STATIC application configuration authored in code and taken into effect at
|
|
@@ -232,6 +282,7 @@ export var CoreAuditableEventType;
|
|
|
232
282
|
CoreAuditableEventType["USER_PASSKEY_AUTHENTICATION_SUCCESS"] = "user_passkey_authentication_success";
|
|
233
283
|
CoreAuditableEventType["USER_PASSKEY_AUTHENTICATION_FAILURE"] = "user_passkey_authentication_failure";
|
|
234
284
|
CoreAuditableEventType["USER_PASSKEY_REMOVED"] = "user_passkey_removed";
|
|
285
|
+
CoreAuditableEventType["USER_PASSKEY_CLONE_SUSPECTED"] = "user_passkey_clone_suspected";
|
|
235
286
|
// Magic Link Events (Phase G2)
|
|
236
287
|
CoreAuditableEventType["USER_MAGIC_LINK_SENT"] = "user_magic_link_sent";
|
|
237
288
|
CoreAuditableEventType["USER_MAGIC_LINK_VERIFIED"] = "user_magic_link_verified";
|
|
@@ -255,6 +306,17 @@ export var CoreAuditableEventType;
|
|
|
255
306
|
CoreAuditableEventType["SAML_EMAIL_CHANGED"] = "saml_email_changed";
|
|
256
307
|
// OAuth2 Provider Restriction Events (Phase G3)
|
|
257
308
|
CoreAuditableEventType["OAUTH2_PROVIDER_BLOCKED"] = "oauth2_provider_blocked";
|
|
309
|
+
/**
|
|
310
|
+
* An enterprise OIDC login was refused because the identity provider did not report the
|
|
311
|
+
* authentication context the connection DEMANDED (issue #444).
|
|
312
|
+
*
|
|
313
|
+
* `acr_values` is a REQUEST parameter: the relying party asks, the provider decides, and the ID
|
|
314
|
+
* token's `acr` claim reports what actually happened. So a refusal here is the only evidence that
|
|
315
|
+
* a step-up demand was made and not met — without it an operator debugging "why can this person
|
|
316
|
+
* not sign in" sees an ordinary authentication failure and has nothing to distinguish it from a
|
|
317
|
+
* wrong password.
|
|
318
|
+
*/
|
|
319
|
+
CoreAuditableEventType["OIDC_ACR_DEMAND_UNSATISFIED"] = "oidc_acr_demand_unsatisfied";
|
|
258
320
|
// One-Off Session Events (W7.3b)
|
|
259
321
|
/**
|
|
260
322
|
* File upload grant lifecycle (issue #312) — the first FILE-domain audit events. A grant is a
|
|
@@ -267,6 +329,37 @@ export var CoreAuditableEventType;
|
|
|
267
329
|
CoreAuditableEventType["FILE_UPLOAD_GRANT_ISSUED"] = "file_upload_grant_issued";
|
|
268
330
|
CoreAuditableEventType["FILE_UPLOAD_GRANT_REDEEMED"] = "file_upload_grant_redeemed";
|
|
269
331
|
CoreAuditableEventType["FILE_UPLOAD_GRANT_REVOKED"] = "file_upload_grant_revoked";
|
|
332
|
+
// File content-inspection outcomes (#506)
|
|
333
|
+
/**
|
|
334
|
+
* A scanner concluded that an uploaded file is INFECTED, and the file was quarantined.
|
|
335
|
+
*
|
|
336
|
+
* Until this existed, the scanner emitted no audit row of any kind: an infection produced a
|
|
337
|
+
* `SCANNING → INFECTED → QUARANTINED` status transition on the file record and nothing else, so
|
|
338
|
+
* the only way to learn that malware had reached the application's storage was to NOTICE a row
|
|
339
|
+
* sitting at `QUARANTINED` — a poll, not a signal. Malware arriving is one of the few things an
|
|
340
|
+
* operator wants to be alerted on, and one of the few a customer security questionnaire asks about
|
|
341
|
+
* by name.
|
|
342
|
+
*
|
|
343
|
+
* `CRITICAL`, on the same argument as `USER_PASSKEY_CLONE_SUSPECTED`: a conclusion the security
|
|
344
|
+
* mechanism reached about a real threat, not a routine outcome.
|
|
345
|
+
*
|
|
346
|
+
* assurance-control: WILDO.SECURITY.INGESTED_CONTENT_INSPECTION — a detected infection is
|
|
347
|
+
* attributable and monitorable, not only visible as a row status. This event is the RECORD half of
|
|
348
|
+
* that objective; the mechanism half is the fail-closed scan gate itself.
|
|
349
|
+
*/
|
|
350
|
+
CoreAuditableEventType["FILE_MALWARE_DETECTED"] = "file_malware_detected";
|
|
351
|
+
/**
|
|
352
|
+
* A scan could NOT be completed — the scanner was unreachable, or the pipeline errored.
|
|
353
|
+
*
|
|
354
|
+
* Its own event rather than a lower severity on the one above, because the operational stories are
|
|
355
|
+
* opposite: an infection means the control WORKED, a failure means it DID NOT RUN. From outside
|
|
356
|
+
* they are indistinguishable today — the file is non-downloadable either way — which is precisely
|
|
357
|
+
* why the trail has to tell them apart. A run of these means files are arriving unscanned.
|
|
358
|
+
*
|
|
359
|
+
* `WARNING`, not `CRITICAL`: nothing was found and nothing was exposed, because the file fails
|
|
360
|
+
* closed to `FAILED` and stays undownloadable. What is wrong is the control's availability.
|
|
361
|
+
*/
|
|
362
|
+
CoreAuditableEventType["FILE_MALWARE_SCAN_FAILED"] = "file_malware_scan_failed";
|
|
270
363
|
CoreAuditableEventType["ONE_OFF_TOKEN_CREATED"] = "one_off_token_created";
|
|
271
364
|
CoreAuditableEventType["ONE_OFF_TOKEN_EXCHANGED"] = "one_off_token_exchanged";
|
|
272
365
|
/** revocation-B1: a super-admin cancelled an un-exchanged one-off (impersonation) session token. */
|
|
@@ -354,6 +447,13 @@ export var CoreAuditableEventType;
|
|
|
354
447
|
* crossing is NAMED in the trail". Before this event, an operator could enumerate every user's
|
|
355
448
|
* email across every tenant and leave nothing behind.
|
|
356
449
|
*
|
|
450
|
+
* ⚠️ "Structurally unavailable" above is exact about the EXISTING grant mechanism — it needs a
|
|
451
|
+
* target tenant and a collection call names none — and must not be read as "prevention is
|
|
452
|
+
* impossible". An application-wide grant kind is buildable; what blocks it is the question of who
|
|
453
|
+
* approves an elevation that names no tenant. See
|
|
454
|
+
* `ScopeRootConfinementDisposition.UNCONFINED_APPLICATION_TIER_DIRECTORY`, which owns that
|
|
455
|
+
* reasoning beside the declaration that makes this read unconfined.
|
|
456
|
+
*
|
|
357
457
|
* INFO, not WARNING: unlike its cross-tenant sibling this is an ordinary, expected administrative
|
|
358
458
|
* read on a surface built for it. The subset worth escalating is selected by a SIEM rule on
|
|
359
459
|
* `resourceType` + `returnedCount`, both of which ride the payload.
|
|
@@ -384,7 +484,8 @@ export var CoreAuditableEventType;
|
|
|
384
484
|
// Retained-Data (Impersonalization) Access Events
|
|
385
485
|
// Emitted when a privileged SEE-THROUGH read reveals RETAINED (impersonalized-and-retained) records
|
|
386
486
|
// that the default retention hide-predicate keeps hidden. SYSTEM_CONTEXT_READ names only the RUNTIME
|
|
387
|
-
// that acted; this read is HUMAN-ATTRIBUTED (
|
|
487
|
+
// that acted; this read is HUMAN-ATTRIBUTED (an application super-administrator, the only role the
|
|
488
|
+
// see-through gate admits today) and carries a REQUIRED reason —
|
|
388
489
|
// a compliance-grade access record over scrubbed personal data. Strictly read-only. Classified
|
|
389
490
|
// DATA_ACCESS / WARNING (an authorized-but-elevated privileged access, not an anomaly ⇒ not CRITICAL).
|
|
390
491
|
CoreAuditableEventType["RETAINED_DATA_ACCESS"] = "retained_data_access";
|
|
@@ -437,6 +538,82 @@ export var CoreAuditableEventType;
|
|
|
437
538
|
// USER_LIFECYCLE / CRITICAL: one event per acknowledged resource per erasure, never a standing
|
|
438
539
|
// posture.
|
|
439
540
|
CoreAuditableEventType["HTTP_API_NON_ERASURE_ACKNOWLEDGED"] = "http_api_non_erasure_acknowledged";
|
|
541
|
+
// The application CALLED a declared operation on a third-party provider — one event per outbound
|
|
542
|
+
// call, on both the success and the failure path.
|
|
543
|
+
//
|
|
544
|
+
// Distinct from the three HTTP_API_* members above, which are the ETL read-through plane: those
|
|
545
|
+
// record a RESOURCE whose rows live elsewhere being read or erased through a binding. This is the
|
|
546
|
+
// other door — a custom backend service naming a provider and an operation directly — and the
|
|
547
|
+
// question it answers is the first question of any provider incident: WHOSE third-party account
|
|
548
|
+
// did we spend, on whose behalf, and what came back. `connectionOwnerScope`/`connectionOwnerId`
|
|
549
|
+
// are what the initiator's own ids cannot answer, because one execution may legitimately spend
|
|
550
|
+
// several tenants' accounts (a user action fanning out to every organization that user belongs to
|
|
551
|
+
// issues N calls with N owners under ONE initiator).
|
|
552
|
+
//
|
|
553
|
+
// Distinct from `*_PROVIDER_CREDENTIAL_USED`, which records that a stored credential was SPENT and
|
|
554
|
+
// what the vendor thought of it. That one is about the CREDENTIAL's health and is emitted by the
|
|
555
|
+
// store; this one is about the ACT and is emitted by the executor. A credential incident reads
|
|
556
|
+
// both, in that order, and folding them would make "which calls did this credential make" a query
|
|
557
|
+
// nobody can write.
|
|
558
|
+
//
|
|
559
|
+
// Classified DATA_ACCESS / INFO for the read-through member's reason — routine, authorized
|
|
560
|
+
// activity whose value is the queryable trail, not an alarm. The READ/WRITE axis rides
|
|
561
|
+
// `classification` in the payload and the per-emission `riskLevel`, never the static severity.
|
|
562
|
+
//
|
|
563
|
+
// assurance-control: WILDO.AUDIT.ATTRIBUTION — an outbound call made on a user's behalf is
|
|
564
|
+
// recorded with the real initiating user carried through whichever account it spent.
|
|
565
|
+
CoreAuditableEventType["PROVIDER_OPERATION_CALL"] = "provider_operation_call";
|
|
566
|
+
// An AGENT reached an MCP server on somebody's behalf (#491).
|
|
567
|
+
//
|
|
568
|
+
// A sibling of `PROVIDER_OPERATION_CALL`, not a case of it, and the split is the same one that
|
|
569
|
+
// separates that member from `*_PROVIDER_CREDENTIAL_USED`: they identify different acts. A
|
|
570
|
+
// provider operation is a CATALOGUE operation — it has an `operationId`, a `domain`, an HTTP
|
|
571
|
+
// method and a declared READ/WRITE classification. An MCP tool has none of those: the tool list is
|
|
572
|
+
// discovered from the server at turn start, the transport is always a JSON-RPC POST, and nothing
|
|
573
|
+
// declares in advance what a tool does. Folding them would make "which catalogue operations ran"
|
|
574
|
+
// a query that returns tools that are not catalogue operations.
|
|
575
|
+
//
|
|
576
|
+
// The ATTRIBUTION fields are deliberately identical, so a reviewer asking "what did this person's
|
|
577
|
+
// delegated credential do at that vendor" writes one shape of query across both.
|
|
578
|
+
//
|
|
579
|
+
// Classified DATA_ACCESS / INFO for the same reason as its sibling: routine authorized activity
|
|
580
|
+
// whose value is the queryable trail rather than an alarm. A refused outbound TARGET is carried on
|
|
581
|
+
// the same event through `failureKind`, because an attempted egress a guard blocked is exactly
|
|
582
|
+
// what a reviewer wants beside the calls that succeeded.
|
|
583
|
+
//
|
|
584
|
+
// assurance-control: WILDO.AUDIT.ATTRIBUTION — an agent's outbound tool call is recorded with the
|
|
585
|
+
// real initiating user carried through whichever account it spent.
|
|
586
|
+
CoreAuditableEventType["MCP_TOOL_CALL"] = "mcp_tool_call";
|
|
587
|
+
// A human APPROVER changed a proposed tool call's arguments and approved the changed call (#566).
|
|
588
|
+
//
|
|
589
|
+
// The strongest act available on the approval plane, and the reason it is its own member rather
|
|
590
|
+
// than a flag on some broader "approval decided" event: on every other decision the approver
|
|
591
|
+
// ASSENTS to a call the model authored, and here they AUTHOR one the model never proposed. An
|
|
592
|
+
// incident reader asking "who wrote the arguments this tool ran with" is asking a different
|
|
593
|
+
// question from "who let it run", and folding the two would make the first unanswerable by query.
|
|
594
|
+
//
|
|
595
|
+
// Emitted ONLY when the executed input differs from the proposed one. An ordinary approval is not
|
|
596
|
+
// this event and is deliberately not recorded here — the plane has no approval-decision trail at
|
|
597
|
+
// all yet, which is a separate gap with its own issue; adding half of one under this name would
|
|
598
|
+
// make `mcp_tool_call`'s mistake in the other direction, an event that answers two questions and
|
|
599
|
+
// neither well.
|
|
600
|
+
//
|
|
601
|
+
// NAMES AND DIGESTS ONLY — never argument values. Identical reasoning to
|
|
602
|
+
// `RESOURCE_OPERATION_PERFORMED`'s `changedFields` / `fieldEvidence` split: audit rows replicate
|
|
603
|
+
// to the per-org SIEM and to an immutable ledger that cannot be scrubbed, so copying arbitrary
|
|
604
|
+
// tool arguments here would manufacture an unerasable duplicate of whatever a person typed, in
|
|
605
|
+
// direct conflict with GDPR Art. 17. The two digests prove executed ≠ proposed; the key names say
|
|
606
|
+
// WHICH arguments a person authored. Neither can leak content.
|
|
607
|
+
//
|
|
608
|
+
// Classified AUTHORIZATION / WARNING. Authorization because the act IS a human authorization
|
|
609
|
+
// decision, not a data access. WARNING rather than CRITICAL for the same reading the OAuth grant
|
|
610
|
+
// rows take: it is notable, dashboard-worthy and worth reviewing, and it is an AUTHORIZED action
|
|
611
|
+
// taken by an identified person with the pause in front of them — reserving CRITICAL for the rows
|
|
612
|
+
// that mean something is wrong is what keeps a severity filter usable.
|
|
613
|
+
//
|
|
614
|
+
// assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — the approver who authored the
|
|
615
|
+
// executed arguments is recorded beside proof that they differed from the proposal.
|
|
616
|
+
CoreAuditableEventType["AGENT_TOOL_APPROVAL_MODIFIED"] = "agent_tool_approval_modified";
|
|
440
617
|
// ── OAuth2 / OIDC Provider Events (Wildo AS the authorization server) ──
|
|
441
618
|
// Distinct from the `OAUTH2_*` family above, which records Wildo CONSUMING an
|
|
442
619
|
// EXTERNAL social OAuth provider. These record the app-issued OAuth2/OIDC provider
|
|
@@ -527,6 +704,38 @@ export var AuditEventSeverity;
|
|
|
527
704
|
AuditEventSeverity["WARNING"] = "warning";
|
|
528
705
|
AuditEventSeverity["CRITICAL"] = "critical";
|
|
529
706
|
})(AuditEventSeverity || (AuditEventSeverity = {}));
|
|
707
|
+
/**
|
|
708
|
+
* What each audit category and severity MEANS to whoever reads the trail.
|
|
709
|
+
*
|
|
710
|
+
* The words were authored, correctly, in the technical-documentation catalog that renders the
|
|
711
|
+
* audit-trail page — and lived only there, so the same vocabularies reached every other surface as
|
|
712
|
+
* bare tokens. Moved here, beside the enums, because a vocabulary's words belong with the
|
|
713
|
+
* vocabulary: the catalog now imports them, the schemas describe their own fields from them, and
|
|
714
|
+
* there is one account of what `data_access` selects rather than two that can disagree.
|
|
715
|
+
*
|
|
716
|
+
* `name` is what a reader is shown; `meaning` is what selecting it actually gets them. Exhaustive by
|
|
717
|
+
* type, so a sixth category cannot ship as a bare value.
|
|
718
|
+
*/
|
|
719
|
+
export const AUDIT_EVENT_CATEGORY_MEANINGS = {
|
|
720
|
+
[AuditEventCategory.AUTHENTICATION]: { name: 'Authentication', meaning: 'Signing in, signing out, second factors and failed attempts.' },
|
|
721
|
+
[AuditEventCategory.AUTHORIZATION]: { name: 'Authorization', meaning: 'Access decisions: what an identity was allowed or refused.' },
|
|
722
|
+
[AuditEventCategory.USER_LIFECYCLE]: { name: 'User lifecycle', meaning: 'Accounts created, changed, suspended, restored or removed.' },
|
|
723
|
+
[AuditEventCategory.ORG_MANAGEMENT]: { name: 'Organization management', meaning: 'Membership, roles, units and organization settings.' },
|
|
724
|
+
[AuditEventCategory.DATA_ACCESS]: { name: 'Data access', meaning: 'Reads and changes of application data that are recorded for review.' },
|
|
725
|
+
};
|
|
726
|
+
export const AUDIT_EVENT_SEVERITY_MEANINGS = {
|
|
727
|
+
[AuditEventSeverity.INFO]: { name: 'Information', meaning: 'Expected activity. Useful as evidence, not a signal on its own.' },
|
|
728
|
+
[AuditEventSeverity.WARNING]: { name: 'Warning', meaning: 'Unusual or refused activity worth reviewing in context.' },
|
|
729
|
+
[AuditEventSeverity.CRITICAL]: { name: 'Critical', meaning: 'Activity that should reach whoever handles security incidents.' },
|
|
730
|
+
};
|
|
731
|
+
/**
|
|
732
|
+
* A `Values:` legend in the shape the generated API reference already uses, so a field described
|
|
733
|
+
* here reads exactly like one described from a resource specification.
|
|
734
|
+
*/
|
|
735
|
+
export function describeAuditVocabulary(lead, meanings) {
|
|
736
|
+
const legend = Object.entries(meanings).map(([value, words]) => `- \`${value}\`: ${words.meaning}`).join('\n');
|
|
737
|
+
return `${lead}\n\nValues:\n${legend}`;
|
|
738
|
+
}
|
|
530
739
|
/**
|
|
531
740
|
* Why the authorizer refused an operation. A CLOSED vocabulary — the authorizer resolves exactly
|
|
532
741
|
* one of these per refusal, and a SOC dashboard groups by it.
|
|
@@ -588,6 +797,22 @@ export var ResourceOperationDenialReason;
|
|
|
588
797
|
* becoming an existence oracle.
|
|
589
798
|
*/
|
|
590
799
|
ResourceOperationDenialReason["SUBJECT_NOT_RESOLVABLE"] = "subject_not_resolvable";
|
|
800
|
+
/**
|
|
801
|
+
* The caller holds the ROLE but no usable APPLICATION-WIDE elevation.
|
|
802
|
+
*
|
|
803
|
+
* Its own member rather than `INSUFFICIENT_ROLES`, and the distinction is the whole point of the
|
|
804
|
+
* grant model: the caller IS an administrator and the refusal is about STANDING privilege, not
|
|
805
|
+
* about authority. Folding it into the roles reason would make the two indistinguishable in the
|
|
806
|
+
* trail — and a reviewer asking "did zero-standing-privilege actually bite anyone?" would have no
|
|
807
|
+
* way to count it.
|
|
808
|
+
*
|
|
809
|
+
* Distinct from a tenant crossing refused for the same shape of reason: that one is refused inside
|
|
810
|
+
* `authorizeOrganizations` and surfaces as `SCOPE_MISMATCH`, because there the caller genuinely is
|
|
811
|
+
* outside the tenant. Here there is no tenant to be outside of.
|
|
812
|
+
*
|
|
813
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT
|
|
814
|
+
*/
|
|
815
|
+
ResourceOperationDenialReason["APPLICATION_WIDE_ELEVATION_MISSING"] = "application_wide_elevation_missing";
|
|
591
816
|
})(ResourceOperationDenialReason || (ResourceOperationDenialReason = {}));
|
|
592
817
|
/** SSO configuration change type. */
|
|
593
818
|
export var SsoConfigChangeType;
|
|
@@ -912,20 +1137,66 @@ export const AuditableEvent_Application_SuperAdminFloorBreachedEventDataSchema =
|
|
|
912
1137
|
* recorded rather than assumed zero: the floor's minimum is configurable, and an event that hard-codes
|
|
913
1138
|
* the consequence cannot be re-read against a changed policy.
|
|
914
1139
|
*/
|
|
1140
|
+
/**
|
|
1141
|
+
* HOW a tenant's owner-floor breach came to be known.
|
|
1142
|
+
*
|
|
1143
|
+
* The two answers mean genuinely different things to whoever reads the record, and a reader cannot
|
|
1144
|
+
* tell them apart from the rest of the payload — which is why this is a named member rather than an
|
|
1145
|
+
* inference from whether the action fields happen to be present.
|
|
1146
|
+
*
|
|
1147
|
+
* The event type stays SINGLE across both, deliberately. The fact recorded is "this tenant has no
|
|
1148
|
+
* administratively usable owner", and that is the query an operator needs to be one query: splitting
|
|
1149
|
+
* it in two would mean a breach is missed by whichever half somebody alerts on.
|
|
1150
|
+
*/
|
|
1151
|
+
export var AdministrativeContinuityBreachDetection;
|
|
1152
|
+
(function (AdministrativeContinuityBreachDetection) {
|
|
1153
|
+
/**
|
|
1154
|
+
* A guarded lifecycle write was ALLOWED through and stranded the tenant.
|
|
1155
|
+
*
|
|
1156
|
+
* The permissive branch is deliberate — refusing a suspension would mean an operator cannot lock
|
|
1157
|
+
* out a compromised owner without first transferring ownership using the tenant the attacker
|
|
1158
|
+
* controls — so this record IS the control that makes the trade acceptable. The action fields are
|
|
1159
|
+
* populated here, because there is an action to name.
|
|
1160
|
+
*/
|
|
1161
|
+
AdministrativeContinuityBreachDetection["ALLOWED_LIFECYCLE_ACTION"] = "allowed_lifecycle_action";
|
|
1162
|
+
/**
|
|
1163
|
+
* The boot report found the tenant ALREADY stranded, by a route no guard ever saw: a direct
|
|
1164
|
+
* database edit, a restore from a backup taken mid-erasure, a seed that authored no owner, or a
|
|
1165
|
+
* role-table change that redefined which roles confer ownership.
|
|
1166
|
+
*
|
|
1167
|
+
* There is no action to name, so the action fields are absent rather than filled with placeholders
|
|
1168
|
+
* — the same reading `logApplicationSuperAdminFloorBreached` takes for its missing `userId`.
|
|
1169
|
+
*/
|
|
1170
|
+
AdministrativeContinuityBreachDetection["BOOT_REPORT"] = "boot_report";
|
|
1171
|
+
})(AdministrativeContinuityBreachDetection || (AdministrativeContinuityBreachDetection = {}));
|
|
915
1172
|
export const AuditableEvent_Organization_OwnerFloorBreachedEventDataSchema = z.object({
|
|
916
1173
|
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_OWNER_FLOOR_BREACHED),
|
|
917
1174
|
/** The tenant left with no administratively usable owner. */
|
|
918
1175
|
organizationId: z.string(),
|
|
919
|
-
/**
|
|
920
|
-
|
|
1176
|
+
/**
|
|
1177
|
+
* WHICH observation produced this record. Required, so the compiler forces every emitter — present
|
|
1178
|
+
* and future — to say which; a reader cannot recover it from the payload, and guessing it from the
|
|
1179
|
+
* presence of the action fields would make an emitter's omission look like a boot observation.
|
|
1180
|
+
*/
|
|
1181
|
+
detectedBy: z.enum(AdministrativeContinuityBreachDetection),
|
|
921
1182
|
/** How many usable owners remain (expected: 0 when emitted). */
|
|
922
1183
|
remainingUsableOwners: z.number(),
|
|
923
|
-
/**
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
1184
|
+
/**
|
|
1185
|
+
* The owner-conferring memberships the action removed from the population.
|
|
1186
|
+
*
|
|
1187
|
+
* Absent under `BOOT_REPORT`: nothing was removed within sight of a guard, which is the whole
|
|
1188
|
+
* reason the boot report has to look.
|
|
1189
|
+
*/
|
|
1190
|
+
reducedMemberIds: z.array(z.string()).optional(),
|
|
1191
|
+
/** The lifecycle verb that caused it — the operator-facing "what did this". Absent under `BOOT_REPORT`. */
|
|
1192
|
+
operationIdentifier: z.string().optional(),
|
|
1193
|
+
/** The subject whose deactivation triggered it. Absent under `BOOT_REPORT`. */
|
|
1194
|
+
subjectUserId: z.string().optional(),
|
|
1195
|
+
/**
|
|
1196
|
+
* The status the subject moved to, so a reader need not infer usability from the verb alone. Absent
|
|
1197
|
+
* under `BOOT_REPORT`.
|
|
1198
|
+
*/
|
|
1199
|
+
subjectNextStatus: z.string().optional(),
|
|
929
1200
|
});
|
|
930
1201
|
// Organization Member Event Data Schemas
|
|
931
1202
|
export const AuditableEvent_OrganizationMember_InvitedEventDataSchema = z.object({
|
|
@@ -1371,7 +1642,22 @@ export const ApplicationAuthPolicySnapshotSchema = z.record(z.string(), z.unknow
|
|
|
1371
1642
|
*/
|
|
1372
1643
|
export const AuditableEvent_ApplicationAuthPolicyChanged_EventDataSchema = z.object({
|
|
1373
1644
|
eventType: z.literal(CoreAuditableEventType.APPLICATION_AUTH_POLICY_CHANGED),
|
|
1374
|
-
|
|
1645
|
+
/*
|
|
1646
|
+
* NO `applicationId` HERE — removed 2026-09-09, and the removal is the fix for a real defect.
|
|
1647
|
+
*
|
|
1648
|
+
* The row this payload rides on ALREADY carries `applicationId` as its scope column, injected by
|
|
1649
|
+
* the repository's write-path enrichment from the writer's own execution context. A second copy in
|
|
1650
|
+
* the payload could only ever agree with it or contradict it, and it contradicted it: the boot
|
|
1651
|
+
* emitter had no application id to hand — `appIdentity.applicationId` is merged in for the FRONTEND
|
|
1652
|
+
* projection only — so it passed `appIdentity.appName`, the SLUG, into both. Measured on the
|
|
1653
|
+
* dogfood trail: 2,175 rows carried the correct id and this event's one row carried `wonder-todos`,
|
|
1654
|
+
* which made it reachable through no API, on the door built for exactly that population (#317).
|
|
1655
|
+
*
|
|
1656
|
+
* Dropping the field is what makes the two-copies question unaskable, rather than answering it
|
|
1657
|
+
* again per emitter. Nothing read it: no SIEM projection, no OCSF mapping, no consumer. Old stored
|
|
1658
|
+
* rows keep parsing — `z.object` strips an unknown key rather than refusing it — so the change is
|
|
1659
|
+
* a shrink with no migration.
|
|
1660
|
+
*/
|
|
1375
1661
|
/** Which user types' policies differed from the previously-recorded snapshot. Sorted, non-empty. */
|
|
1376
1662
|
changedUserTypes: z.array(z.string()),
|
|
1377
1663
|
/**
|
|
@@ -1547,6 +1833,239 @@ export const AuditableEvent_Organization_SIEMExportConfiguredEventDataSchema = z
|
|
|
1547
1833
|
webhookUrlDomain: z.string().optional(),
|
|
1548
1834
|
eventFormatConfigured: z.string().optional(),
|
|
1549
1835
|
});
|
|
1836
|
+
// Organization Provider Credential Event Data Schemas
|
|
1837
|
+
//
|
|
1838
|
+
// ## The value is absent by CONSTRUCTION
|
|
1839
|
+
//
|
|
1840
|
+
// Every field below is an identifier, a timestamp, a closed vocabulary or a count. There is no
|
|
1841
|
+
// free-text field an implementation could put a secret in by accident, and no `changes` /
|
|
1842
|
+
// `metadata` record — the shape the SSO event uses (`z.record(z.string(), z.any())`) is exactly
|
|
1843
|
+
// what a credential event must not have, because an audit row is replicated to the organization's
|
|
1844
|
+
// SIEM and to the immutable store, and neither can be edited afterwards.
|
|
1845
|
+
//
|
|
1846
|
+
// ## Why a provider ref and a slug, and nothing about the value
|
|
1847
|
+
//
|
|
1848
|
+
// A reader needs to know WHICH authority moved. `providerRef` + `secretSlug` say that completely.
|
|
1849
|
+
// A fingerprint of the value was considered and rejected: it is a stable oracle for confirming a
|
|
1850
|
+
// guessed secret, so it would put a verification oracle into the one store designed never to
|
|
1851
|
+
// forget.
|
|
1852
|
+
/**
|
|
1853
|
+
* A tenant granted this application authority to act as it toward a third party.
|
|
1854
|
+
*
|
|
1855
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — organization authorizes delegated
|
|
1856
|
+
* access to a named third party.
|
|
1857
|
+
*/
|
|
1858
|
+
export const AuditableEvent_OrganizationProviderCredential_SetEventDataSchema = z.object({
|
|
1859
|
+
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_SET),
|
|
1860
|
+
organizationId: z.string(),
|
|
1861
|
+
providerRef: z.string(),
|
|
1862
|
+
secretSlug: z.string(),
|
|
1863
|
+
/** The acting administrator. Absent only on a system-initiated write, which none exists today. */
|
|
1864
|
+
setBy: z.string().optional(),
|
|
1865
|
+
credentialId: z.string(),
|
|
1866
|
+
});
|
|
1867
|
+
/**
|
|
1868
|
+
* The stored VALUE changed for a credential that already existed.
|
|
1869
|
+
*
|
|
1870
|
+
* Separate from `_SET` because rotation is the response to a suspected compromise, and "was this
|
|
1871
|
+
* rotated after the incident?" must be answerable without reading every configuration edit.
|
|
1872
|
+
*
|
|
1873
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — the delegated authority's secret is
|
|
1874
|
+
* replaced.
|
|
1875
|
+
*/
|
|
1876
|
+
export const AuditableEvent_OrganizationProviderCredential_RotatedEventDataSchema = z.object({
|
|
1877
|
+
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_ROTATED),
|
|
1878
|
+
organizationId: z.string(),
|
|
1879
|
+
providerRef: z.string(),
|
|
1880
|
+
secretSlug: z.string(),
|
|
1881
|
+
rotatedBy: z.string().optional(),
|
|
1882
|
+
credentialId: z.string(),
|
|
1883
|
+
/** When the value it replaced was set — how long the retired secret was live. */
|
|
1884
|
+
previousSecretSetAt: z.string().optional(),
|
|
1885
|
+
});
|
|
1886
|
+
/**
|
|
1887
|
+
* The credential was RESOLVED for an outbound call — the application acted as the tenant.
|
|
1888
|
+
*
|
|
1889
|
+
* The highest-volume of the four and the one that makes the other three worth having: without a
|
|
1890
|
+
* use event, a leaked credential's exploitation is invisible and only its configuration is
|
|
1891
|
+
* recorded. `resolvedFrom` distinguishes a tenant's own credential from the deployment-wide
|
|
1892
|
+
* environment fallback, which is precisely the distinction this whole resource exists to make
|
|
1893
|
+
* visible — a tenant silently acting as the shared principal is the defect, and here it is a
|
|
1894
|
+
* value in a field rather than something nobody can see.
|
|
1895
|
+
*
|
|
1896
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — delegated authority is exercised.
|
|
1897
|
+
*/
|
|
1898
|
+
export const AuditableEvent_OrganizationProviderCredential_UsedEventDataSchema = z.object({
|
|
1899
|
+
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_USED),
|
|
1900
|
+
organizationId: z.string(),
|
|
1901
|
+
providerRef: z.string(),
|
|
1902
|
+
secretSlug: z.string(),
|
|
1903
|
+
resolvedFrom: z.enum(ProviderCredentialResolutionSource),
|
|
1904
|
+
/** Absent when `resolvedFrom` is the deployment environment — there is no row to name. */
|
|
1905
|
+
credentialId: z.string().optional(),
|
|
1906
|
+
});
|
|
1907
|
+
/**
|
|
1908
|
+
* The grant ended — by the tenant removing it, or by the tenant itself being purged.
|
|
1909
|
+
*
|
|
1910
|
+
* `reason` separates the two, because "the credential is gone" means different things to an
|
|
1911
|
+
* incident reviewer depending on whether a human revoked it or a cascade removed it.
|
|
1912
|
+
*
|
|
1913
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — evidence that delegated authority
|
|
1914
|
+
* was withdrawn.
|
|
1915
|
+
*/
|
|
1916
|
+
export const AuditableEvent_OrganizationProviderCredential_DeletedEventDataSchema = z.object({
|
|
1917
|
+
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_PROVIDER_CREDENTIAL_DELETED),
|
|
1918
|
+
organizationId: z.string(),
|
|
1919
|
+
providerRef: z.string(),
|
|
1920
|
+
secretSlug: z.string(),
|
|
1921
|
+
deletedBy: z.string().optional(),
|
|
1922
|
+
credentialId: z.string(),
|
|
1923
|
+
reason: z.enum(ProviderCredentialDeletionReason),
|
|
1924
|
+
});
|
|
1925
|
+
/**
|
|
1926
|
+
* A PERSON connected their own account at a third party to this application.
|
|
1927
|
+
*
|
|
1928
|
+
* The organization's four events say "this tenant authorized the application". These four say "this
|
|
1929
|
+
* individual did", and the difference is not cosmetic: the vendor will attribute every resulting act
|
|
1930
|
+
* to that person's account, so the trail that answers "who authorized this" has to name them.
|
|
1931
|
+
*
|
|
1932
|
+
* `userId` is the subject, not the actor, and the two are the same here BY CONSTRUCTION — the
|
|
1933
|
+
* resource admits no administrative variant, so nobody but the holder can write one of these rows.
|
|
1934
|
+
* That is why there is no `setBy`: an organization credential needs one because several
|
|
1935
|
+
* administrators can write the tenant's row, and a person's own credential has exactly one possible
|
|
1936
|
+
* author. A `setBy` that could only ever repeat `userId` would invite a future reader to believe the
|
|
1937
|
+
* two can differ.
|
|
1938
|
+
*
|
|
1939
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — a user authorizes third-party
|
|
1940
|
+
* delegated access.
|
|
1941
|
+
*/
|
|
1942
|
+
export const AuditableEvent_UserProviderCredential_SetEventDataSchema = z.object({
|
|
1943
|
+
eventType: z.literal(CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_SET),
|
|
1944
|
+
userId: z.string(),
|
|
1945
|
+
providerRef: z.string(),
|
|
1946
|
+
secretSlug: z.string(),
|
|
1947
|
+
credentialId: z.string(),
|
|
1948
|
+
});
|
|
1949
|
+
/**
|
|
1950
|
+
* A PERSON completed a consent ceremony at a vendor and this application now holds their grant.
|
|
1951
|
+
*
|
|
1952
|
+
* The subject and the actor are the same by construction — the resource admits no administrative
|
|
1953
|
+
* variant, and the connect leg refuses any owner but the caller — so there is no `grantedBy`.
|
|
1954
|
+
*
|
|
1955
|
+
* `grantedScopes` is what the VENDOR said it issued, not what was asked for. The two differ often
|
|
1956
|
+
* enough to matter: a vendor may narrow a request against what the account is permitted, and the
|
|
1957
|
+
* answer to "what could this application actually do as them" is the granted set. Optional because
|
|
1958
|
+
* several vendors return no scope at all on a token response, and an empty array would assert
|
|
1959
|
+
* something stronger than silence.
|
|
1960
|
+
*
|
|
1961
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — a user authorizes third-party
|
|
1962
|
+
* delegated access, and the authorization's extent is recorded with it.
|
|
1963
|
+
*/
|
|
1964
|
+
export const AuditableEvent_UserProviderConnection_GrantedEventDataSchema = z.object({
|
|
1965
|
+
eventType: z.literal(CoreAuditableEventType.USER_PROVIDER_CONNECTION_GRANTED),
|
|
1966
|
+
userId: z.string(),
|
|
1967
|
+
providerRef: z.string(),
|
|
1968
|
+
secretSlug: z.string(),
|
|
1969
|
+
credentialId: z.string(),
|
|
1970
|
+
grantedScopes: z.array(z.string()).optional(),
|
|
1971
|
+
/**
|
|
1972
|
+
* WHICH account at the vendor — a workspace, a tenant, a directory. Never a secret, and the answer
|
|
1973
|
+
* to a question the row alone cannot settle: two people connecting the same provider may be
|
|
1974
|
+
* granting access to entirely different organizations of that vendor.
|
|
1975
|
+
*/
|
|
1976
|
+
accountRef: z.string().optional(),
|
|
1977
|
+
/**
|
|
1978
|
+
* Whether this replaced a connection that already existed.
|
|
1979
|
+
*
|
|
1980
|
+
* A first connection and a re-authorization look identical in the row afterwards, and they are not
|
|
1981
|
+
* the same event to an auditor: a re-authorization frequently follows a revocation at the vendor,
|
|
1982
|
+
* which is exactly the sequence worth being able to see.
|
|
1983
|
+
*/
|
|
1984
|
+
replacedExistingConnection: z.boolean(),
|
|
1985
|
+
});
|
|
1986
|
+
/**
|
|
1987
|
+
* An ORGANIZATION's delegated authorization toward a vendor was granted.
|
|
1988
|
+
*
|
|
1989
|
+
* Mirrors the person's event and is deliberately not the same event with a nullable user: the
|
|
1990
|
+
* subject is a tenant, the SIEM routing is the tenant's, and the data-protection reading differs —
|
|
1991
|
+
* a tenant's shared integration is not anybody's personal connection.
|
|
1992
|
+
*
|
|
1993
|
+
* `grantedByUserId` exists here and not on the user's, for the reason the `_SET` pair already
|
|
1994
|
+
* records: several administrators can authorize on a tenant's behalf, so WHO did is a real question.
|
|
1995
|
+
*
|
|
1996
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — an organization authorizes this
|
|
1997
|
+
* application to act as it toward a named third party.
|
|
1998
|
+
*/
|
|
1999
|
+
export const AuditableEvent_OrganizationProviderConnection_GrantedEventDataSchema = z.object({
|
|
2000
|
+
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_PROVIDER_CONNECTION_GRANTED),
|
|
2001
|
+
organizationId: z.string(),
|
|
2002
|
+
providerRef: z.string(),
|
|
2003
|
+
secretSlug: z.string(),
|
|
2004
|
+
credentialId: z.string(),
|
|
2005
|
+
grantedByUserId: z.string().optional(),
|
|
2006
|
+
grantedScopes: z.array(z.string()).optional(),
|
|
2007
|
+
accountRef: z.string().optional(),
|
|
2008
|
+
replacedExistingConnection: z.boolean(),
|
|
2009
|
+
});
|
|
2010
|
+
/**
|
|
2011
|
+
* The stored VALUE changed for a person's credential that already existed.
|
|
2012
|
+
*
|
|
2013
|
+
* Separate from `_SET` for the organization's reason — rotation answers "was this replaced after the
|
|
2014
|
+
* incident?" — and for one that is specific to a person: a credential someone rotates on their own
|
|
2015
|
+
* initiative is often the first evidence that they believe their vendor account was compromised.
|
|
2016
|
+
*
|
|
2017
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — the delegated authority's secret is
|
|
2018
|
+
* replaced.
|
|
2019
|
+
*/
|
|
2020
|
+
export const AuditableEvent_UserProviderCredential_RotatedEventDataSchema = z.object({
|
|
2021
|
+
eventType: z.literal(CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_ROTATED),
|
|
2022
|
+
userId: z.string(),
|
|
2023
|
+
providerRef: z.string(),
|
|
2024
|
+
secretSlug: z.string(),
|
|
2025
|
+
credentialId: z.string(),
|
|
2026
|
+
/** When the value it replaced was set — how long the retired secret was live. */
|
|
2027
|
+
previousSecretSetAt: z.string().optional(),
|
|
2028
|
+
});
|
|
2029
|
+
/**
|
|
2030
|
+
* The credential was RESOLVED for an outbound call — the application acted as that person.
|
|
2031
|
+
*
|
|
2032
|
+
* `resolvedFrom` is present for symmetry with the organization event but carries a narrower range:
|
|
2033
|
+
* a person's credential has NO fallback, because substituting the deployment's shared principal for
|
|
2034
|
+
* someone's own account would attribute the act to the wrong party at the vendor — the very
|
|
2035
|
+
* substitution the whole scope triangle exists to forbid. So this field reads
|
|
2036
|
+
* `USER_CREDENTIAL` on every event, and a reviewer seeing anything else is looking at a defect.
|
|
2037
|
+
*
|
|
2038
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — delegated authority is exercised.
|
|
2039
|
+
*/
|
|
2040
|
+
export const AuditableEvent_UserProviderCredential_UsedEventDataSchema = z.object({
|
|
2041
|
+
eventType: z.literal(CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_USED),
|
|
2042
|
+
userId: z.string(),
|
|
2043
|
+
providerRef: z.string(),
|
|
2044
|
+
secretSlug: z.string(),
|
|
2045
|
+
resolvedFrom: z.enum(ProviderCredentialResolutionSource),
|
|
2046
|
+
credentialId: z.string(),
|
|
2047
|
+
});
|
|
2048
|
+
/**
|
|
2049
|
+
* The person's grant ended — by them removing it, or by their own erasure.
|
|
2050
|
+
*
|
|
2051
|
+
* `reason` matters more here than on the organization sibling. A credential removed by a cascade
|
|
2052
|
+
* from a subject-erasure request is EVIDENCE that the erasure reached this store, and it is the
|
|
2053
|
+
* evidence an operator produces when asked whether a person's third-party keys were destroyed. The
|
|
2054
|
+
* row itself is gone by then, so the event is all that remains.
|
|
2055
|
+
*
|
|
2056
|
+
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — evidence that delegated authority
|
|
2057
|
+
* was withdrawn.
|
|
2058
|
+
* assurance-control: WILDO.PRIVACY.ERASURE — evidence that erasure destroyed the subject's
|
|
2059
|
+
* third-party credentials.
|
|
2060
|
+
*/
|
|
2061
|
+
export const AuditableEvent_UserProviderCredential_DeletedEventDataSchema = z.object({
|
|
2062
|
+
eventType: z.literal(CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_DELETED),
|
|
2063
|
+
userId: z.string(),
|
|
2064
|
+
providerRef: z.string(),
|
|
2065
|
+
secretSlug: z.string(),
|
|
2066
|
+
credentialId: z.string(),
|
|
2067
|
+
reason: z.enum(ProviderCredentialDeletionReason),
|
|
2068
|
+
});
|
|
1550
2069
|
// Outbound M2M Webhook Event Data Schemas
|
|
1551
2070
|
/**
|
|
1552
2071
|
* One `webhookConfig.testEndpoint` attempt — an admin causing the platform to open an
|
|
@@ -1736,6 +2255,91 @@ export const AuditableEvent_User_PasskeyAuthFailureEventDataSchema = z.object({
|
|
|
1736
2255
|
userAgent: z.string(),
|
|
1737
2256
|
sessionId: z.string(),
|
|
1738
2257
|
});
|
|
2258
|
+
/**
|
|
2259
|
+
* A passkey assertion whose SIGNATURE VERIFIED and whose signature counter did not advance.
|
|
2260
|
+
*
|
|
2261
|
+
* This is the WebAuthn cloned-authenticator signal (W3C WebAuthn L3 §6.1.1: "The signature
|
|
2262
|
+
* counter's purpose is to aid Relying Parties in detecting cloned authenticators"). It is emitted
|
|
2263
|
+
* on the spec's own predicate — either counter non-zero AND the received value not greater than
|
|
2264
|
+
* the stored one — so a credential that reports 0 permanently, which every synced passkey does,
|
|
2265
|
+
* compares 0-against-0 and never reaches here.
|
|
2266
|
+
*
|
|
2267
|
+
* spec-cite: W3C Web Authentication Level 3, §6.1.1 Signature Counter Considerations
|
|
2268
|
+
* (https://www.w3.org/TR/webauthn-3/#sctn-sign-counter). The spec declines to mandate an outcome
|
|
2269
|
+
* (§7.2 step 22: "whether the Relying Party ... fails the authentication ceremony or not, is
|
|
2270
|
+
* Relying Party-specific"); Wildo refuses, matching what every major implementation does.
|
|
2271
|
+
*
|
|
2272
|
+
* SEPARATE from `USER_PASSKEY_AUTHENTICATION_FAILURE` deliberately. A wrong credential, an absent
|
|
2273
|
+
* challenge and a bad signature are routine noise; this one means a private key may exist in two
|
|
2274
|
+
* places. Recorded as its own type at CRITICAL so it is alertable rather than buried among ordinary
|
|
2275
|
+
* failed logins — which is exactly where it lived until 2026-09-08.
|
|
2276
|
+
*
|
|
2277
|
+
* The device-type, backup and AAGUID fields are carried for TRIAGE, never for a decision: nothing
|
|
2278
|
+
* branches on them. A synced credential that once reported a non-zero counter and then regresses is
|
|
2279
|
+
* still a signal, and exempting by device type would silently disable clone detection for the
|
|
2280
|
+
* growing majority of credentials.
|
|
2281
|
+
*/
|
|
2282
|
+
/**
|
|
2283
|
+
* One file that a scanner concluded is infected (#506).
|
|
2284
|
+
*
|
|
2285
|
+
* `threatName` is the scanner's own signature or rule name (`Eicar-Test-Signature`, a YARA rule id).
|
|
2286
|
+
* It is carried because it is the first thing a responder needs and it names a THREAT, not a person
|
|
2287
|
+
* — unlike a file name, which is user-supplied content and is deliberately absent: audit rows are
|
|
2288
|
+
* replicated to the organisation's SIEM and to the immutable store, and an uploaded file's name
|
|
2289
|
+
* routinely carries personal data ("Invoice - Jane Doe.pdf"). The file id resolves to the row for
|
|
2290
|
+
* anyone authorised to look.
|
|
2291
|
+
*/
|
|
2292
|
+
export const AuditableEvent_File_MalwareDetectedEventDataSchema = z.object({
|
|
2293
|
+
eventType: z.literal(CoreAuditableEventType.FILE_MALWARE_DETECTED),
|
|
2294
|
+
fileId: z.string(),
|
|
2295
|
+
/** Which scanner concluded it — ClamAV signature matching and YARA pattern matching are different evidence. */
|
|
2296
|
+
scannerRef: z.string(),
|
|
2297
|
+
/** The signature or rule the scanner matched, when it reports one. */
|
|
2298
|
+
threatName: z.string().optional(),
|
|
2299
|
+
/** The resource the file belongs to, when the scan context carries it. */
|
|
2300
|
+
resourceType: z.string().optional(),
|
|
2301
|
+
resourceId: z.string().optional(),
|
|
2302
|
+
organizationId: z.string().optional(),
|
|
2303
|
+
/** Terminal status the file was moved to. Recorded so the row cannot claim a state the record does not hold. */
|
|
2304
|
+
fileStatus: z.string(),
|
|
2305
|
+
});
|
|
2306
|
+
/**
|
|
2307
|
+
* One scan that could not be completed (#506).
|
|
2308
|
+
*
|
|
2309
|
+
* Distinct from a detection: the control did not run. `failureReason` is TRUNCATED because a scanner
|
|
2310
|
+
* error routinely embeds a host, a socket path or a temporary file path, and this row reaches the
|
|
2311
|
+
* organisation's SIEM.
|
|
2312
|
+
*/
|
|
2313
|
+
export const AuditableEvent_File_MalwareScanFailedEventDataSchema = z.object({
|
|
2314
|
+
eventType: z.literal(CoreAuditableEventType.FILE_MALWARE_SCAN_FAILED),
|
|
2315
|
+
fileId: z.string(),
|
|
2316
|
+
scannerRef: z.string(),
|
|
2317
|
+
/** Truncated scanner/pipeline error — enough to triage, bounded so a path cannot ride into the SIEM whole. */
|
|
2318
|
+
failureReason: z.string().optional(),
|
|
2319
|
+
resourceType: z.string().optional(),
|
|
2320
|
+
resourceId: z.string().optional(),
|
|
2321
|
+
organizationId: z.string().optional(),
|
|
2322
|
+
fileStatus: z.string(),
|
|
2323
|
+
});
|
|
2324
|
+
export const AuditableEvent_User_PasskeyCloneSuspectedEventDataSchema = z.object({
|
|
2325
|
+
eventType: z.literal(CoreAuditableEventType.USER_PASSKEY_CLONE_SUSPECTED),
|
|
2326
|
+
userId: z.string(),
|
|
2327
|
+
credentialId: z.string(),
|
|
2328
|
+
/** The counter Wildo held for this credential before the assertion. */
|
|
2329
|
+
storedCounter: z.number().int().min(0),
|
|
2330
|
+
/** The counter the authenticator reported. Not greater than `storedCounter`, which is the signal. */
|
|
2331
|
+
receivedCounter: z.number().int().min(0),
|
|
2332
|
+
/** Triage only: `singleDevice` or `multiDevice`, as captured at registration. */
|
|
2333
|
+
credentialDeviceType: z.string(),
|
|
2334
|
+
/** Triage only: whether the credential is backed up (synced), as captured at registration. */
|
|
2335
|
+
credentialBackedUp: z.boolean(),
|
|
2336
|
+
/** Triage only: the authenticator model identifier, when the registration reported one. */
|
|
2337
|
+
aaguid: z.string().optional(),
|
|
2338
|
+
/** Which door the assertion arrived at — a step-up regression is not the same story as a login. */
|
|
2339
|
+
ceremony: z.string(),
|
|
2340
|
+
ipAddress: z.string(),
|
|
2341
|
+
userAgent: z.string(),
|
|
2342
|
+
});
|
|
1739
2343
|
export const AuditableEvent_User_PasskeyRemovedEventDataSchema = z.object({
|
|
1740
2344
|
eventType: z.literal(CoreAuditableEventType.USER_PASSKEY_REMOVED),
|
|
1741
2345
|
userId: z.string(),
|
|
@@ -1835,16 +2439,65 @@ export const AuditableEvent_OAuth2ProviderBlockedEventDataSchema = z.object({
|
|
|
1835
2439
|
});
|
|
1836
2440
|
}
|
|
1837
2441
|
});
|
|
2442
|
+
/**
|
|
2443
|
+
* Authentication-context demand unsatisfied (issue #444).
|
|
2444
|
+
*
|
|
2445
|
+
* Carries BOTH sides of the comparison, because either alone is unactionable: `demandedAcrValues`
|
|
2446
|
+
* is what the connection authored, `receivedAcr` is what the provider's ID token reported. The
|
|
2447
|
+
* received value is OPTIONAL and its absence is the distinct, common case — a provider that emits
|
|
2448
|
+
* no `acr` claim at all — which reads very differently from one that answered with a weaker
|
|
2449
|
+
* context, and an operator must be able to tell them apart from the trail alone.
|
|
2450
|
+
*
|
|
2451
|
+
* No email field. The refusal happens before any identity is established or trusted, and recording
|
|
2452
|
+
* an unauthenticated claimant's address as though it were a subject is the kind of quiet personal
|
|
2453
|
+
* data this family avoids; `providerRef` and the two ACR sides are what a reader needs.
|
|
2454
|
+
*/
|
|
2455
|
+
export const AuditableEvent_OidcAcrDemandUnsatisfiedEventDataSchema = z.object({
|
|
2456
|
+
eventType: z.literal(CoreAuditableEventType.OIDC_ACR_DEMAND_UNSATISFIED),
|
|
2457
|
+
providerRef: z.string(),
|
|
2458
|
+
/** The ordered list of acceptable values the connection authored. Never empty — an empty demand is not enforced at all. */
|
|
2459
|
+
demandedAcrValues: z.array(z.string()).min(1),
|
|
2460
|
+
/** What the ID token's `acr` claim reported. ABSENT when the provider emitted no claim. */
|
|
2461
|
+
receivedAcr: z.string().optional(),
|
|
2462
|
+
/** Present when the ID token itself could not be read, which is a different refusal from a mismatched claim. */
|
|
2463
|
+
failureReason: z.string().optional(),
|
|
2464
|
+
});
|
|
1838
2465
|
// Emergency Access Event Data Schema
|
|
2466
|
+
/**
|
|
2467
|
+
* A named break-glass account signed in past its tenant's own SSO requirement (#423).
|
|
2468
|
+
*
|
|
2469
|
+
* `organizationId` was REQUIRED here and is now one of two scopes, because `emergencyAccess` lives
|
|
2470
|
+
* on the POLYMORPHIC SSO config: an application-scope policy carries break-glass accounts for the
|
|
2471
|
+
* application itself, and requiring an organization id would have made the one event that matters
|
|
2472
|
+
* unemittable for exactly that case — a privileged sign-in with no record, which is the opposite of
|
|
2473
|
+
* what this event is for. The exactly-one-scope refinement follows the OAuth2-provider-blocked
|
|
2474
|
+
* event above rather than inventing a second shape.
|
|
2475
|
+
*/
|
|
1839
2476
|
export const AuditableEvent_EmergencyAccess_UsedEventDataSchema = z.object({
|
|
1840
2477
|
eventType: z.literal(CoreAuditableEventType.EMERGENCY_ACCESS_USED),
|
|
1841
2478
|
userId: z.string(),
|
|
1842
2479
|
email: z.email(),
|
|
1843
|
-
|
|
2480
|
+
scopeType: z.enum(AuthScopeType),
|
|
2481
|
+
organizationId: z.string().optional(),
|
|
2482
|
+
applicationId: z.string().optional(),
|
|
1844
2483
|
reason: z.string().optional(),
|
|
1845
2484
|
ipAddress: z.string(),
|
|
1846
2485
|
userAgent: z.string(),
|
|
1847
2486
|
sessionId: z.string(),
|
|
2487
|
+
}).superRefine((event, ctx) => {
|
|
2488
|
+
const hasOrganizationScope = event.scopeType === AuthScopeType.ORGANIZATION
|
|
2489
|
+
&& event.organizationId !== undefined
|
|
2490
|
+
&& event.applicationId === undefined;
|
|
2491
|
+
const hasApplicationScope = event.scopeType === AuthScopeType.APPLICATION
|
|
2492
|
+
&& event.applicationId !== undefined
|
|
2493
|
+
&& event.organizationId === undefined;
|
|
2494
|
+
if (!hasOrganizationScope && !hasApplicationScope) {
|
|
2495
|
+
ctx.addIssue({
|
|
2496
|
+
code: 'custom',
|
|
2497
|
+
path: ['scopeType'],
|
|
2498
|
+
message: 'Emergency-access events require exactly one explicit tenant scope',
|
|
2499
|
+
});
|
|
2500
|
+
}
|
|
1848
2501
|
});
|
|
1849
2502
|
export const AuditableEvent_FieldAccess_EventDataSchema = z.object({
|
|
1850
2503
|
eventType: z.literal(CoreAuditableEventType.FIELD_ACCESS),
|
|
@@ -2034,17 +2687,21 @@ export const AuditableEvent_ResourceOperationPerformed_EventDataSchema = z.objec
|
|
|
2034
2687
|
* `organization-ownership-grant-hostile.e2e.ts` probe F-1a, which deleted a membership row in
|
|
2035
2688
|
* another tenant and got a 200.
|
|
2036
2689
|
*
|
|
2037
|
-
* This event is the visibility half
|
|
2038
|
-
*
|
|
2690
|
+
* This event is the visibility half, and it is NOT the refusal. The refusal shipped separately and
|
|
2691
|
+
* lives in `authorizeOrganizations`: an undeclared crossing is no longer admitted, and the caller is
|
|
2692
|
+
* answered as not-found so the response cannot be used as an existence oracle. Emission here stays
|
|
2039
2693
|
* best-effort and never blocks the request: an operator action must not fail because the audit sink
|
|
2040
2694
|
* is down, and a fail-closed variant would let anyone disable operator support by breaking the sink.
|
|
2695
|
+
* The observation is taken BEFORE the admission decision, on purpose, so a sanctioned crossing is
|
|
2696
|
+
* recorded too.
|
|
2041
2697
|
*
|
|
2042
2698
|
* ## Reading the event
|
|
2043
2699
|
*
|
|
2044
2700
|
* {@link admissionDeclared} is the field that matters most. `true` means the operation VARIANT
|
|
2045
2701
|
* declared `admitsCrossTenantPlatformAdministration` — an intended, reviewed crossing such as
|
|
2046
|
-
* `organizationMembers.grantOwnership
|
|
2047
|
-
*
|
|
2702
|
+
* `organizationMembers.grantOwnership`, which additionally requires a usable platform access grant.
|
|
2703
|
+
* `false` now means an ATTEMPTED undeclared crossing, which was refused: still the population to
|
|
2704
|
+
* watch, because it is reach nobody declared and no specification describes.
|
|
2048
2705
|
*
|
|
2049
2706
|
* assurance-control: WILDO.ACCESS.CROSS_TENANT_ADMINISTRATION — platform-tier access to a tenant the
|
|
2050
2707
|
* principal does not belong to.
|
|
@@ -2076,8 +2733,25 @@ export const AuditableEvent_PlatformAccessGrantLifecycle_EventDataSchema = z.obj
|
|
|
2076
2733
|
transition: z.enum(PlatformAccessGrantLifecycleTransition),
|
|
2077
2734
|
/** The grant, so the whole timeline can be reassembled from its rows. */
|
|
2078
2735
|
grantId: z.string(),
|
|
2079
|
-
/**
|
|
2080
|
-
|
|
2736
|
+
/**
|
|
2737
|
+
* WHAT the elevation reaches, and therefore who was entitled to approve it.
|
|
2738
|
+
*
|
|
2739
|
+
* Carried explicitly rather than inferred from the presence of `targetOrganizationId`: a reviewer
|
|
2740
|
+
* asking "was this approved by the party the rules require?" needs the SCOPE, and deriving it from
|
|
2741
|
+
* a field's absence would make a lost or scrubbed value read as an application-wide elevation.
|
|
2742
|
+
*
|
|
2743
|
+
* `TENANT` is the default so every row written before this axis existed keeps its true meaning —
|
|
2744
|
+
* the application-wide grant did not exist then.
|
|
2745
|
+
*/
|
|
2746
|
+
grantScope: z.enum(PlatformAccessGrantScope).default(PlatformAccessGrantScope.TENANT),
|
|
2747
|
+
/**
|
|
2748
|
+
* The tenant that was, or would have been, reached into.
|
|
2749
|
+
*
|
|
2750
|
+
* OPTIONAL since the application-wide scope arrived: that grant names no tenant, and writing a
|
|
2751
|
+
* placeholder would be a lie about which customer an operator reached. Absent ⇔
|
|
2752
|
+
* `grantScope === APPLICATION_WIDE`.
|
|
2753
|
+
*/
|
|
2754
|
+
targetOrganizationId: z.string().optional(),
|
|
2081
2755
|
/** The operator who asked. Never the decider — see {@link decidedByUserId}. */
|
|
2082
2756
|
operatorUserId: z.string(),
|
|
2083
2757
|
/** Why the operator said they needed access. Recorded on every transition, not only the request. */
|
|
@@ -2119,11 +2793,20 @@ export const AuditableEvent_CrossTenantAdministrativeAccess_EventDataSchema = z.
|
|
|
2119
2793
|
* and on any crossing admitted before grants were required.
|
|
2120
2794
|
*/
|
|
2121
2795
|
authorizingGrantId: z.string().optional(),
|
|
2796
|
+
/**
|
|
2797
|
+
* WHICH COLLECTION {@link authorizingGrantId} names.
|
|
2798
|
+
*
|
|
2799
|
+
* A grant id alone is not resolvable: `platformAccessGrants` and `applicationAccessGrants` are two
|
|
2800
|
+
* resources with two collections, and a reviewer handed only an id has to try both. Absent exactly
|
|
2801
|
+
* when `authorizingGrantId` is.
|
|
2802
|
+
*/
|
|
2803
|
+
authorizingGrantScope: z.enum(PlatformAccessGrantScope).optional(),
|
|
2122
2804
|
/**
|
|
2123
2805
|
* Did the operation variant DECLARE this crossing (`admitsCrossTenantPlatformAdministration`)?
|
|
2124
2806
|
*
|
|
2125
|
-
* `false` is the signal worth alerting on:
|
|
2126
|
-
* describes.
|
|
2807
|
+
* `false` is the signal worth alerting on: an ATTEMPTED crossing that no variant asked for and no
|
|
2808
|
+
* specification describes. It was refused, so the row records an attempt rather than a completed
|
|
2809
|
+
* access. See this schema's JSDoc.
|
|
2127
2810
|
*/
|
|
2128
2811
|
admissionDeclared: z.boolean(),
|
|
2129
2812
|
/** The caller's roles as they were at decision time. */
|
|
@@ -2166,6 +2849,21 @@ export const AuditableEvent_PlatformDirectoryAccess_EventDataSchema = z.object({
|
|
|
2166
2849
|
initiatorRoles: z.array(z.string()),
|
|
2167
2850
|
/** How the call was initiated — separates a human operator from framework machinery. */
|
|
2168
2851
|
executionType: z.enum(ExecutionContext_ExecutionType),
|
|
2852
|
+
/**
|
|
2853
|
+
* The application-wide elevation that authorised this directory read.
|
|
2854
|
+
*
|
|
2855
|
+
* Until 2026-09-09 this event named NO elevation, because none was required — the read was gated on
|
|
2856
|
+
* an administrator role alone while the far narrower per-row crossing required a usable, time-bound,
|
|
2857
|
+
* approved grant. That inversion is what `applicationAccessGrants` closes, and this field is the
|
|
2858
|
+
* evidence half of the closure: it is what joins a directory read to the two administrators who
|
|
2859
|
+
* signed for it.
|
|
2860
|
+
*
|
|
2861
|
+
* Absent on a read the admission does not gate — an exempt execution type (batch, webhook), or a
|
|
2862
|
+
* read the confinement authority confined, neither of which is an elevation.
|
|
2863
|
+
*/
|
|
2864
|
+
authorizingGrantId: z.string().optional(),
|
|
2865
|
+
/** WHICH collection {@link authorizingGrantId} names. Absent exactly when it is. */
|
|
2866
|
+
authorizingGrantScope: z.enum(PlatformAccessGrantScope).optional(),
|
|
2169
2867
|
});
|
|
2170
2868
|
export const AuditableEvent_ResourceOperationDenied_EventDataSchema = z.object({
|
|
2171
2869
|
eventType: z.literal(CoreAuditableEventType.RESOURCE_OPERATION_DENIED),
|
|
@@ -2236,22 +2934,24 @@ export const AuditableEvent_ResourceOperationDenied_EventDataSchema = z.object({
|
|
|
2236
2934
|
* that scrubbed data, and its two defining properties (vs `SYSTEM_CONTEXT_READ`, which names only the
|
|
2237
2935
|
* RUNTIME that acted, never a human) are:
|
|
2238
2936
|
*
|
|
2239
|
-
* 1. **Human attribution** — `accessingUserId` names the actual
|
|
2240
|
-
*
|
|
2241
|
-
*
|
|
2937
|
+
* 1. **Human attribution** — `accessingUserId` names the actual human who exercised the see-through,
|
|
2938
|
+
* so a retained-data reveal is never anonymous. Non-empty (`.trim().min(1)`) — a blank id cannot
|
|
2939
|
+
* stand in for a human. The gate admits `APP_ADMIN_SUPER_ADMIN` and nothing else; a dedicated
|
|
2940
|
+
* auditor role does not exist yet, and adding one is a purely additive change to that gate.
|
|
2242
2941
|
* 2. **A required reason** — `reason` is the mandatory justification for revealing scrubbed PII.
|
|
2243
2942
|
* Non-empty (`.trim().min(1)`): a blank OR whitespace-only reason fails validation, so the audit
|
|
2244
2943
|
* trail cannot record a reveal without a real "why". The see-through primitives ALSO fail-closed on
|
|
2245
2944
|
* blank attribution before the read (the schema `.min(1)` is the contract; the primitive guard is
|
|
2246
2945
|
* the enforcement point, since the audit store persists `eventData` as an unparsed record).
|
|
2247
2946
|
*
|
|
2248
|
-
* Strictly read-only (the see-through primitive never mutates). Emitted by
|
|
2249
|
-
*
|
|
2250
|
-
* contract
|
|
2947
|
+
* Strictly read-only (the see-through primitive never mutates). Emitted TODAY by both see-through
|
|
2948
|
+
* read primitives, `readRetainedAsSystem` and `listRetainedAsSystem`: each calls
|
|
2949
|
+
* `logRetainedDataAccess` after its gates pass, so this is a live event, not a contract awaiting a
|
|
2950
|
+
* producer.
|
|
2251
2951
|
*/
|
|
2252
2952
|
export const AuditableEvent_RetainedDataAccess_EventDataSchema = z.object({
|
|
2253
2953
|
eventType: z.literal(CoreAuditableEventType.RETAINED_DATA_ACCESS),
|
|
2254
|
-
/** The HUMAN principal who performed the see-through read (super-
|
|
2954
|
+
/** The HUMAN principal who performed the see-through read (an application super-administrator). Non-empty. */
|
|
2255
2955
|
accessingUserId: z.string().trim().min(1),
|
|
2256
2956
|
/** REQUIRED non-empty compliance justification for revealing the retained (scrubbed) records — the "why". */
|
|
2257
2957
|
reason: z.string().trim().min(1),
|
|
@@ -2363,6 +3063,145 @@ export const AuditableEvent_CollectionDataExport_EventDataSchema = z.object({
|
|
|
2363
3063
|
/** Tenant scope, when the export ran org-scoped. */
|
|
2364
3064
|
organizationId: z.string().optional(),
|
|
2365
3065
|
});
|
|
3066
|
+
/**
|
|
3067
|
+
* The application CALLED a declared operation on a third-party provider (S3a/S3b; see the enum
|
|
3068
|
+
* member's docstring for why this is neither an HTTP_API read-through nor a credential-use event).
|
|
3069
|
+
*
|
|
3070
|
+
* One event per OUTBOUND CALL, emitted on both the success and the failure path. Recording only
|
|
3071
|
+
* what worked would hide the attempts, and a refused or failed outbound call is exactly what a
|
|
3072
|
+
* reviewer wants to see first.
|
|
3073
|
+
*
|
|
3074
|
+
* Ids and SHAPE only, never a payload. There is no field for the request body, the response body or
|
|
3075
|
+
* the credential — a structural property of this schema rather than a redaction step somebody has to
|
|
3076
|
+
* remember, for the same reason the credential family carries no value field.
|
|
3077
|
+
*
|
|
3078
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — records WHOSE third-party account
|
|
3079
|
+
* an outbound call spent, which the initiator's own ids cannot answer once one execution may spend
|
|
3080
|
+
* several.
|
|
3081
|
+
*/
|
|
3082
|
+
export const AuditableEvent_ProviderOperationCall_EventDataSchema = z.object({
|
|
3083
|
+
eventType: z.literal(CoreAuditableEventType.PROVIDER_OPERATION_CALL),
|
|
3084
|
+
/** The provider whose catalogue declared the operation (e.g. `slack`). */
|
|
3085
|
+
providerRef: z.string().trim().min(1),
|
|
3086
|
+
/** The operation id as the catalogue declares it. */
|
|
3087
|
+
operationId: z.string().trim().min(1),
|
|
3088
|
+
/** The catalogue domain the operation belongs to. */
|
|
3089
|
+
domain: z.string().trim().min(1),
|
|
3090
|
+
/** The HTTP method the compiled request used. */
|
|
3091
|
+
method: z.string().trim().min(1),
|
|
3092
|
+
/** `READ` | `WRITE`, as the operation declares its effect — the axis a reviewer filters on first. */
|
|
3093
|
+
classification: z.string().trim().min(1),
|
|
3094
|
+
/**
|
|
3095
|
+
* WHOSE ACCOUNT the call spent: `application` | `organization` | `user`.
|
|
3096
|
+
*
|
|
3097
|
+
* Deliberately separate from `organizationId` below, which records the tenant the REQUEST was
|
|
3098
|
+
* scoped to. Those are the same tenant in the ordinary case and different ones exactly where it
|
|
3099
|
+
* matters — a trail carrying only the initiator's organization would attribute a fan-out's calls
|
|
3100
|
+
* to the wrong tenants.
|
|
3101
|
+
*/
|
|
3102
|
+
connectionOwnerScope: z.string().trim().min(1),
|
|
3103
|
+
/** The owner's id, absent for an application-owned call which names no second party. */
|
|
3104
|
+
connectionOwnerId: z.string().optional(),
|
|
3105
|
+
/** `service` | `user` — whether the call acted for the owner itself or on a person's delegation. */
|
|
3106
|
+
connectionDelegation: z.string().trim().min(1),
|
|
3107
|
+
/** HTTP status of the answer; absent when the call never got one. */
|
|
3108
|
+
status: z.number().int().optional(),
|
|
3109
|
+
/** Present when the call failed, naming the failure KIND rather than the vendor's prose. */
|
|
3110
|
+
failureKind: z.string().optional(),
|
|
3111
|
+
/** The REAL initiating user — absent only for genuine machine/internal executions. */
|
|
3112
|
+
initiatorUserId: z.string().optional(),
|
|
3113
|
+
/** The execution type that acted, for the machine/internal cases. */
|
|
3114
|
+
executionType: z.string().optional(),
|
|
3115
|
+
/** The tenant the REQUEST was scoped to — see `connectionOwnerScope`. */
|
|
3116
|
+
organizationId: z.string().optional(),
|
|
3117
|
+
});
|
|
3118
|
+
/**
|
|
3119
|
+
* An agent reached an MCP server — the outbound trail for a tool call that leaves the trust
|
|
3120
|
+
* boundary (#491).
|
|
3121
|
+
*
|
|
3122
|
+
* One event per ATTEMPT, successful or not. Recording only what worked would hide exactly what a
|
|
3123
|
+
* reviewer wants first: the refused targets, the calls that timed out, and the tools that answered
|
|
3124
|
+
* with their own error. `outcome` names which of those it was, in the client's own vocabulary, so
|
|
3125
|
+
* the trail and the logs agree on the words.
|
|
3126
|
+
*
|
|
3127
|
+
* Ids, HOST and SHAPE only — never a payload. There is no field for the tool arguments, the tool
|
|
3128
|
+
* result or the credential. That is a structural property of this schema rather than a redaction
|
|
3129
|
+
* step somebody has to remember, the same choice the provider-call and credential families make.
|
|
3130
|
+
* `destinationHost` and not the URL, because an MCP endpoint routinely carries a tenant or session
|
|
3131
|
+
* identifier in its path.
|
|
3132
|
+
*
|
|
3133
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — records WHOSE third-party account
|
|
3134
|
+
* an agent's tool call spent, which the initiator's own ids cannot answer once one turn may spend
|
|
3135
|
+
* either the person's or the tenant's.
|
|
3136
|
+
*/
|
|
3137
|
+
export const AuditableEvent_McpToolCall_EventDataSchema = z.object({
|
|
3138
|
+
eventType: z.literal(CoreAuditableEventType.MCP_TOOL_CALL),
|
|
3139
|
+
/** The server ref the application declared and the agent named. */
|
|
3140
|
+
mcpServerRef: z.string().trim().min(1),
|
|
3141
|
+
/** HOST only — see the docstring for why never the URL. */
|
|
3142
|
+
destinationHost: z.string().trim().min(1),
|
|
3143
|
+
/** The tool called. Absent when the attempt failed before any tool was chosen (discovery). */
|
|
3144
|
+
toolName: z.string().optional(),
|
|
3145
|
+
/** The client's outcome kind — `ok`, `refused_target`, `unreachable`, `timed_out`, `protocol_error`, `tool_error`. */
|
|
3146
|
+
outcome: z.string().trim().min(1),
|
|
3147
|
+
/**
|
|
3148
|
+
* WHOSE ACCOUNT the call spent: `user` | `organization`. Absent when no credential was resolved,
|
|
3149
|
+
* which is itself the reason the attempt failed.
|
|
3150
|
+
*
|
|
3151
|
+
* Separate from `organizationId` for the same reason as the provider-call event: those are the
|
|
3152
|
+
* same tenant in the ordinary case, and different ones exactly where it matters.
|
|
3153
|
+
*/
|
|
3154
|
+
connectionOwnerScope: z.string().optional(),
|
|
3155
|
+
/** The credential row that was spent, for the audit trail. */
|
|
3156
|
+
credentialId: z.string().optional(),
|
|
3157
|
+
/** The REAL initiating user — absent only for genuine machine/internal executions. */
|
|
3158
|
+
initiatorUserId: z.string().optional(),
|
|
3159
|
+
/** The tenant the turn was scoped to — see `connectionOwnerScope`. */
|
|
3160
|
+
organizationId: z.string().optional(),
|
|
3161
|
+
/** The agent whose declaration named the server, so a trail can be read back to a configuration. */
|
|
3162
|
+
agentRef: z.string().optional(),
|
|
3163
|
+
});
|
|
3164
|
+
/**
|
|
3165
|
+
* A human approver AUTHORED the arguments an approval-gated tool ran with (#566).
|
|
3166
|
+
*
|
|
3167
|
+
* One row per MODIFIED approval — never per approval. See the enum member's docstring for why an
|
|
3168
|
+
* ordinary approval is not this event, and for why no argument VALUE appears in this schema.
|
|
3169
|
+
*
|
|
3170
|
+
* `proposedInputDigest` / `executedInputDigest` are the model SDK's own canonical input digests, the
|
|
3171
|
+
* same values its approval signature is computed over. That is what makes them evidence rather than
|
|
3172
|
+
* a convenience: a reader holding the executed call can recompute the second and see it match, and
|
|
3173
|
+
* the two differing is proof that the call which ran is not the call which was proposed — with no
|
|
3174
|
+
* copy of either payload on the trail.
|
|
3175
|
+
*
|
|
3176
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — records that an authorization
|
|
3177
|
+
* decision REWROTE the act it authorized, and who made it.
|
|
3178
|
+
*/
|
|
3179
|
+
export const AuditableEvent_AgentToolApprovalModified_EventDataSchema = z.object({
|
|
3180
|
+
eventType: z.literal(CoreAuditableEventType.AGENT_TOOL_APPROVAL_MODIFIED),
|
|
3181
|
+
/** The conversational execution whose turn was paused. */
|
|
3182
|
+
executionId: z.string().trim().min(1),
|
|
3183
|
+
/** The pending decision's id — correlates this row with the pause and the resume in the logs. */
|
|
3184
|
+
approvalId: z.string().trim().min(1),
|
|
3185
|
+
/** The actor system the turn belongs to. */
|
|
3186
|
+
systemRef: z.string().trim().min(1),
|
|
3187
|
+
/** The agent whose declaration gated the tool, so a trail reads back to a configuration. */
|
|
3188
|
+
agentRef: z.string().trim().min(1),
|
|
3189
|
+
/** The approval-gated tool, as the model was shown it. */
|
|
3190
|
+
toolName: z.string().trim().min(1),
|
|
3191
|
+
/** Canonical digest of the arguments the MODEL proposed. */
|
|
3192
|
+
proposedInputDigest: z.string().trim().min(1),
|
|
3193
|
+
/** Canonical digest of the arguments that actually RAN. Differs from the above by construction. */
|
|
3194
|
+
executedInputDigest: z.string().trim().min(1),
|
|
3195
|
+
/**
|
|
3196
|
+
* The argument NAMES the approver changed, sorted. Names only — a field name is not personal data,
|
|
3197
|
+
* which is exactly why it is always safe and always recorded.
|
|
3198
|
+
*/
|
|
3199
|
+
modifiedArgumentKeys: z.array(z.string()),
|
|
3200
|
+
/** The approver. Absent never happens on this plane — only a present human can answer — but the envelope owns the field. */
|
|
3201
|
+
approverUserId: z.string().optional(),
|
|
3202
|
+
/** The tenant the turn was scoped to. */
|
|
3203
|
+
organizationId: z.string().optional(),
|
|
3204
|
+
});
|
|
2366
3205
|
/**
|
|
2367
3206
|
* Rows were read THROUGH an HTTP-API resource binding — the read-through trail for data living in
|
|
2368
3207
|
* an EXTERNAL system the platform does not own (ETL plan D8/R6; see the enum member's docstring
|
|
@@ -2861,6 +3700,10 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
|
|
|
2861
3700
|
AuditableEvent_User_TokenRefreshedEventDataSchema,
|
|
2862
3701
|
AuditableEvent_Organization_SSOConfigurationChangedEventDataSchema,
|
|
2863
3702
|
AuditableEvent_Organization_SIEMExportConfiguredEventDataSchema,
|
|
3703
|
+
AuditableEvent_OrganizationProviderCredential_SetEventDataSchema,
|
|
3704
|
+
AuditableEvent_OrganizationProviderCredential_RotatedEventDataSchema,
|
|
3705
|
+
AuditableEvent_OrganizationProviderCredential_UsedEventDataSchema,
|
|
3706
|
+
AuditableEvent_OrganizationProviderCredential_DeletedEventDataSchema,
|
|
2864
3707
|
AuditableEvent_ApplicationAuthPolicyChanged_EventDataSchema,
|
|
2865
3708
|
AuditableEvent_Webhook_EndpointTestDispatchedEventDataSchema,
|
|
2866
3709
|
AuditableEvent_SCIM_TokenCreatedEventDataSchema,
|
|
@@ -2881,6 +3724,7 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
|
|
|
2881
3724
|
AuditableEvent_User_PasskeyAuthSuccessEventDataSchema,
|
|
2882
3725
|
AuditableEvent_User_PasskeyAuthFailureEventDataSchema,
|
|
2883
3726
|
AuditableEvent_User_PasskeyRemovedEventDataSchema,
|
|
3727
|
+
AuditableEvent_User_PasskeyCloneSuspectedEventDataSchema,
|
|
2884
3728
|
AuditableEvent_User_MagicLinkSentEventDataSchema,
|
|
2885
3729
|
AuditableEvent_User_MagicLinkVerifiedEventDataSchema,
|
|
2886
3730
|
AuditableEvent_User_MagicLinkFailedEventDataSchema,
|
|
@@ -2890,6 +3734,7 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
|
|
|
2890
3734
|
AuditableEvent_User_PhoneVerifiedEventDataSchema,
|
|
2891
3735
|
AuditableEvent_User_PhoneVerificationFailedEventDataSchema,
|
|
2892
3736
|
AuditableEvent_OAuth2ProviderBlockedEventDataSchema,
|
|
3737
|
+
AuditableEvent_OidcAcrDemandUnsatisfiedEventDataSchema,
|
|
2893
3738
|
AuditableEvent_EmergencyAccess_UsedEventDataSchema,
|
|
2894
3739
|
AuditableEvent_FieldAccess_EventDataSchema,
|
|
2895
3740
|
AuditableEvent_ResourceOperationPerformed_EventDataSchema,
|
|
@@ -2902,6 +3747,7 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
|
|
|
2902
3747
|
AuditableEvent_CollectionDataExport_EventDataSchema,
|
|
2903
3748
|
AuditableEvent_User_SessionEvictedEventDataSchema,
|
|
2904
3749
|
AuditableEvent_HttpApiReadThroughAccess_EventDataSchema,
|
|
3750
|
+
AuditableEvent_ProviderOperationCall_EventDataSchema,
|
|
2905
3751
|
AuditableEvent_HttpApiExternalErasure_EventDataSchema,
|
|
2906
3752
|
AuditableEvent_HttpApiNonErasureAcknowledged_EventDataSchema,
|
|
2907
3753
|
AuditableEvent_User_CrossFrontendHandoffIssuedEventDataSchema,
|