@wildo-ai/saas-models 1.1.3 → 1.1.5
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/applications/application-metadata.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.js +2 -2
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications-context.schemas.d.ts +236 -18
- package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.js +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.d.ts +3 -2
- package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.js +40 -5
- package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +1 -2
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.js +1 -2
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts +87 -5
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.js +91 -5
- package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.d.ts +25 -4
- package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.js +61 -0
- package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
- package/dist/esm/billing/price.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/price.shared.resources-config.schemas.js +32 -2
- package/dist/esm/billing/price.shared.resources-config.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 +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.resources-config.schemas.js +32 -2
- package/dist/esm/billing/product.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/product.shared.schemas.d.ts +1 -0
- package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.schemas.js +3 -0
- 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.resources-config.schemas.js +33 -3
- package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.resources-config.schemas.js +22 -2
- package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.d.ts +1 -0
- package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.js +3 -0
- package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +23 -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 +48 -2
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.d.ts +1 -0
- package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.js +3 -0
- package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts +49 -0
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts.map +1 -0
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.js +48 -0
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.js.map +1 -0
- package/dist/esm/billing/usage-record.shared.schemas.d.ts +1 -0
- package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.js +3 -0
- package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +8 -0
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +14 -3
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js +21 -7
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts +450 -0
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js +723 -0
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +2 -2
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +8 -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 +15 -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 +787 -21
- 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 +1079 -26
- 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 +51 -0
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts +463 -0
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js +526 -0
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts +539 -15
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.js +402 -14
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.d.ts +18 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js +89 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts +47 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js +73 -0
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts +21 -0
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js +39 -1
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.d.ts +33 -0
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js +30 -0
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js.map +1 -0
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts +6 -5
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.js +15 -5
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.d.ts +127 -0
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js +94 -0
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts +125 -0
- package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/consent-purposes.shared.js +136 -0
- package/dist/esm/compliance/privacy/consent-purposes.shared.js.map +1 -0
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts +91 -0
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js +123 -0
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts +27 -0
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/operating-jurisdictions.shared.schemas.js +36 -2
- 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 +68 -25
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js +74 -22
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts +9 -17
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js +74 -31
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts +47 -0
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js +98 -0
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts +368 -35
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js +403 -17
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/review-cadence.shared.schemas.d.ts +56 -0
- package/dist/esm/compliance/review-cadence.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/review-cadence.shared.schemas.js +71 -0
- package/dist/esm/compliance/review-cadence.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/risk-posture.shared.schemas.d.ts +161 -0
- package/dist/esm/compliance/risk-posture.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/risk-posture.shared.schemas.js +166 -0
- package/dist/esm/compliance/risk-posture.shared.schemas.js.map +1 -0
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts +4 -3
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.js +4 -3
- package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +222 -9
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.js +232 -9
- package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts +75 -3
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.js +93 -4
- package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
- package/dist/esm/config/brand-assets.shared.schemas.d.ts +5 -4
- package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/brand-assets.shared.schemas.js +14 -4
- package/dist/esm/config/brand-assets.shared.schemas.js.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +463 -19
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.js +535 -28
- package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +14 -14
- 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 +21 -17
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.js +58 -40
- package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts +90 -133
- package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/onboarding.shared.schemas.js +148 -100
- package/dist/esm/config/frontend/onboarding.shared.schemas.js.map +1 -1
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +146 -43
- 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 +147 -42
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
- package/dist/esm/errors/errors.shared.definitions.js +1 -1
- package/dist/esm/errors/errors.shared.definitions.js.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.d.ts +29 -40
- package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.js +37 -54
- package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
- package/dist/esm/errors/errors.shared.utils.d.ts +24 -0
- package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.utils.js +39 -0
- package/dist/esm/errors/errors.shared.utils.js.map +1 -1
- package/dist/esm/errors/thrown-value-description.shared.utils.d.ts +27 -0
- package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -0
- package/dist/esm/errors/thrown-value-description.shared.utils.js +67 -0
- package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -0
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +48 -73
- 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 +103 -9
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
- package/dist/esm/external-data.exports.d.ts +1 -0
- package/dist/esm/external-data.exports.d.ts.map +1 -1
- package/dist/esm/external-data.exports.js +1 -0
- package/dist/esm/external-data.exports.js.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +18 -12
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +18 -12
- 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 +5 -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 +5 -3
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js.map +1 -1
- package/dist/esm/external-providers/engine-capability-surface.shared.d.ts +77 -0
- package/dist/esm/external-providers/engine-capability-surface.shared.d.ts.map +1 -0
- package/dist/esm/external-providers/engine-capability-surface.shared.js +173 -0
- package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -0
- package/dist/esm/external-providers/external-providers.shared.schemas.d.ts +2 -0
- package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/external-providers.shared.schemas.js +21 -0
- package/dist/esm/external-providers/external-providers.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +131 -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 +114 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js +148 -0
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +108 -0
- 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 +86 -0
- 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 +184 -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 +216 -0
- package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -0
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts +30 -0
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js +32 -0
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts +86 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js +85 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +14 -13
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.js +10 -10
- 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 +18 -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 +10 -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 +7 -5
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js +7 -5
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts +8 -5
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js +5 -2
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
- package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts +2 -0
- 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 +42 -3
- package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/features/connected-feature.example.d.ts +64 -0
- package/dist/esm/features/connected-feature.example.d.ts.map +1 -0
- package/dist/esm/features/connected-feature.example.js +86 -0
- package/dist/esm/features/connected-feature.example.js.map +1 -0
- package/dist/esm/features/scope-features.shared.schemas.d.ts +53 -0
- package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/scope-features.shared.schemas.js +37 -0
- package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +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 +42 -48
- 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/files.shared.resources-config.schemas.d.ts +3 -3
- package/dist/esm/files/files.shared.resources-config.schemas.js +3 -3
- package/dist/esm/files/files.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts +152 -129
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js +99 -2
- package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts +6 -0
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts +3 -3
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.js +11 -5
- package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts +13 -0
- package/dist/esm/flows-actors/deliberation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/deliberation.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.d.ts +45 -0
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.d.ts.map +1 -0
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js +51 -0
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js.map +1 -0
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +31 -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 +61 -3
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts +2 -2
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +16 -8
- 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 +23 -11
- 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 +0 -189
- package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js +14 -50
- package/dist/esm/flows-actors/flows-actors.configuration.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts +0 -3
- package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js +0 -1
- package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts +1 -67
- 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 +1 -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 +0 -1
- package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts +121 -0
- package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/human-decision.shared.schemas.js +252 -0
- package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts +2 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js +13 -0
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts +24 -0
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js +80 -0
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts +123 -0
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.js +181 -0
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts +58 -81
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.js +75 -38
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.js.map +1 -1
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts +217 -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 +230 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -0
- package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts +106 -24
- package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-flow.shared.schemas.js +152 -14
- package/dist/esm/guidance/guidance-flow.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts +0 -6
- package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js +0 -19
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/milestone-builders.shared.d.ts +4 -2
- package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
- package/dist/esm/guidance/milestone-builders.shared.js +4 -2
- package/dist/esm/guidance/milestone-builders.shared.js.map +1 -1
- package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts +66 -4
- package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/milestone-definition.shared.schemas.js +50 -0
- package/dist/esm/guidance/milestone-definition.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts +71 -0
- package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts.map +1 -0
- package/dist/esm/guidance/progression-presentation.shared.schemas.js +72 -0
- package/dist/esm/guidance/progression-presentation.shared.schemas.js.map +1 -0
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts +2 -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 +4 -0
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.js +5 -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-id.shared.utils.js +2 -1
- package/dist/esm/http-api-binding/http-api-binding-id.shared.utils.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.d.ts +181 -412
- 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 +249 -199
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts +107 -0
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts.map +1 -0
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js +108 -0
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -0
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts +38 -0
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts.map +1 -0
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js +42 -0
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js.map +1 -0
- package/dist/esm/index.d.ts +47 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +77 -16
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts +130 -0
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js +104 -0
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/decisions.meta-workflows.shared.schemas.d.ts +64 -0
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/decisions.meta-workflows.shared.schemas.js +47 -0
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +544 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js +638 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/portable-primitives.meta-workflows.shared.schemas.d.ts +15 -8
- package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -0
- package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/portable-primitives.meta-workflows.shared.schemas.js +15 -8
- package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +1 -0
- package/dist/esm/meta-workflows.exports.d.ts +21 -25
- package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
- package/dist/esm/meta-workflows.exports.js +21 -25
- package/dist/esm/meta-workflows.exports.js.map +1 -1
- package/dist/esm/notifications/email/email-submission.shared.enums.d.ts +16 -0
- package/dist/esm/notifications/email/email-submission.shared.enums.d.ts.map +1 -0
- package/dist/esm/notifications/email/email-submission.shared.enums.js +17 -0
- package/dist/esm/notifications/email/email-submission.shared.enums.js.map +1 -0
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +36 -0
- 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 +50 -3
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.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.resources-config.schemas.js +4 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts +2 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js +3 -2
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-log.shared.schemas.js.map +1 -1
- 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 +44 -3
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js +12 -33
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.d.ts +68 -6
- package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.js +68 -6
- package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts +145 -0
- package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/application-owner-organization.shared.schemas.js +146 -0
- package/dist/esm/organizations/application-owner-organization.shared.schemas.js.map +1 -0
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts +2 -0
- 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 +39 -3
- 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 +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js +18 -14
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.d.ts +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.js +9 -1
- package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts +2 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.js +3 -0
- package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +3 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.js +4 -2
- package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts +29 -2
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.js +27 -0
- package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts +2 -0
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js +3 -0
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-units.shared.schemas.d.ts +17 -5
- package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-units.shared.schemas.js +65 -5
- package/dist/esm/organizations/organization-units.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts +51 -7
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +151 -7
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.d.ts +18 -83
- package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.js +37 -19
- package/dist/esm/organizations/organizations.shared.schemas.js.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 +1 -0
- package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
- package/dist/esm/provider-registration-runtime.exports.js +1 -0
- package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
- package/dist/esm/public-runtime/index.d.ts +53 -2
- package/dist/esm/public-runtime/index.d.ts.map +1 -1
- package/dist/esm/public-runtime/index.js +45 -2
- package/dist/esm/public-runtime/index.js.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts +7 -8
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js +30 -6
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.d.ts +388 -2
- package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.js +315 -11
- package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.utils.d.ts +6 -4
- package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.utils.js +5 -4
- package/dist/esm/queue/jobs.shared.utils.js.map +1 -1
- package/dist/esm/queue/queues.shared.schemas.d.ts +20 -8
- package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/queues.shared.schemas.js +23 -18
- package/dist/esm/queue/queues.shared.schemas.js.map +1 -1
- package/dist/esm/queue/queues.shared.utils.d.ts +4 -2
- package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
- package/dist/esm/queue/queues.shared.utils.js +4 -2
- package/dist/esm/queue/queues.shared.utils.js.map +1 -1
- package/dist/esm/rag/rag-retrieval-health.shared.d.ts +27 -0
- package/dist/esm/rag/rag-retrieval-health.shared.d.ts.map +1 -0
- package/dist/esm/rag/rag-retrieval-health.shared.js +29 -0
- package/dist/esm/rag/rag-retrieval-health.shared.js.map +1 -0
- package/dist/esm/requests/header-keys.shared.d.ts +6 -0
- package/dist/esm/requests/header-keys.shared.d.ts.map +1 -1
- package/dist/esm/requests/header-keys.shared.js +7 -0
- package/dist/esm/requests/header-keys.shared.js.map +1 -1
- package/dist/esm/requests/idempotency-key.shared.d.ts +76 -0
- package/dist/esm/requests/idempotency-key.shared.d.ts.map +1 -0
- package/dist/esm/requests/idempotency-key.shared.js +112 -0
- package/dist/esm/requests/idempotency-key.shared.js.map +1 -0
- package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-documentation.js +275 -20
- package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts +134 -0
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.js +153 -0
- package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.d.ts +198 -20
- package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.js +236 -5
- package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
- package/dist/esm/resources/child-operations.shared.schemas.d.ts +56 -5
- package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/child-operations.shared.schemas.js +97 -5
- package/dist/esm/resources/child-operations.shared.schemas.js.map +1 -1
- package/dist/esm/resources/context-policy.shared.schemas.d.ts +20 -0
- package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/context-policy.shared.schemas.js +3 -0
- package/dist/esm/resources/context-policy.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.factory.js +596 -34
- package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.d.ts +665 -40
- package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.js +315 -22
- 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 +431 -69
- package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.d.ts +36 -0
- package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.js +46 -0
- package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.d.ts +256 -10
- package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.js +209 -9
- package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources.shared.utils.d.ts +34 -8
- package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.utils.js +69 -12
- package/dist/esm/resources/resources.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts +44 -12
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.js +46 -23
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.js.map +1 -1
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts +61 -0
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts.map +1 -0
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js +79 -0
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js.map +1 -0
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts +60 -0
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts.map +1 -0
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js +80 -0
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js.map +1 -0
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts +21 -0
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.js +159 -0
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -0
- package/dist/esm/resources/utils/resources-config-naming.utils.d.ts +15 -0
- package/dist/esm/resources/utils/resources-config-naming.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-naming.utils.js +56 -11
- package/dist/esm/resources/utils/resources-config-naming.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.d.ts +51 -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.dtos-builder.utils.js +210 -51
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts +34 -0
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js +45 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts +29 -0
- package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js +30 -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/resources/utils/templatable-file-fields.shared.utils.js +49 -11
- package/dist/esm/resources/utils/templatable-file-fields.shared.utils.js.map +1 -1
- 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 +4 -1
- 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.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +4 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +129 -17
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +160 -6
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts +324 -9
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.js +411 -8
- package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.utils.d.ts +87 -4
- package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.utils.js +95 -6
- package/dist/esm/security/authentications/authentication.shared.utils.js.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts +23 -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 +23 -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 +7 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js +7 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts +74 -0
- package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts.map +1 -0
- package/dist/esm/security/authentications/password-blocklist.shared.utils.js +122 -0
- package/dist/esm/security/authentications/password-blocklist.shared.utils.js.map +1 -0
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts +88 -2
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js +149 -2
- 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 +57 -11
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js +44 -11
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js.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.resources-config.schemas.js +20 -7
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-provisioning-config.shared.schemas.d.ts +16 -2
- 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 +32 -2
- 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.resources-config.schemas.js +7 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.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.resources-config.schemas.js +4 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts +27 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js +109 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts +66 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js +107 -0
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js.map +1 -0
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts +19 -0
- 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.resources-config.schemas.js +50 -13
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts +18 -6
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js +133 -4
- package/dist/esm/security/authentications/siem/siem-export-config.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.d.ts +29 -3
- 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 +81 -22
- 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 +0 -40
- 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 +100 -26
- 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 +9 -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.resources-config.schemas.js +9 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/sso/sso-connection.shared.schemas.d.ts +8 -2
- 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 +91 -4
- 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 +50 -6
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +50 -6
- 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 +39 -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 +265 -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 +187 -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 +271 -0
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -0
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts +23 -0
- 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 +24 -0
- 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.defaults.js +6 -0
- package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +14 -0
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.js +19 -0
- package/dist/esm/security/authorizations/roles.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.utils.js +2 -0
- package/dist/esm/security/authorizations/roles.shared.utils.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +4 -1
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +5 -2
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js +13 -42
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts +257 -13
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js +281 -49
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts +6 -3
- 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 +74 -4
- 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 +5 -2
- 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 +105 -3
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/outbound-target-control.shared.schemas.d.ts +67 -0
- package/dist/esm/security/outbound-target-control.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/outbound-target-control.shared.schemas.js +69 -0
- package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts +159 -0
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js +164 -0
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts +209 -0
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js +150 -0
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts +79 -0
- package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-env.shared.js +116 -0
- package/dist/esm/systems-of-record/system-of-record-env.shared.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts +145 -0
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js +146 -0
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts +478 -0
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js +619 -0
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts +31 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js +232 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts +127 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js +204 -0
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js.map +1 -0
- package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
- package/dist/esm/testing/resource-config-builders.js +10 -4
- package/dist/esm/testing/resource-config-builders.js.map +1 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts +2 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js +2 -1
- package/dist/esm/users/anonymous-user-marketing-metadata.shared.schemas.js.map +1 -1
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts +139 -24
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js +255 -0
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/anonymous-users.shared.schema.d.ts +5 -3
- package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -1
- package/dist/esm/users/anonymous-users.shared.schema.js +18 -1
- package/dist/esm/users/anonymous-users.shared.schema.js.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts +2 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +23 -0
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.d.ts +2 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-consent-decision.shared.utils.d.ts +127 -0
- package/dist/esm/users/user-consent-decision.shared.utils.d.ts.map +1 -0
- package/dist/esm/users/user-consent-decision.shared.utils.js +189 -0
- package/dist/esm/users/user-consent-decision.shared.utils.js.map +1 -0
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts +1 -0
- 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 +1 -0
- package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.js +30 -0
- package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-preferences-reset.shared.utils.d.ts +6 -6
- package/dist/esm/users/user-preferences-reset.shared.utils.js +6 -6
- package/dist/esm/users/user-preferences-reset.shared.utils.js.map +1 -1
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts +74 -29
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.js +99 -0
- package/dist/esm/users/user-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.js +25 -9
- package/dist/esm/users/user-profiles.shared.resources-config.schemas.js.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-preferences.shared.resources-config.schemas.js +12 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts +1 -0
- 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 +2 -2
- 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 +1 -0
- package/dist/esm/users/users.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.resources-config.schemas.js +2 -2
- package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.schemas.d.ts +28 -10
- package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.schemas.js +86 -11
- package/dist/esm/users/users.shared.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +14 -35
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.d.ts +0 -19
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.d.ts.map +0 -1
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.js +0 -35
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint-agent-personas.shared.enums.js.map +0 -1
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts +0 -213
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.js +0 -287
- package/dist/esm/flows-actors/apps-blueprint/apps-blueprint.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts +0 -236
- package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.js +0 -212
- package/dist/esm/flows-actors/apps-blueprint/artifacts.apps-blueprint.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/actions.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts +0 -17
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js +0 -31
- package/dist/esm/flows-actors/meta-workflows/budget-authority.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts +0 -28
- package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.js +0 -28
- package/dist/esm/flows-actors/meta-workflows/continuity-identifiers.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts +0 -100
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js +0 -232
- package/dist/esm/flows-actors/meta-workflows/execution-binding-common.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.d.ts +0 -29
- package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.js +0 -58
- package/dist/esm/flows-actors/meta-workflows/execution-binding-vocabularies.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts +0 -81
- package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.d.ts.map +0 -1
- package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.js +0 -82
- package/dist/esm/flows-actors/task-continuity-binding.actors.shared.schemas.js.map +0 -1
- package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.d.ts +0 -2
- package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.d.ts.map +0 -1
- package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.js +0 -1
- package/dist/esm/flows-actors/utils/flow-actors.context-builder.apps-context.shared.utils.js.map +0 -1
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/actions.meta-workflows.shared.schemas.d.ts +0 -0
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/actions.meta-workflows.shared.schemas.js +0 -0
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/catalog.meta-workflows.shared.schemas.d.ts +0 -0
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/catalog.meta-workflows.shared.schemas.js +0 -0
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/context-selection.meta-workflows.shared.schemas.d.ts +0 -0
- /package/dist/esm/{flows-actors/meta-workflows → meta-workflows}/context-selection.meta-workflows.shared.schemas.js +0 -0
|
@@ -1,12 +1,18 @@
|
|
|
1
|
+
import { AuditApplicationReadAccess } from './audit-trail-config.shared.schemas.js';
|
|
2
|
+
import { ExternalAssuranceAssessmentSchema } from '../../external-providers/provider-authentication-assurance.shared.schemas.js';
|
|
1
3
|
import { z } from "zod";
|
|
4
|
+
import { ExternalProvider_Connection_DelegationMode } from "@wildo-ai/external-connectors-models";
|
|
5
|
+
import { GovernedDocumentInteractionSchema } from "../documents/governed-document-interactions.shared.schemas.js";
|
|
2
6
|
import { PersonalDataCategory } from "../privacy/personal-data-category.shared.schemas.js";
|
|
7
|
+
import { RegistrationAcquisitionChannel } from "../../config/entity-identity-config.shared.schemas.js";
|
|
3
8
|
import { ResourceOperationRiskLevel, ResourceOperationVariantType } from "../../resources/resources.shared.schemas.js";
|
|
4
9
|
import { CoreResourceOperation } from "../../resources/resources.shared.core.definitions.js";
|
|
5
|
-
import { PlatformAccessGrantAutoApprovalReason, PlatformAccessGrantLifecycleTransition, PlatformAccessGrantStatus, } from "../../security/authorizations/platform-access-grants.shared.schemas.js";
|
|
6
|
-
import {
|
|
10
|
+
import { PlatformAccessGrantAutoApprovalReason, PlatformAccessGrantLifecycleTransition, PlatformAccessGrantScope, PlatformAccessGrantStatus, } from "../../security/authorizations/platform-access-grants.shared.schemas.js";
|
|
11
|
+
import { SystemOfRecordPartitionAssignmentTransition } from "../../systems-of-record/system-of-record-partition-assignments.shared.schemas.js";
|
|
12
|
+
import { ExecutionContext_ExecutionType, ExecutionContext_MachineCredentialSchema } from "../../runtime/execution-context.shared.schemas.js";
|
|
7
13
|
import { AuthScopeType, SsoConnectionType, } from "../../security/authentications/authentication.shared.schemas.js";
|
|
8
14
|
import { WebhookEndpointProbeOutcome } from "../../notifications/m2m/webhook-config.shared.schemas.js";
|
|
9
|
-
import { ProviderCredentialDeletionReason, ProviderCredentialResolutionSource, } from "../../security/connected-accounts/provider-credentials.shared.schemas.js";
|
|
15
|
+
import { ProviderCredentialDeletionReason, ProviderOAuth2RevocationOutcomeValues, ProviderCredentialResolutionSource, } from "../../security/connected-accounts/provider-credentials.shared.schemas.js";
|
|
10
16
|
export var CoreAuditableEventType;
|
|
11
17
|
(function (CoreAuditableEventType) {
|
|
12
18
|
// Authentication Events
|
|
@@ -106,6 +112,11 @@ export var CoreAuditableEventType;
|
|
|
106
112
|
CoreAuditableEventType["ORGANIZATION_CREATED"] = "organization_created";
|
|
107
113
|
// audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
|
|
108
114
|
CoreAuditableEventType["ORGANIZATION_UPDATED"] = "organization_updated";
|
|
115
|
+
/**
|
|
116
|
+
* The engine assigned an organization its `type`, at boot, with no actor — see
|
|
117
|
+
* {@link AuditableEvent_Organization_TypeAssignedEventDataSchema} for why this is not an `ORGANIZATION_UPDATED`.
|
|
118
|
+
*/
|
|
119
|
+
CoreAuditableEventType["ORGANIZATION_TYPE_ASSIGNED"] = "organization_type_assigned";
|
|
109
120
|
CoreAuditableEventType["ORGANIZATION_DELETED"] = "organization_deleted";
|
|
110
121
|
/** The tenant was MARKED for deletion (soft-delete). Its access dies here; its data dies at the purge. */
|
|
111
122
|
CoreAuditableEventType["ORGANIZATION_DELETION_REQUESTED"] = "organization_deletion_requested";
|
|
@@ -168,11 +179,47 @@ export var CoreAuditableEventType;
|
|
|
168
179
|
// SSO Authentication Events
|
|
169
180
|
CoreAuditableEventType["USER_SSO_LOGIN"] = "user_sso_login";
|
|
170
181
|
CoreAuditableEventType["USER_SSO_LOGIN_FAILED"] = "user_sso_login_failed";
|
|
182
|
+
/**
|
|
183
|
+
* A tenant that mandates its identity provider refused a local sign-in or an acquisition.
|
|
184
|
+
*
|
|
185
|
+
* Emitted since #1214/#1242 by `_enforceEnterpriseSsoOnLocalFirstFactor` (every local first-factor
|
|
186
|
+
* door), by the grace-login gate's three refusal clauses, and by the registration door's
|
|
187
|
+
* `blockForSSODomains` block. `enforcementPolicy` carries WHICH clause refused, because "the tenant
|
|
188
|
+
* allows no fallback" and "this account has spent its grace logins" have different remedies and a
|
|
189
|
+
* bare `sso_required` cannot tell them apart.
|
|
190
|
+
*
|
|
191
|
+
* ONE refusal site remains unwired and is tracked on #1242: the SOCIAL-vs-enforcement refusal in
|
|
192
|
+
* `oauth2-authentication.backend.service.ts`, whose sibling provider-restriction refusal ten lines
|
|
193
|
+
* below it already emits `logOAuth2ProviderBlocked`.
|
|
194
|
+
*
|
|
195
|
+
* Deliberately NOT emitted by the fail-closed refusals that share the same error — a Redis read
|
|
196
|
+
* that failed, the outer catch. Those are infrastructure outcomes, and recording them as an
|
|
197
|
+
* enforcement decision would assert a policy judgement nobody made.
|
|
198
|
+
*/
|
|
171
199
|
CoreAuditableEventType["USER_SSO_ENFORCEMENT_BLOCKED"] = "user_sso_enforcement_blocked";
|
|
172
200
|
CoreAuditableEventType["USER_TOKEN_REFRESHED"] = "user_token_refreshed";
|
|
173
201
|
// Organization Security Management Events
|
|
202
|
+
// audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
|
|
203
|
+
// Every SSO-config write is HIGH or CRITICAL (UPDATE, CREATE, and the three domain-ownership verbs),
|
|
204
|
+
// and its authentication-authority blocks carry `.isAuditEvidence()`, so the row names what changed
|
|
205
|
+
// and its before/after values. Its emit method had no caller and was removed (#591).
|
|
174
206
|
CoreAuditableEventType["ORGANIZATION_SSO_CONFIGURATION_CHANGED"] = "organization_sso_configuration_changed";
|
|
207
|
+
/** A change to where an organization's security events are exported: enabled, or a field other than the destination edited. INFO. */
|
|
175
208
|
CoreAuditableEventType["ORGANIZATION_SIEM_EXPORT_CONFIGURED"] = "organization_siem_export_configured";
|
|
209
|
+
/**
|
|
210
|
+
* Security-event export was turned OFF (#986). Its own kind, at CRITICAL, because the envelope's rule
|
|
211
|
+
* is that severity is a property of the event TYPE and danger rides the row's `riskLevel` — and
|
|
212
|
+
* `riskLevel` never reaches the SIEM. As one INFO kind, "export disabled" was filtered out by any
|
|
213
|
+
* organization that raised its severity minimum, on the one destination that most needed it.
|
|
214
|
+
* Delivered to the destination that STOPPED, as its last event (`dispatchToRetiredSiemSink`).
|
|
215
|
+
*/
|
|
216
|
+
CoreAuditableEventType["ORGANIZATION_SIEM_EXPORT_DISABLED"] = "organization_siem_export_disabled";
|
|
217
|
+
/**
|
|
218
|
+
* Security-event export was re-pointed at another destination (#986). WARNING: a destination move is
|
|
219
|
+
* how an attacker who reached the tenant's administration diverts the trail. Delivered to BOTH the
|
|
220
|
+
* old and the new destination.
|
|
221
|
+
*/
|
|
222
|
+
CoreAuditableEventType["ORGANIZATION_SIEM_EXPORT_DESTINATION_CHANGED"] = "organization_siem_export_destination_changed";
|
|
176
223
|
// Organization Provider Credential Events
|
|
177
224
|
//
|
|
178
225
|
// An organization's OWN credential toward a third party. The four verbs are separate members
|
|
@@ -223,6 +270,7 @@ export var CoreAuditableEventType;
|
|
|
223
270
|
CoreAuditableEventType["ORGANIZATION_PROVIDER_CONNECTION_GRANTED"] = "organization_provider_connection_granted";
|
|
224
271
|
CoreAuditableEventType["USER_PROVIDER_CONNECTION_GRANTED"] = "user_provider_connection_granted";
|
|
225
272
|
// Application Security Configuration Events
|
|
273
|
+
// Also records the effective authored audit-viewer admission policy, with independently typed before/after evidence.
|
|
226
274
|
// The per-user-type authentication policy (`userTypes.<type>.auth` — MFA, password, and lockout
|
|
227
275
|
// requirements) is STATIC application configuration authored in code and taken into effect at
|
|
228
276
|
// backend startup. A change to it — most consequentially a WEAKENING such as turning MFA off — is
|
|
@@ -245,9 +293,17 @@ export var CoreAuditableEventType;
|
|
|
245
293
|
// SCIM Directory Provisioning Events
|
|
246
294
|
// audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
|
|
247
295
|
CoreAuditableEventType["SCIM_TOKEN_CREATED"] = "scim_token_created";
|
|
296
|
+
// audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
|
|
297
|
+
// `revoke_token` is a HIGH operation and `isActive` carries `.isAuditEvidence()`. Its emit method had no
|
|
298
|
+
// caller and was removed (#591), so a requirement body must not demand this member.
|
|
248
299
|
CoreAuditableEventType["SCIM_TOKEN_REVOKED"] = "scim_token_revoked";
|
|
300
|
+
// audit-event-unemitted: covered by the generic row — `generate_token` is HIGH. See SCIM_TOKEN_REVOKED.
|
|
249
301
|
CoreAuditableEventType["SCIM_TOKEN_GENERATED"] = "scim_token_generated";
|
|
302
|
+
// audit-event-unemitted: covered by the generic row — `rotate_token` is HIGH. See SCIM_TOKEN_REVOKED.
|
|
250
303
|
CoreAuditableEventType["SCIM_TOKEN_ROTATED"] = "scim_token_rotated";
|
|
304
|
+
// audit-event-unemitted: covered by the generic `RESOURCE_OPERATION_PERFORMED` row — see USER_CREATED.
|
|
305
|
+
// The provisioning-config UPDATE is HIGH and `autoCreateUsers`, `autoDeactivateUsers`, `defaultRole`,
|
|
306
|
+
// `organizationUnitMapping` and `defaultUnitRole` carry `.isAuditEvidence()`. Emit method removed (#591).
|
|
251
307
|
CoreAuditableEventType["SCIM_PROVISIONING_CONFIG_UPDATED"] = "scim_provisioning_config_updated";
|
|
252
308
|
CoreAuditableEventType["SCIM_PROVISIONING_FAILED"] = "scim_provisioning_failed";
|
|
253
309
|
CoreAuditableEventType["SCIM_USER_PROVISIONED"] = "scim_user_provisioned";
|
|
@@ -306,6 +362,17 @@ export var CoreAuditableEventType;
|
|
|
306
362
|
CoreAuditableEventType["SAML_EMAIL_CHANGED"] = "saml_email_changed";
|
|
307
363
|
// OAuth2 Provider Restriction Events (Phase G3)
|
|
308
364
|
CoreAuditableEventType["OAUTH2_PROVIDER_BLOCKED"] = "oauth2_provider_blocked";
|
|
365
|
+
/**
|
|
366
|
+
* An enterprise OIDC login was refused because the identity provider did not report the
|
|
367
|
+
* authentication context the connection DEMANDED (issue #444).
|
|
368
|
+
*
|
|
369
|
+
* `acr_values` is a REQUEST parameter: the relying party asks, the provider decides, and the ID
|
|
370
|
+
* token's `acr` claim reports what actually happened. So a refusal here is the only evidence that
|
|
371
|
+
* a step-up demand was made and not met — without it an operator debugging "why can this person
|
|
372
|
+
* not sign in" sees an ordinary authentication failure and has nothing to distinguish it from a
|
|
373
|
+
* wrong password.
|
|
374
|
+
*/
|
|
375
|
+
CoreAuditableEventType["OIDC_ACR_DEMAND_UNSATISFIED"] = "oidc_acr_demand_unsatisfied";
|
|
309
376
|
// One-Off Session Events (W7.3b)
|
|
310
377
|
/**
|
|
311
378
|
* File upload grant lifecycle (issue #312) — the first FILE-domain audit events. A grant is a
|
|
@@ -318,6 +385,15 @@ export var CoreAuditableEventType;
|
|
|
318
385
|
CoreAuditableEventType["FILE_UPLOAD_GRANT_ISSUED"] = "file_upload_grant_issued";
|
|
319
386
|
CoreAuditableEventType["FILE_UPLOAD_GRANT_REDEEMED"] = "file_upload_grant_redeemed";
|
|
320
387
|
CoreAuditableEventType["FILE_UPLOAD_GRANT_REVOKED"] = "file_upload_grant_revoked";
|
|
388
|
+
/**
|
|
389
|
+
* File share links (#1567). A share is a bearer link that serves ONE file to whoever holds it, with no
|
|
390
|
+
* session at all — the widest disclosure the file plane can make, so minting one is audited like a
|
|
391
|
+
* grant. `ISSUED` carries the file, its owning record/field binding, the expiry and the use budget —
|
|
392
|
+
* never the token value. `REVOKED` is "stop sharing this file" (`DELETE /files/:fileId/shares`) and
|
|
393
|
+
* carries how many live links it ended; a revocation that ended none records nothing.
|
|
394
|
+
*/
|
|
395
|
+
CoreAuditableEventType["FILE_SHARE_LINK_ISSUED"] = "file_share_link_issued";
|
|
396
|
+
CoreAuditableEventType["FILE_SHARE_LINKS_REVOKED"] = "file_share_links_revoked";
|
|
321
397
|
// File content-inspection outcomes (#506)
|
|
322
398
|
/**
|
|
323
399
|
* A scanner concluded that an uploaded file is INFECTED, and the file was quarantined.
|
|
@@ -413,6 +489,27 @@ export var CoreAuditableEventType;
|
|
|
413
489
|
CoreAuditableEventType["RESOURCE_OPERATION_DENIED"] = "resource_operation_denied";
|
|
414
490
|
CoreAuditableEventType["CROSS_TENANT_ADMINISTRATIVE_ACCESS"] = "cross_tenant_administrative_access";
|
|
415
491
|
CoreAuditableEventType["PLATFORM_ACCESS_GRANT_LIFECYCLE"] = "platform_access_grant_lifecycle";
|
|
492
|
+
/**
|
|
493
|
+
* A remote partition of a system of record was assigned to, moved between, or removed from an
|
|
494
|
+
* organization unit.
|
|
495
|
+
*
|
|
496
|
+
* ONE event for the whole life of the edge, with a {@link SystemOfRecordPartitionAssignmentTransition}
|
|
497
|
+
* field — the `platformAccessGrants` shape rather than three event types. Three types would put the
|
|
498
|
+
* same row's timeline in three buckets a reviewer has to reassemble, and the questions an auditor
|
|
499
|
+
* actually asks ("who has been able to see the German company, and since when?") are answered by
|
|
500
|
+
* reading one bucket in order.
|
|
501
|
+
*
|
|
502
|
+
* ## Why this exists beside the automatic row
|
|
503
|
+
*
|
|
504
|
+
* All three write verbs are HIGH, which is inside `AUTOMATIC_AUDIT_RISK_FLOOR`, so
|
|
505
|
+
* `RESOURCE_OPERATION_PERFORMED` already fires for each. What that row cannot carry is the thing a
|
|
506
|
+
* reviewer needs: which unit, and — on a move — which unit it was BEFORE. A generic operation row
|
|
507
|
+
* says an assignment changed; this one says what it changed from and to.
|
|
508
|
+
*
|
|
509
|
+
* assurance-control: WILDO.ACCESS.LEAST_PRIVILEGE — the reach of each remote partition is recorded.
|
|
510
|
+
* assurance-control: WILDO.ACCESS.PRIVILEGE_EVIDENCE — evidence of the full life of that reach.
|
|
511
|
+
*/
|
|
512
|
+
CoreAuditableEventType["SYSTEM_OF_RECORD_PARTITION_ASSIGNMENT_LIFECYCLE"] = "system_of_record_partition_assignment_lifecycle";
|
|
416
513
|
/**
|
|
417
514
|
* An operator enumerated an APPLICATION-WIDE directory — a collection read that is deliberately
|
|
418
515
|
* not confined to any one tenant.
|
|
@@ -470,6 +567,8 @@ export var CoreAuditableEventType;
|
|
|
470
567
|
// is more sensitive than a read, so it is audited as its own distinct event
|
|
471
568
|
// rather than folded into SYSTEM_CONTEXT_READ.
|
|
472
569
|
CoreAuditableEventType["SYSTEM_CONTEXT_WRITE"] = "system_context_write";
|
|
570
|
+
/** Platform owner publication of application/service configuration; safe field names, caller and outcome only. */
|
|
571
|
+
CoreAuditableEventType["PLATFORM_CONFIGURATION_PUBLICATION"] = "platform_configuration_publication";
|
|
473
572
|
// Retained-Data (Impersonalization) Access Events
|
|
474
573
|
// Emitted when a privileged SEE-THROUGH read reveals RETAINED (impersonalized-and-retained) records
|
|
475
574
|
// that the default retention hide-predicate keeps hidden. SYSTEM_CONTEXT_READ names only the RUNTIME
|
|
@@ -486,6 +585,28 @@ export var CoreAuditableEventType;
|
|
|
486
585
|
// and what was in it?". The four routed export operations this capability replaced emitted
|
|
487
586
|
// NOTHING at all, which is the gap this closes. Classified DATA_ACCESS / WARNING: an authorized
|
|
488
587
|
// but maximally-sensitive disclosure, not an anomaly.
|
|
588
|
+
// A person MET a governed document — was shown a notice, acknowledged one, accepted terms,
|
|
589
|
+
// gave or withdrew a consent — and WHICH RELEASE they met (issue #54).
|
|
590
|
+
//
|
|
591
|
+
// The identity is the point. `documentRef` + `releaseId` + `releaseVersion` names a file in a
|
|
592
|
+
// commit, so a reviewer asking "what exactly did this person accept" reads the terms as they
|
|
593
|
+
// stood rather than as they stand now. Nothing here is digest-sealed: the previous lane's
|
|
594
|
+
// interaction RECEIPTS were removed with the rest of the sealed publication machine on
|
|
595
|
+
// 2026-08-28, and `.claude/rules/one-source-of-truth.md` Rule 0 keeps none of it.
|
|
596
|
+
//
|
|
597
|
+
// Classified USER_LIFECYCLE / INFO, beside USER_REGISTERED, because it records a change in the
|
|
598
|
+
// person's relationship with the OPERATOR rather than a read of data or an access decision.
|
|
599
|
+
// INFO because recording an acceptance is routine expected activity whose whole value is that the
|
|
600
|
+
// trail can be queried years later; an alarm on it would fire on every registration. What is NOT
|
|
601
|
+
// routine rides the payload instead — `releaseApprovalState` says whether anybody had approved
|
|
602
|
+
// the document at the moment a person was bound by it.
|
|
603
|
+
//
|
|
604
|
+
// assurance-control: WILDO.PRIVACY.CONSENT_RECORD — a person's decision about a governed document is
|
|
605
|
+
// recorded against the exact release version in force at that instant, together with the notice they
|
|
606
|
+
// were given before being asked (`acceptanceMode`) — or, when the surface declared none, an advisory
|
|
607
|
+
// saying so. It does NOT claim the document was SHOWN: only `EXPLICIT_AFTER_READING` presents it, and
|
|
608
|
+
// the other two modes link it (#1382).
|
|
609
|
+
CoreAuditableEventType["GOVERNED_DOCUMENT_INTERACTION_RECORDED"] = "governed_document_interaction_recorded";
|
|
489
610
|
CoreAuditableEventType["SUBJECT_DATA_EXPORT"] = "subject_data_export";
|
|
490
611
|
// A resource LISTING was exported to a file (CSV/JSON) by an operator. Distinct from
|
|
491
612
|
// SUBJECT_DATA_EXPORT, which answers a data subject's own right over their own data: this one is
|
|
@@ -527,6 +648,97 @@ export var CoreAuditableEventType;
|
|
|
527
648
|
// USER_LIFECYCLE / CRITICAL: one event per acknowledged resource per erasure, never a standing
|
|
528
649
|
// posture.
|
|
529
650
|
CoreAuditableEventType["HTTP_API_NON_ERASURE_ACKNOWLEDGED"] = "http_api_non_erasure_acknowledged";
|
|
651
|
+
// The application CALLED a declared operation on a third-party provider — one event per outbound
|
|
652
|
+
// call, on both the success and the failure path.
|
|
653
|
+
//
|
|
654
|
+
// Distinct from the three HTTP_API_* members above, which are the ETL read-through plane: those
|
|
655
|
+
// record a RESOURCE whose rows live elsewhere being read or erased through a binding. This is the
|
|
656
|
+
// other door — a custom backend service naming a provider and an operation directly — and the
|
|
657
|
+
// question it answers is the first question of any provider incident: WHOSE third-party account
|
|
658
|
+
// did we spend, on whose behalf, and what came back. `connectionOwnerScope`/`connectionOwnerId`
|
|
659
|
+
// are what the initiator's own ids cannot answer, because one execution may legitimately spend
|
|
660
|
+
// several tenants' accounts (a user action fanning out to every organization that user belongs to
|
|
661
|
+
// issues N calls with N owners under ONE initiator).
|
|
662
|
+
//
|
|
663
|
+
// Distinct from `*_PROVIDER_CREDENTIAL_USED`, which records that a stored credential was SPENT and
|
|
664
|
+
// what the vendor thought of it. That one is about the CREDENTIAL's health and is emitted by the
|
|
665
|
+
// store; this one is about the ACT and is emitted by the executor. A credential incident reads
|
|
666
|
+
// both, in that order, and folding them would make "which calls did this credential make" a query
|
|
667
|
+
// nobody can write.
|
|
668
|
+
//
|
|
669
|
+
// Classified DATA_ACCESS / INFO for the read-through member's reason — routine, authorized
|
|
670
|
+
// activity whose value is the queryable trail, not an alarm. The READ/WRITE axis rides
|
|
671
|
+
// `classification` in the payload and the per-emission `riskLevel`, never the static severity.
|
|
672
|
+
//
|
|
673
|
+
// assurance-control: WILDO.AUDIT.ATTRIBUTION — an outbound call made on a user's behalf is
|
|
674
|
+
// recorded with the real initiating user carried through whichever account it spent.
|
|
675
|
+
CoreAuditableEventType["PROVIDER_OPERATION_CALL"] = "provider_operation_call";
|
|
676
|
+
// A signed-in person's BROWSER asked for a provider operation and the door REFUSED it (#367).
|
|
677
|
+
//
|
|
678
|
+
// A sibling of `PROVIDER_OPERATION_CALL`, not a failure case of it, because nothing was called: the
|
|
679
|
+
// refusal happens before any catalogue lookup, credential read or outbound request, so the call
|
|
680
|
+
// member's required `method`, `domain` and `classification` do not exist for it — an operation the
|
|
681
|
+
// application never declared browser-reachable may not even be in the catalogue. What it records is
|
|
682
|
+
// an ACCESS DECISION, which is the other half of "record access decisions" for this door, exactly as
|
|
683
|
+
// `RESOURCE_OPERATION_DENIED` is for the resource authorizer.
|
|
684
|
+
//
|
|
685
|
+
// Classified AUTHORIZATION / WARNING for that sibling's reason: a refusal is not routine traffic, and a
|
|
686
|
+
// run of them against one operation is a person probing what a browser can make the backend do.
|
|
687
|
+
//
|
|
688
|
+
// assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — refusals at the browser door to a
|
|
689
|
+
// third-party operation are attributable and reviewable.
|
|
690
|
+
CoreAuditableEventType["PROVIDER_OPERATION_DENIED"] = "provider_operation_denied";
|
|
691
|
+
// An AGENT reached an MCP server on somebody's behalf (#491).
|
|
692
|
+
//
|
|
693
|
+
// A sibling of `PROVIDER_OPERATION_CALL`, not a case of it, and the split is the same one that
|
|
694
|
+
// separates that member from `*_PROVIDER_CREDENTIAL_USED`: they identify different acts. A
|
|
695
|
+
// provider operation is a CATALOGUE operation — it has an `operationId`, a `domain`, an HTTP
|
|
696
|
+
// method and a declared READ/WRITE classification. An MCP tool has none of those: the tool list is
|
|
697
|
+
// discovered from the server at turn start, the transport is always a JSON-RPC POST, and nothing
|
|
698
|
+
// declares in advance what a tool does. Folding them would make "which catalogue operations ran"
|
|
699
|
+
// a query that returns tools that are not catalogue operations.
|
|
700
|
+
//
|
|
701
|
+
// The ATTRIBUTION fields are deliberately identical, so a reviewer asking "what did this person's
|
|
702
|
+
// delegated credential do at that vendor" writes one shape of query across both.
|
|
703
|
+
//
|
|
704
|
+
// Classified DATA_ACCESS / INFO for the same reason as its sibling: routine authorized activity
|
|
705
|
+
// whose value is the queryable trail rather than an alarm. A refused outbound TARGET is carried on
|
|
706
|
+
// the same event through `failureKind`, because an attempted egress a guard blocked is exactly
|
|
707
|
+
// what a reviewer wants beside the calls that succeeded.
|
|
708
|
+
//
|
|
709
|
+
// assurance-control: WILDO.AUDIT.ATTRIBUTION — an agent's outbound tool call is recorded with the
|
|
710
|
+
// real initiating user carried through whichever account it spent.
|
|
711
|
+
CoreAuditableEventType["MCP_TOOL_CALL"] = "mcp_tool_call";
|
|
712
|
+
// A human APPROVER changed a proposed tool call's arguments and approved the changed call (#566).
|
|
713
|
+
//
|
|
714
|
+
// The strongest act available on the approval plane, and the reason it is its own member rather
|
|
715
|
+
// than a flag on some broader "approval decided" event: on every other decision the approver
|
|
716
|
+
// ASSENTS to a call the model authored, and here they AUTHOR one the model never proposed. An
|
|
717
|
+
// incident reader asking "who wrote the arguments this tool ran with" is asking a different
|
|
718
|
+
// question from "who let it run", and folding the two would make the first unanswerable by query.
|
|
719
|
+
//
|
|
720
|
+
// Emitted ONLY when the executed input differs from the proposed one. An ordinary approval is not
|
|
721
|
+
// this event and is deliberately not recorded here — the plane has no approval-decision trail at
|
|
722
|
+
// all yet, which is a separate gap with its own issue; adding half of one under this name would
|
|
723
|
+
// make `mcp_tool_call`'s mistake in the other direction, an event that answers two questions and
|
|
724
|
+
// neither well.
|
|
725
|
+
//
|
|
726
|
+
// NAMES AND DIGESTS ONLY — never argument values. Identical reasoning to
|
|
727
|
+
// `RESOURCE_OPERATION_PERFORMED`'s `changedFields` / `fieldEvidence` split: audit rows replicate
|
|
728
|
+
// to the per-org SIEM and to an immutable ledger that cannot be scrubbed, so copying arbitrary
|
|
729
|
+
// tool arguments here would manufacture an unerasable duplicate of whatever a person typed, in
|
|
730
|
+
// direct conflict with GDPR Art. 17. The two digests prove executed ≠ proposed; the key names say
|
|
731
|
+
// WHICH arguments a person authored. Neither can leak content.
|
|
732
|
+
//
|
|
733
|
+
// Classified AUTHORIZATION / WARNING. Authorization because the act IS a human authorization
|
|
734
|
+
// decision, not a data access. WARNING rather than CRITICAL for the same reading the OAuth grant
|
|
735
|
+
// rows take: it is notable, dashboard-worthy and worth reviewing, and it is an AUTHORIZED action
|
|
736
|
+
// taken by an identified person with the pause in front of them — reserving CRITICAL for the rows
|
|
737
|
+
// that mean something is wrong is what keeps a severity filter usable.
|
|
738
|
+
//
|
|
739
|
+
// assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — the approver who authored the
|
|
740
|
+
// executed arguments is recorded beside proof that they differed from the proposal.
|
|
741
|
+
CoreAuditableEventType["AGENT_TOOL_APPROVAL_MODIFIED"] = "agent_tool_approval_modified";
|
|
530
742
|
// ── OAuth2 / OIDC Provider Events (Wildo AS the authorization server) ──
|
|
531
743
|
// Distinct from the `OAUTH2_*` family above, which records Wildo CONSUMING an
|
|
532
744
|
// EXTERNAL social OAuth provider. These record the app-issued OAuth2/OIDC provider
|
|
@@ -649,6 +861,67 @@ export function describeAuditVocabulary(lead, meanings) {
|
|
|
649
861
|
const legend = Object.entries(meanings).map(([value, words]) => `- \`${value}\`: ${words.meaning}`).join('\n');
|
|
650
862
|
return `${lead}\n\nValues:\n${legend}`;
|
|
651
863
|
}
|
|
864
|
+
/**
|
|
865
|
+
* Why the browser door to a provider operation refused a request (#367). A CLOSED vocabulary: the door
|
|
866
|
+
* resolves exactly one of these per refusal, in the order listed, and a reviewer groups by it.
|
|
867
|
+
*
|
|
868
|
+
* Deliberately NOT a reuse of {@link ResourceOperationDenialReason}. The two doors ask different
|
|
869
|
+
* questions of different declarations — that one checks an operation variant's roles and a row's scope,
|
|
870
|
+
* this one checks an application's browser-reachability policy and whose third-party account is named —
|
|
871
|
+
* and sharing members would make "insufficient roles" mean two things in one column.
|
|
872
|
+
*/
|
|
873
|
+
/**
|
|
874
|
+
* What a provider operation's `requiredScopes` check concluded for one call (#979).
|
|
875
|
+
*
|
|
876
|
+
* Carried on {@link AuditableEvent_ProviderOperationCall_EventDataSchema} only when the operation declares required
|
|
877
|
+
* scopes; an operation declaring none carries no scope field at all, rather than a verdict about nothing.
|
|
878
|
+
*/
|
|
879
|
+
export var ProviderOperationScopeCheck;
|
|
880
|
+
(function (ProviderOperationScopeCheck) {
|
|
881
|
+
/** The grant recorded its scopes and every required one is among them. The call proceeded. */
|
|
882
|
+
ProviderOperationScopeCheck["VERIFIED"] = "verified";
|
|
883
|
+
/**
|
|
884
|
+
* The spent credential records no granted scopes — a pasted key, the application's own credential, or a vendor
|
|
885
|
+
* that did not echo `scope`. The call proceeded UNCHECKED, and this row is what says so.
|
|
886
|
+
*/
|
|
887
|
+
ProviderOperationScopeCheck["NOT_RECORDED"] = "not_recorded";
|
|
888
|
+
/** The grant recorded its scopes and lacks at least one required scope. The call was refused before any request. */
|
|
889
|
+
ProviderOperationScopeCheck["MISSING"] = "missing";
|
|
890
|
+
})(ProviderOperationScopeCheck || (ProviderOperationScopeCheck = {}));
|
|
891
|
+
export var ProviderOperationDenialReason;
|
|
892
|
+
(function (ProviderOperationDenialReason) {
|
|
893
|
+
/**
|
|
894
|
+
* The caller authenticated without a person — an application API key, a machine identity. This door
|
|
895
|
+
* exists for a signed-in person's browser, and the policy's roles and the target-authorization port
|
|
896
|
+
* both reason about a person; a backend caller has the executor and the typed client instead.
|
|
897
|
+
*/
|
|
898
|
+
ProviderOperationDenialReason["MISSING_USER_SESSION"] = "missing_user_session";
|
|
899
|
+
/**
|
|
900
|
+
* The application's `providers.browserOperations` names no policy for this provider and operation.
|
|
901
|
+
* The fail-closed default: nothing is reachable from a browser unless declared. Also the answer for an
|
|
902
|
+
* operation that does not exist, so a refusal never reveals what a catalogue contains.
|
|
903
|
+
*/
|
|
904
|
+
ProviderOperationDenialReason["NOT_BROWSER_REACHABLE"] = "not_browser_reachable";
|
|
905
|
+
/** The request names a connection shape — owner scope × delegation — the operation's policy does not admit. */
|
|
906
|
+
ProviderOperationDenialReason["CONNECTION_NOT_ADMITTED"] = "connection_not_admitted";
|
|
907
|
+
/**
|
|
908
|
+
* The policy declares roles and the target is the caller's OWN user account, over which nobody holds a
|
|
909
|
+
* role. A policy mistake rather than a caller's, recorded as its own reason so it is not read as a
|
|
910
|
+
* person lacking a role they could be granted.
|
|
911
|
+
*/
|
|
912
|
+
ProviderOperationDenialReason["ROLES_NOT_APPLICABLE_TO_TARGET"] = "roles_not_applicable_to_target";
|
|
913
|
+
/**
|
|
914
|
+
* The target-authorization port refused: the caller named an organization they do not belong to
|
|
915
|
+
* organization-wide, or a user account that is not their own.
|
|
916
|
+
*/
|
|
917
|
+
ProviderOperationDenialReason["TARGET_NOT_AUTHORIZED"] = "target_not_authorized";
|
|
918
|
+
/**
|
|
919
|
+
* The caller may act for the account, and holds none of the policy's roles — after hierarchy
|
|
920
|
+
* expansion, in the scope of that account. Checked AFTER {@link TARGET_NOT_AUTHORIZED}, so a person
|
|
921
|
+
* naming a tenant they do not belong to is recorded as that, not as a person short of a role.
|
|
922
|
+
*/
|
|
923
|
+
ProviderOperationDenialReason["INSUFFICIENT_ROLES"] = "insufficient_roles";
|
|
924
|
+
})(ProviderOperationDenialReason || (ProviderOperationDenialReason = {}));
|
|
652
925
|
/**
|
|
653
926
|
* Why the authorizer refused an operation. A CLOSED vocabulary — the authorizer resolves exactly
|
|
654
927
|
* one of these per refusal, and a SOC dashboard groups by it.
|
|
@@ -660,6 +933,20 @@ export function describeAuditVocabulary(lead, meanings) {
|
|
|
660
933
|
*/
|
|
661
934
|
export var ResourceOperationDenialReason;
|
|
662
935
|
(function (ResourceOperationDenialReason) {
|
|
936
|
+
/**
|
|
937
|
+
* The application requires consent purposes before it may be used
|
|
938
|
+
* (`compliance.serviceConsentRequirement`), and this person has not granted them (#534). The person is
|
|
939
|
+
* authenticated and may hold every role the operation needs; what is missing is their own decision.
|
|
940
|
+
* Distinct from every role/scope reason, because the remedy is the person's choice, not an administrator's.
|
|
941
|
+
*/
|
|
942
|
+
ResourceOperationDenialReason["SERVICE_CONSENT_REQUIRED"] = "service_consent_required";
|
|
943
|
+
/**
|
|
944
|
+
* ONE operation declared the purpose its own processing rests on
|
|
945
|
+
* (`ResourceOperationConsentGateDeclaration`), and this person has not granted it (#1258 Step 3).
|
|
946
|
+
* Distinct from {@link SERVICE_CONSENT_REQUIRED}: only this operation was refused, never the whole
|
|
947
|
+
* application.
|
|
948
|
+
*/
|
|
949
|
+
ResourceOperationDenialReason["CAPABILITY_CONSENT_REQUIRED"] = "capability_consent_required";
|
|
663
950
|
/**
|
|
664
951
|
* No initiator identity or roles on the execution context. Fail-closed: the authorizer refuses
|
|
665
952
|
* rather than assuming an anonymous caller.
|
|
@@ -710,6 +997,85 @@ export var ResourceOperationDenialReason;
|
|
|
710
997
|
* becoming an existence oracle.
|
|
711
998
|
*/
|
|
712
999
|
ResourceOperationDenialReason["SUBJECT_NOT_RESOLVABLE"] = "subject_not_resolvable";
|
|
1000
|
+
/**
|
|
1001
|
+
* The caller holds the ROLE but no usable APPLICATION-WIDE elevation.
|
|
1002
|
+
*
|
|
1003
|
+
* Its own member rather than `INSUFFICIENT_ROLES`, and the distinction is the whole point of the
|
|
1004
|
+
* grant model: the caller IS an administrator and the refusal is about STANDING privilege, not
|
|
1005
|
+
* about authority. Folding it into the roles reason would make the two indistinguishable in the
|
|
1006
|
+
* trail — and a reviewer asking "did zero-standing-privilege actually bite anyone?" would have no
|
|
1007
|
+
* way to count it.
|
|
1008
|
+
*
|
|
1009
|
+
* Distinct from a tenant crossing refused for the same shape of reason: that one is refused inside
|
|
1010
|
+
* `authorizeOrganizations` and surfaces as `SCOPE_MISMATCH`, because there the caller genuinely is
|
|
1011
|
+
* outside the tenant. Here there is no tenant to be outside of.
|
|
1012
|
+
*
|
|
1013
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT
|
|
1014
|
+
*/
|
|
1015
|
+
ResourceOperationDenialReason["APPLICATION_WIDE_ELEVATION_MISSING"] = "application_wide_elevation_missing";
|
|
1016
|
+
/**
|
|
1017
|
+
* The caller tried to GRANT authority it does not itself hold — a privilege-escalation attempt,
|
|
1018
|
+
* refused by the role-ceiling gate (`assertRequestedRolesWithinCallerCeiling`).
|
|
1019
|
+
*
|
|
1020
|
+
* Its own member rather than {@link INSUFFICIENT_ROLES}, for the same reason
|
|
1021
|
+
* {@link APPLICATION_WIDE_ELEVATION_MISSING} is: the caller PASSED the operation's role check —
|
|
1022
|
+
* an `ORG_ADMIN` really may update a membership — and was refused on the CONTENT of the write.
|
|
1023
|
+
* Folding the two together would make the single refusal an access review most wants to see
|
|
1024
|
+
* indistinguishable from the everyday "you are not an admin", and a reviewer asking "has anyone
|
|
1025
|
+
* tried to escalate?" would have nothing to count.
|
|
1026
|
+
*
|
|
1027
|
+
* Uniquely among the members here, the row carries {@link
|
|
1028
|
+
* AuditableEvent_ResourceOperationDenied_EventDataSchema.escalatedRoles} — the roles that were
|
|
1029
|
+
* actually asked for. `requiredRoles` and `initiatorRoles` cannot express it: neither is the set
|
|
1030
|
+
* the caller tried to confer on somebody else.
|
|
1031
|
+
*
|
|
1032
|
+
* Raised OUTSIDE the authorization phase — the gate runs in custom-implementation prefixes, after
|
|
1033
|
+
* the authorizer has returned — so it does not reach `classifyAuthorizationDenial`. The gate emits
|
|
1034
|
+
* it directly through the same chokepoint, keeping the dedup window, the logarithmic escalation
|
|
1035
|
+
* ladder and the loss counters.
|
|
1036
|
+
*
|
|
1037
|
+
* assurance-control: WILDO.ACCESS.LEAST_PRIVILEGE — an attempt to grant authority the caller does
|
|
1038
|
+
* not hold is refused AND recorded.
|
|
1039
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT
|
|
1040
|
+
*/
|
|
1041
|
+
ResourceOperationDenialReason["ROLE_CEILING_EXCEEDED"] = "role_ceiling_exceeded";
|
|
1042
|
+
/**
|
|
1043
|
+
* A high-impact action was refused because the operation ITSELF demands a fresh re-proof of
|
|
1044
|
+
* identity (`requiresStepUpAuthentication`), and the caller presented none.
|
|
1045
|
+
*
|
|
1046
|
+
* The caller is authenticated and may hold every role the operation needs. What is missing is a
|
|
1047
|
+
* ceremony, so this belongs with {@link SERVICE_CONSENT_REQUIRED} rather than with
|
|
1048
|
+
* {@link INSUFFICIENT_ROLES}: the remedy is an act by the same person, not a grant by an
|
|
1049
|
+
* administrator.
|
|
1050
|
+
*
|
|
1051
|
+
* Paired with {@link STEP_UP_REQUIRED_BY_FRESHNESS} for the reason the two consent members are
|
|
1052
|
+
* paired — the missing thing is the same and the party that DEMANDED it is not, and the two read
|
|
1053
|
+
* very differently in a review. A burst of these is somebody repeatedly attempting an action the
|
|
1054
|
+
* application has declared dangerous; a burst of the other is sessions ageing out.
|
|
1055
|
+
*
|
|
1056
|
+
* Raised OUTSIDE the authorization phase, like {@link ROLE_CEILING_EXCEEDED}: the step-up gate is
|
|
1057
|
+
* a private check at the services-registry tier that throws without passing through the
|
|
1058
|
+
* authorizer, so it reaches no `classifyAuthorizationDenial`. It emits through the same chokepoint
|
|
1059
|
+
* instead, keeping the dedup window, the escalation ladder and the loss counters.
|
|
1060
|
+
*
|
|
1061
|
+
* assurance-control: WILDO.IDENTITY.STEP_UP_AUTHENTICATION — a refused high-impact action is
|
|
1062
|
+
* recorded, not merely refused.
|
|
1063
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT
|
|
1064
|
+
*/
|
|
1065
|
+
ResourceOperationDenialReason["STEP_UP_REQUIRED_BY_OPERATION"] = "step_up_required_by_operation";
|
|
1066
|
+
/**
|
|
1067
|
+
* The same refusal, demanded by the USER TYPE's freshness policy (`UserTypeAuthPolicy.stepUpAuth`)
|
|
1068
|
+
* rather than by the operation: the caller's authentication is older than the declared maximum age.
|
|
1069
|
+
*
|
|
1070
|
+
* Distinct from {@link STEP_UP_REQUIRED_BY_OPERATION} because the two send a reviewer to different
|
|
1071
|
+
* places — one to the operation's own declaration, the other to the user-type policy — and because
|
|
1072
|
+
* only this one varies with how long a person has been signed in. The refusal's own error context
|
|
1073
|
+
* already carried the distinction before either was audited; this keeps it in the durable record.
|
|
1074
|
+
*
|
|
1075
|
+
* assurance-control: WILDO.IDENTITY.STEP_UP_AUTHENTICATION
|
|
1076
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT
|
|
1077
|
+
*/
|
|
1078
|
+
ResourceOperationDenialReason["STEP_UP_REQUIRED_BY_FRESHNESS"] = "step_up_required_by_freshness";
|
|
713
1079
|
})(ResourceOperationDenialReason || (ResourceOperationDenialReason = {}));
|
|
714
1080
|
/** SSO configuration change type. */
|
|
715
1081
|
export var SsoConfigChangeType;
|
|
@@ -777,7 +1143,32 @@ export var MachineAccessOperation;
|
|
|
777
1143
|
MachineAccessOperation["A2A_TASKS_LIST"] = "a2a_tasks_list";
|
|
778
1144
|
MachineAccessOperation["MCP_TOOLS_LIST"] = "mcp_tools_list";
|
|
779
1145
|
MachineAccessOperation["MCP_TOOLS_CALL"] = "mcp_tools_call";
|
|
1146
|
+
/**
|
|
1147
|
+
* A MACHINE principal's READ / LIST / SEARCH on a DECLARED cross-tenant REST door
|
|
1148
|
+
* (`admitsCrossTenantPlatformAdministration`) — today the application audit-log door.
|
|
1149
|
+
*
|
|
1150
|
+
* Deliberately NOT every REST call a machine makes: the plain resource API is audited per operation
|
|
1151
|
+
* through `RESOURCE_OPERATION_PERFORMED`, which carries `machineCredentialId`. These three exist because a
|
|
1152
|
+
* declared crossing's only other row, `CROSS_TENANT_ADMINISTRATIVE_ACCESS`, is written per TENANT REACHED —
|
|
1153
|
+
* so a machine read returning only application-wide rows, or nothing, left no row naming who read (#297).
|
|
1154
|
+
* One member per verb, like the A2A task members: a LIST enumerates, a READ fetches a row somebody named.
|
|
1155
|
+
*/
|
|
1156
|
+
MachineAccessOperation["API_READ"] = "api_read";
|
|
1157
|
+
MachineAccessOperation["API_LIST"] = "api_list";
|
|
1158
|
+
MachineAccessOperation["API_SEARCH"] = "api_search";
|
|
780
1159
|
})(MachineAccessOperation || (MachineAccessOperation = {}));
|
|
1160
|
+
const API_READ_MACHINE_ACCESS_OPERATIONS = {
|
|
1161
|
+
[CoreResourceOperation.READ]: MachineAccessOperation.API_READ,
|
|
1162
|
+
[CoreResourceOperation.LIST]: MachineAccessOperation.API_LIST,
|
|
1163
|
+
[CoreResourceOperation.SEARCH]: MachineAccessOperation.API_SEARCH,
|
|
1164
|
+
};
|
|
1165
|
+
/**
|
|
1166
|
+
* The MACHINE_ACCESS identifier for an executed REST read, or `undefined` for any verb that is not one.
|
|
1167
|
+
* The one place the core-operation → audit-vocabulary mapping lives, so a recorder never spells it.
|
|
1168
|
+
*/
|
|
1169
|
+
export function resolveApiReadMachineAccessOperation(operation) {
|
|
1170
|
+
return operation === undefined ? undefined : API_READ_MACHINE_ACCESS_OPERATIONS[operation];
|
|
1171
|
+
}
|
|
781
1172
|
export const AuditableEventTypeSchema = z.union([
|
|
782
1173
|
z.enum(CoreAuditableEventType),
|
|
783
1174
|
z.string()
|
|
@@ -908,9 +1299,9 @@ export const AuditableEvent_MachineAccess_EventDataSchema = z.object({
|
|
|
908
1299
|
* single authorization axis; recorded so a SIEM sees the authority the access ran under.
|
|
909
1300
|
*/
|
|
910
1301
|
roles: z.array(z.string()).optional(),
|
|
911
|
-
/** ResourceServerKind of the surface accessed: `a2a` | `mcp
|
|
1302
|
+
/** ResourceServerKind of the surface accessed: `a2a` | `mcp` | `api` (a declared cross-tenant REST read). */
|
|
912
1303
|
resourceServer: z.string(),
|
|
913
|
-
/**
|
|
1304
|
+
/** A2A/MCP: the resource-server audience / agent endpoint / systemRef hit. `api`: the resource type read. */
|
|
914
1305
|
resourceIdentifier: z.string().optional(),
|
|
915
1306
|
/** Normalised MachineAccessOperation value (e.g. `a2a_message_send`, `mcp_tools_call`). */
|
|
916
1307
|
operationIdentifier: z.string(),
|
|
@@ -1160,6 +1551,15 @@ export const AuditableEvent_OrganizationMember_RoleChangedEventDataSchema = z.ob
|
|
|
1160
1551
|
/** Which write path produced the change — the operation identifier (`create`, `update`, …). */
|
|
1161
1552
|
operation: z.string(),
|
|
1162
1553
|
changedBy: z.string(),
|
|
1554
|
+
/**
|
|
1555
|
+
* The actor's stated reason, on the paths that REQUIRE one — today `grantOwnership`, the
|
|
1556
|
+
* platform-tier repair door that crosses into a tenant the caller is not a member of. There the
|
|
1557
|
+
* justification is the whole control: no downstream check can second-guess an operator acting
|
|
1558
|
+
* outside the tenant, so the record of WHY is what makes the crossing accountable. It was required
|
|
1559
|
+
* on the request and discarded at the service boundary until #593. Absent on `create` / `update`,
|
|
1560
|
+
* which collect none. Bounded by the request DTO (1000 characters).
|
|
1561
|
+
*/
|
|
1562
|
+
justification: z.string().optional(),
|
|
1163
1563
|
});
|
|
1164
1564
|
/**
|
|
1165
1565
|
* Per-unit role assignment on an `ORGANIZATION_UNIT_MEMBERS` row.
|
|
@@ -1367,6 +1767,104 @@ export const AuditableEvent_Organization_UpdatedEventDataSchema = z.object({
|
|
|
1367
1767
|
changes: z.record(z.string(), z.any()),
|
|
1368
1768
|
updatedBy: z.string(),
|
|
1369
1769
|
});
|
|
1770
|
+
/**
|
|
1771
|
+
* WHY an organization was assigned the type it now carries, when no person chose it.
|
|
1772
|
+
*
|
|
1773
|
+
* A closed vocabulary, deliberately named rather than implied: the assignment is only defensible because the answer
|
|
1774
|
+
* was DERIVED, and a reader of the audit row must be able to see which derivation produced it without re-deriving
|
|
1775
|
+
* the application's configuration — or its membership rows — as they stood at that boot. The two members answer
|
|
1776
|
+
* from different evidence, which is exactly why a single "derived" value would not do: one is a fact about the
|
|
1777
|
+
* DECLARATION and stays true however the tenant changes, the other is a fact about the ORGANIZATION on one day.
|
|
1778
|
+
*/
|
|
1779
|
+
export var OrganizationTypeAssignmentBasis;
|
|
1780
|
+
(function (OrganizationTypeAssignmentBasis) {
|
|
1781
|
+
/**
|
|
1782
|
+
* The application declares exactly one organization type, so an organization whose type resolves to nothing —
|
|
1783
|
+
* none stored, or one the declaration no longer carries — can only be that type: it is the only policy the
|
|
1784
|
+
* application has. Nothing is guessed, and nothing about the organization was read.
|
|
1785
|
+
*/
|
|
1786
|
+
OrganizationTypeAssignmentBasis["SOLE_DECLARED_TYPE"] = "sole_declared_type";
|
|
1787
|
+
/**
|
|
1788
|
+
* The application declares several organization types, and exactly one of them covers every user type held by
|
|
1789
|
+
* this organization's own members — so the others are types this organization cannot be. Nothing is guessed: it
|
|
1790
|
+
* is the coverage test the first-administrator organization's type is already derived by, asked of the members.
|
|
1791
|
+
*
|
|
1792
|
+
* Narrower than {@link SOLE_DECLARED_TYPE} in what it proves. It reports the answer for the membership as it
|
|
1793
|
+
* stood at that boot; an organization whose members later span two declared types would not derive again. That is
|
|
1794
|
+
* why the row records the basis rather than only the outcome — a reviewer asking "could this have been wrong?"
|
|
1795
|
+
* needs to know which question was answered.
|
|
1796
|
+
*/
|
|
1797
|
+
OrganizationTypeAssignmentBasis["MEMBER_USER_TYPES"] = "member_user_types";
|
|
1798
|
+
/**
|
|
1799
|
+
* An operator promoted this organization to the one that OWNS the application, through
|
|
1800
|
+
* `organizations.promoteToOwnerOrganization` (#1054).
|
|
1801
|
+
*
|
|
1802
|
+
* The odd one out of the three, and deliberately kept in the same event rather than given its own.
|
|
1803
|
+
* What the event records is "this organization's `type` changed, and here is what decided it" — true
|
|
1804
|
+
* of all three — and an access reviewer asking "how did this tenant come to be typed this way?" must
|
|
1805
|
+
* find one row wherever the answer lies, not two events they have to know to look for separately.
|
|
1806
|
+
*
|
|
1807
|
+
* What differs is everything a derivation does not have: there IS an actor (the audit row carries
|
|
1808
|
+
* them, and {@link AuditableEvent_Organization_TypeAssignedEventData.justification} carries their
|
|
1809
|
+
* stated reason), the previous type is always present, and the decision was a human's. A row
|
|
1810
|
+
* carrying this basis is the only one on which `justification` may appear — the other two are
|
|
1811
|
+
* derivations, and a derivation has nothing to justify.
|
|
1812
|
+
*/
|
|
1813
|
+
OrganizationTypeAssignmentBasis["OPERATOR_PROMOTION"] = "operator_promotion";
|
|
1814
|
+
})(OrganizationTypeAssignmentBasis || (OrganizationTypeAssignmentBasis = {}));
|
|
1815
|
+
/**
|
|
1816
|
+
* An organization whose type resolved to nothing — none stored, or one no longer declared — was assigned one by the
|
|
1817
|
+
* engine at boot.
|
|
1818
|
+
*
|
|
1819
|
+
* ## Why this is its own event rather than an `ORGANIZATION_UPDATED`
|
|
1820
|
+
*
|
|
1821
|
+
* An organization's type is not a label. It decides which user types its members hold, which authentication
|
|
1822
|
+
* methods they may use, and which step-up policy applies to them — so assigning one changes what every member of
|
|
1823
|
+
* that tenant can do at sign-in. Folded into a generic `changes` map it would be an authentication-relevant
|
|
1824
|
+
* change with no actor, filed where an access review does not look.
|
|
1825
|
+
*
|
|
1826
|
+
* ## Who the actor is, per basis
|
|
1827
|
+
*
|
|
1828
|
+
* For the two DERIVATIONS there is none, and that is the point: organizations minted before the type was required
|
|
1829
|
+
* (the platform's own seeds, the first-administrator bootstrap) were typeless, and the engine repairs them before
|
|
1830
|
+
* the first read that would refuse them. `basis` is what makes that repair legible as a derivation instead of a
|
|
1831
|
+
* write nobody made, and those rows carry no `userId` because the application-scope repair has no initiator.
|
|
1832
|
+
*
|
|
1833
|
+
* For {@link OrganizationTypeAssignmentBasis.OPERATOR_PROMOTION} there IS one. It rides where every other
|
|
1834
|
+
* operator action's actor does — on the audit ROW, resolved from the execution context — rather than as a field
|
|
1835
|
+
* here, so an access review reads it the same way it reads a suspension or an ownership grant. What this schema
|
|
1836
|
+
* adds for that basis is the one thing the row cannot carry: the operator's stated REASON (`RESOURCE_OPERATION_PERFORMED`
|
|
1837
|
+
* carries no request payload, which is how `grantOwnership`'s required justification went unrecorded for months — #593).
|
|
1838
|
+
*
|
|
1839
|
+
* assurance-control: WILDO.AUDIT.SECURITY_EVENT — an authentication-relevant attribute of a tenant changed, and the
|
|
1840
|
+
* record says what decided it and, when a person did, who and why.
|
|
1841
|
+
*/
|
|
1842
|
+
export const AuditableEvent_Organization_TypeAssignedEventDataSchema = z.object({
|
|
1843
|
+
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_TYPE_ASSIGNED),
|
|
1844
|
+
organizationId: z.string(),
|
|
1845
|
+
/** The declared organization type now stored on the row. */
|
|
1846
|
+
organizationType: z.string(),
|
|
1847
|
+
/**
|
|
1848
|
+
* The type the row stored before, when it stored one the configuration no longer declares. Absent for an organization
|
|
1849
|
+
* that had no type. Recorded because this assignment REPLACES a value someone once chose: a type removed from the
|
|
1850
|
+
* declaration by mistake is recovered from exactly this field.
|
|
1851
|
+
*/
|
|
1852
|
+
previousType: z.string().optional(),
|
|
1853
|
+
basis: z.enum(OrganizationTypeAssignmentBasis),
|
|
1854
|
+
/**
|
|
1855
|
+
* The operator's stated reason, on the ONE basis that has a person behind it —
|
|
1856
|
+
* {@link OrganizationTypeAssignmentBasis.OPERATOR_PROMOTION}, whose `requestDto` requires it.
|
|
1857
|
+
*
|
|
1858
|
+
* Optional on the schema because the two derivation bases have nothing to justify: a required field
|
|
1859
|
+
* would force the boot repair to invent a sentence, and an invented justification is worse than an
|
|
1860
|
+
* absent one — it reads as a decision somebody made.
|
|
1861
|
+
*
|
|
1862
|
+
* Recorded HERE rather than left on the request because a required field nothing stores is a promise
|
|
1863
|
+
* nobody keeps, and `RESOURCE_OPERATION_PERFORMED` (which the CRITICAL promotion also emits) carries
|
|
1864
|
+
* no request payload.
|
|
1865
|
+
*/
|
|
1866
|
+
justification: z.string().optional(),
|
|
1867
|
+
});
|
|
1370
1868
|
export const AuditableEvent_Organization_DeletedEventDataSchema = z.object({
|
|
1371
1869
|
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_DELETED),
|
|
1372
1870
|
organizationId: z.string(),
|
|
@@ -1515,13 +2013,14 @@ export const AuditableEvent_Organization_ActivatedEventDataSchema = z.object({
|
|
|
1515
2013
|
*/
|
|
1516
2014
|
export const ApplicationAuthPolicySnapshotSchema = z.record(z.string(), z.unknown());
|
|
1517
2015
|
/**
|
|
1518
|
-
* The application's authored authentication policy changed between two boots.
|
|
2016
|
+
* The application's authored authentication or audit-viewer admission policy changed between two boots.
|
|
1519
2017
|
*
|
|
1520
2018
|
* The per-user-type authentication policy (`userTypes.<type>.auth` — MFA, password, and lockout
|
|
1521
2019
|
* requirements) is STATIC application configuration authored in code and taken into effect at backend
|
|
1522
2020
|
* startup. A change to it — most consequentially a WEAKENING such as turning MFA off — is a
|
|
1523
2021
|
* security-posture decision that, before this event, left no product-side record: only the source
|
|
1524
|
-
* history showed it. This event closes that gap.
|
|
2022
|
+
* history showed it. This event closes that gap. The effective `auditTrail.applicationReadAccess`
|
|
2023
|
+
* posture is recorded separately from the user-type snapshots and compared independently.
|
|
1525
2024
|
*
|
|
1526
2025
|
* It is emitted at boot, by the system, when the resolved policy snapshot differs from the last one
|
|
1527
2026
|
* recorded in the trail (detected by comparing against the most recent event of this type for the
|
|
@@ -1539,13 +2038,15 @@ export const ApplicationAuthPolicySnapshotSchema = z.record(z.string(), z.unknow
|
|
|
1539
2038
|
*/
|
|
1540
2039
|
export const AuditableEvent_ApplicationAuthPolicyChanged_EventDataSchema = z.object({
|
|
1541
2040
|
eventType: z.literal(CoreAuditableEventType.APPLICATION_AUTH_POLICY_CHANGED),
|
|
1542
|
-
|
|
1543
|
-
|
|
2041
|
+
// The owning application identity lives on the audit row, resolved by the shared writer before
|
|
2042
|
+
// database/SIEM/immutable-sink fanout. It is not duplicated inside this policy payload.
|
|
2043
|
+
/** Which user types' policies differed. Sorted; empty when only the audit-viewer access posture changed. */
|
|
1544
2044
|
changedUserTypes: z.array(z.string()),
|
|
1545
2045
|
/**
|
|
1546
2046
|
* A stable digest of the `after` snapshot. Boot change-detection compares the current digest
|
|
1547
2047
|
* against the digest carried by the most recent recorded event of this type; equal digests are the
|
|
1548
|
-
*
|
|
2048
|
+
* authentication-policy comparison. Audit-viewer access is compared independently; equal digests
|
|
2049
|
+
* alone do not suppress an access-policy change.
|
|
1549
2050
|
*/
|
|
1550
2051
|
snapshotDigest: z.string(),
|
|
1551
2052
|
/**
|
|
@@ -1555,6 +2056,15 @@ export const AuditableEvent_ApplicationAuthPolicyChanged_EventDataSchema = z.obj
|
|
|
1555
2056
|
before: z.record(z.string(), ApplicationAuthPolicySnapshotSchema).nullable(),
|
|
1556
2057
|
/** The per-user-type policy snapshot that took effect at this boot. Keys are user-type identifiers. */
|
|
1557
2058
|
after: z.record(z.string(), ApplicationAuthPolicySnapshotSchema),
|
|
2059
|
+
/**
|
|
2060
|
+
* Effective audit-viewer access posture, separately typed from authentication user types.
|
|
2061
|
+
* Absent on historical events predating this evidence. A null before means no prior recorded
|
|
2062
|
+
* policy is known, not that an earlier deployment was strict or role based.
|
|
2063
|
+
*/
|
|
2064
|
+
auditApplicationReadAccess: z.object({
|
|
2065
|
+
before: z.enum(AuditApplicationReadAccess).nullable(),
|
|
2066
|
+
after: z.enum(AuditApplicationReadAccess),
|
|
2067
|
+
}).optional(),
|
|
1558
2068
|
});
|
|
1559
2069
|
/**
|
|
1560
2070
|
* A governed lifecycle transition changed a subject's `status`.
|
|
@@ -1629,6 +2139,7 @@ export const AuditableEvent_OrganizationUnit_UpdatedEventDataSchema = z.object({
|
|
|
1629
2139
|
});
|
|
1630
2140
|
// SSO Authentication Event Data Schemas
|
|
1631
2141
|
export const AuditableEvent_User_SSOLoginEventDataSchema = z.object({
|
|
2142
|
+
assurance: ExternalAssuranceAssessmentSchema.optional(),
|
|
1632
2143
|
eventType: z.literal(CoreAuditableEventType.USER_SSO_LOGIN),
|
|
1633
2144
|
userId: z.string(),
|
|
1634
2145
|
email: z.email(),
|
|
@@ -1669,6 +2180,7 @@ export const AuditableEvent_User_SSOLoginEventDataSchema = z.object({
|
|
|
1669
2180
|
}
|
|
1670
2181
|
});
|
|
1671
2182
|
export const AuditableEvent_User_SSOLoginFailedEventDataSchema = z.object({
|
|
2183
|
+
assurance: ExternalAssuranceAssessmentSchema.optional(),
|
|
1672
2184
|
eventType: z.literal(CoreAuditableEventType.USER_SSO_LOGIN_FAILED),
|
|
1673
2185
|
email: z.email().optional(),
|
|
1674
2186
|
providerRef: z.string().optional(),
|
|
@@ -1681,15 +2193,46 @@ export const AuditableEvent_User_SSOLoginFailedEventDataSchema = z.object({
|
|
|
1681
2193
|
ipAddress: z.string(),
|
|
1682
2194
|
userAgent: z.string(),
|
|
1683
2195
|
});
|
|
2196
|
+
/**
|
|
2197
|
+
* A sign-in was refused because the claiming scope requires SSO (#1242).
|
|
2198
|
+
*
|
|
2199
|
+
* `organizationId` was REQUIRED here, and that is what made the event unemittable at half its own
|
|
2200
|
+
* refusal sites: `enforcement.requireSSO` lives on the POLYMORPHIC SSO config, so an APPLICATION-scope
|
|
2201
|
+
* policy refuses sign-ins for the application itself and there is no organization to name. Requiring
|
|
2202
|
+
* one would have left exactly those refusals with no trail — the outcome this CRITICAL event exists to
|
|
2203
|
+
* prevent. It now carries either scope and refuses anything but exactly one, following
|
|
2204
|
+
* `EMERGENCY_ACCESS_USED`, which was widened for the same reason on the same config.
|
|
2205
|
+
*
|
|
2206
|
+
* `attemptedProviderRef` and `attemptedConnectionType` are OPTIONAL because two of the four refusal
|
|
2207
|
+
* sites have no attempted provider at all: a password sign-in and a registration are refused BECAUSE
|
|
2208
|
+
* no SSO was attempted. Requiring them would have forced a placeholder, and a placeholder in an
|
|
2209
|
+
* audit row is worse than an absent field — it is a fact nobody can distinguish from a real one.
|
|
2210
|
+
*/
|
|
1684
2211
|
export const AuditableEvent_User_SSOEnforcementBlockedEventDataSchema = z.object({
|
|
1685
2212
|
eventType: z.literal(CoreAuditableEventType.USER_SSO_ENFORCEMENT_BLOCKED),
|
|
1686
2213
|
email: z.email(),
|
|
1687
|
-
attemptedProviderRef: z.string(),
|
|
1688
|
-
attemptedConnectionType: z.enum(SsoConnectionType),
|
|
1689
|
-
|
|
2214
|
+
attemptedProviderRef: z.string().optional(),
|
|
2215
|
+
attemptedConnectionType: z.enum(SsoConnectionType).optional(),
|
|
2216
|
+
scopeType: z.enum(AuthScopeType),
|
|
2217
|
+
organizationId: z.string().optional(),
|
|
2218
|
+
applicationId: z.string().optional(),
|
|
1690
2219
|
enforcementPolicy: z.string(),
|
|
1691
2220
|
ipAddress: z.string(),
|
|
1692
2221
|
userAgent: z.string(),
|
|
2222
|
+
}).superRefine((event, ctx) => {
|
|
2223
|
+
const hasOrganizationScope = event.scopeType === AuthScopeType.ORGANIZATION
|
|
2224
|
+
&& event.organizationId !== undefined
|
|
2225
|
+
&& event.applicationId === undefined;
|
|
2226
|
+
const hasApplicationScope = event.scopeType === AuthScopeType.APPLICATION
|
|
2227
|
+
&& event.applicationId !== undefined
|
|
2228
|
+
&& event.organizationId === undefined;
|
|
2229
|
+
if (!hasOrganizationScope && !hasApplicationScope) {
|
|
2230
|
+
ctx.addIssue({
|
|
2231
|
+
code: 'custom',
|
|
2232
|
+
path: ['scopeType'],
|
|
2233
|
+
message: 'SSO-enforcement-blocked events require exactly one explicit tenant scope',
|
|
2234
|
+
});
|
|
2235
|
+
}
|
|
1693
2236
|
});
|
|
1694
2237
|
export const AuditableEvent_User_TokenRefreshedEventDataSchema = z.object({
|
|
1695
2238
|
eventType: z.literal(CoreAuditableEventType.USER_TOKEN_REFRESHED),
|
|
@@ -1707,13 +2250,33 @@ export const AuditableEvent_Organization_SSOConfigurationChangedEventDataSchema
|
|
|
1707
2250
|
affectedProviderRef: z.string().optional(),
|
|
1708
2251
|
changes: z.record(z.string(), z.any()).optional(),
|
|
1709
2252
|
});
|
|
1710
|
-
|
|
1711
|
-
|
|
2253
|
+
/**
|
|
2254
|
+
* The fields every SIEM export-configuration event carries; three kinds share them (#986) and differ
|
|
2255
|
+
* only in what they SAY happened, which is what a SIEM rule keys on.
|
|
2256
|
+
*/
|
|
2257
|
+
const SIEM_EXPORT_CONFIGURATION_EVENT_FIELDS = {
|
|
1712
2258
|
organizationId: z.string(),
|
|
1713
2259
|
changedBy: z.string(),
|
|
1714
2260
|
changeType: z.enum(SiemExportChangeType),
|
|
2261
|
+
/** The destination HOST only — a collector secret can live in the URL path, and this row is immutable. */
|
|
1715
2262
|
webhookUrlDomain: z.string().optional(),
|
|
1716
2263
|
eventFormatConfigured: z.string().optional(),
|
|
2264
|
+
/** NAMES of the configuration fields the write changed; never their values (the credential is among them). */
|
|
2265
|
+
changedFields: z.array(z.string()).optional(),
|
|
2266
|
+
};
|
|
2267
|
+
export const AuditableEvent_Organization_SIEMExportConfiguredEventDataSchema = z.object({
|
|
2268
|
+
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_CONFIGURED),
|
|
2269
|
+
...SIEM_EXPORT_CONFIGURATION_EVENT_FIELDS,
|
|
2270
|
+
});
|
|
2271
|
+
/** Export turned OFF (#986). Same fields; its own kind so it classifies CRITICAL. */
|
|
2272
|
+
export const AuditableEvent_Organization_SIEMExportDisabledEventDataSchema = z.object({
|
|
2273
|
+
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_DISABLED),
|
|
2274
|
+
...SIEM_EXPORT_CONFIGURATION_EVENT_FIELDS,
|
|
2275
|
+
});
|
|
2276
|
+
/** Export re-pointed at another destination (#986). Same fields; its own kind so it classifies WARNING. */
|
|
2277
|
+
export const AuditableEvent_Organization_SIEMExportDestinationChangedEventDataSchema = z.object({
|
|
2278
|
+
eventType: z.literal(CoreAuditableEventType.ORGANIZATION_SIEM_EXPORT_DESTINATION_CHANGED),
|
|
2279
|
+
...SIEM_EXPORT_CONFIGURATION_EVENT_FIELDS,
|
|
1717
2280
|
});
|
|
1718
2281
|
// Organization Provider Credential Event Data Schemas
|
|
1719
2282
|
//
|
|
@@ -1785,6 +2348,13 @@ export const AuditableEvent_OrganizationProviderCredential_UsedEventDataSchema =
|
|
|
1785
2348
|
resolvedFrom: z.enum(ProviderCredentialResolutionSource),
|
|
1786
2349
|
/** Absent when `resolvedFrom` is the deployment environment — there is no row to name. */
|
|
1787
2350
|
credentialId: z.string().optional(),
|
|
2351
|
+
/**
|
|
2352
|
+
* WHOSE credential was spent: the member who set it. For a USER-delegated organization connection
|
|
2353
|
+
* that is the person whose own vendor account every member's call acts through — the vendor
|
|
2354
|
+
* attributes the act to them, so the trail must too (decision on wildo-ai/wildo-ai#18). Absent for
|
|
2355
|
+
* a deployment-environment resolution, and for a row set with no recorded member.
|
|
2356
|
+
*/
|
|
2357
|
+
credentialSetByUserId: z.string().optional(),
|
|
1788
2358
|
});
|
|
1789
2359
|
/**
|
|
1790
2360
|
* The grant ended — by the tenant removing it, or by the tenant itself being purged.
|
|
@@ -1803,6 +2373,20 @@ export const AuditableEvent_OrganizationProviderCredential_DeletedEventDataSchem
|
|
|
1803
2373
|
deletedBy: z.string().optional(),
|
|
1804
2374
|
credentialId: z.string(),
|
|
1805
2375
|
reason: z.enum(ProviderCredentialDeletionReason),
|
|
2376
|
+
/**
|
|
2377
|
+
* What telling the VENDOR achieved, when the delete ended an OAuth2 grant (#545).
|
|
2378
|
+
*
|
|
2379
|
+
* Deleting our copy stops the application using a token; it does not end the grant at the vendor,
|
|
2380
|
+
* and a refresh token frequently never expires on its own. So this field is the difference between
|
|
2381
|
+
* a trail that says "we deleted our copy" and one that says whether the person's access was
|
|
2382
|
+
* actually withdrawn where it lives.
|
|
2383
|
+
*
|
|
2384
|
+
* ABSENT rather than a member when nothing was attempted — an organization purge through the raw
|
|
2385
|
+
* repository has no token to hand back. `not_declared` is the ordinary answer for a vendor whose
|
|
2386
|
+
* revocation is not RFC 7009-shaped, and for a pasted credential that was never a grant; it is a
|
|
2387
|
+
* recorded fact, not a failure.
|
|
2388
|
+
*/
|
|
2389
|
+
vendorRevocation: z.enum(ProviderOAuth2RevocationOutcomeValues).optional(),
|
|
1806
2390
|
});
|
|
1807
2391
|
/**
|
|
1808
2392
|
* A PERSON connected their own account at a third party to this application.
|
|
@@ -1888,6 +2472,14 @@ export const AuditableEvent_OrganizationProviderConnection_GrantedEventDataSchem
|
|
|
1888
2472
|
grantedScopes: z.array(z.string()).optional(),
|
|
1889
2473
|
accountRef: z.string().optional(),
|
|
1890
2474
|
replacedExistingConnection: z.boolean(),
|
|
2475
|
+
/**
|
|
2476
|
+
* On whose behalf the linked account acts. `user` means `grantedByUserId` linked THEIR OWN vendor
|
|
2477
|
+
* account for the organization, and every member's call will act through it (decision on
|
|
2478
|
+
* wildo-ai/wildo-ai#18) — which is why the grantor is named and the acknowledgement below recorded.
|
|
2479
|
+
*/
|
|
2480
|
+
delegation: z.enum(ExternalProvider_Connection_DelegationMode).optional(),
|
|
2481
|
+
/** The grantor acknowledged, before consenting at the vendor, that the whole organization will use their account. */
|
|
2482
|
+
organizationWideUseAcknowledged: z.boolean().optional(),
|
|
1891
2483
|
});
|
|
1892
2484
|
/**
|
|
1893
2485
|
* The stored VALUE changed for a person's credential that already existed.
|
|
@@ -1928,25 +2520,47 @@ export const AuditableEvent_UserProviderCredential_UsedEventDataSchema = z.objec
|
|
|
1928
2520
|
credentialId: z.string(),
|
|
1929
2521
|
});
|
|
1930
2522
|
/**
|
|
1931
|
-
* The person's grant ended — by them removing it, or by their
|
|
2523
|
+
* The person's grant ended — by them removing it, by their own erasure, or by their account being deleted.
|
|
1932
2524
|
*
|
|
1933
2525
|
* `reason` matters more here than on the organization sibling. A credential removed by a cascade
|
|
1934
2526
|
* from a subject-erasure request is EVIDENCE that the erasure reached this store, and it is the
|
|
1935
2527
|
* evidence an operator produces when asked whether a person's third-party keys were destroyed. The
|
|
1936
2528
|
* row itself is gone by then, so the event is all that remains.
|
|
1937
2529
|
*
|
|
2530
|
+
* `deletedBy` exists for the one reason whose actor is NOT the person: `reason: USER_DELETED`, an
|
|
2531
|
+
* account deletion (#1016) — an administrator's hard delete or the invitation sweep reaping a pending
|
|
2532
|
+
* user — where it names the deleting principal (the administrator's user id, or the `SYSTEM` sentinel).
|
|
2533
|
+
* Absent on the owner's own revoke, whose actor is `userId` by construction.
|
|
2534
|
+
*
|
|
1938
2535
|
* assurance-control: WILDO.IDENTITY.DELEGATED_AUTHORIZATION — evidence that delegated authority
|
|
1939
2536
|
* was withdrawn.
|
|
1940
|
-
* assurance-control: WILDO.PRIVACY.
|
|
1941
|
-
* third-party credentials
|
|
2537
|
+
* assurance-control: WILDO.PRIVACY.ERASURE_PROPAGATION — evidence that erasure destroyed the
|
|
2538
|
+
* subject's third-party credentials: one row per destroyed credential with `reason: USER_ERASED`,
|
|
2539
|
+
* written by the credential resource's parent-cascade removal observer because the erasure cascade
|
|
2540
|
+
* removes these rows through the raw repository (#975).
|
|
1942
2541
|
*/
|
|
1943
2542
|
export const AuditableEvent_UserProviderCredential_DeletedEventDataSchema = z.object({
|
|
1944
2543
|
eventType: z.literal(CoreAuditableEventType.USER_PROVIDER_CREDENTIAL_DELETED),
|
|
1945
2544
|
userId: z.string(),
|
|
1946
2545
|
providerRef: z.string(),
|
|
1947
2546
|
secretSlug: z.string(),
|
|
2547
|
+
deletedBy: z.string().optional(),
|
|
1948
2548
|
credentialId: z.string(),
|
|
1949
2549
|
reason: z.enum(ProviderCredentialDeletionReason),
|
|
2550
|
+
/**
|
|
2551
|
+
* What telling the VENDOR achieved, when the delete ended an OAuth2 grant (#545).
|
|
2552
|
+
*
|
|
2553
|
+
* Deleting our copy stops the application using a token; it does not end the grant at the vendor,
|
|
2554
|
+
* and a refresh token frequently never expires on its own. So this field is the difference between
|
|
2555
|
+
* a trail that says "we deleted our copy" and one that says whether the person's access was
|
|
2556
|
+
* actually withdrawn where it lives.
|
|
2557
|
+
*
|
|
2558
|
+
* ABSENT rather than a member when nothing was attempted — an organization purge through the raw
|
|
2559
|
+
* repository has no token to hand back. `not_declared` is the ordinary answer for a vendor whose
|
|
2560
|
+
* revocation is not RFC 7009-shaped, and for a pasted credential that was never a grant; it is a
|
|
2561
|
+
* recorded fact, not a failure.
|
|
2562
|
+
*/
|
|
2563
|
+
vendorRevocation: z.enum(ProviderOAuth2RevocationOutcomeValues).optional(),
|
|
1950
2564
|
});
|
|
1951
2565
|
// Outbound M2M Webhook Event Data Schemas
|
|
1952
2566
|
/**
|
|
@@ -2072,6 +2686,18 @@ export const AuditableEvent_User_RegisteredEventDataSchema = z.object({
|
|
|
2072
2686
|
email: z.string(),
|
|
2073
2687
|
ipAddress: z.string(),
|
|
2074
2688
|
userAgent: z.string(),
|
|
2689
|
+
/**
|
|
2690
|
+
* HOW the account was acquired — the same vocabulary the registration policy is authored in, so "who
|
|
2691
|
+
* registered through which door" is answered by the trail rather than reconstructed from neighbouring
|
|
2692
|
+
* events. A first social or enterprise sign-in creates an account exactly as `/auth/register` does, and
|
|
2693
|
+
* until #1141 only the password door recorded it.
|
|
2694
|
+
*
|
|
2695
|
+
* Optional on the schema only because rows written before the field existed carry none; every emitter
|
|
2696
|
+
* states it (`logUserRegistered` requires it).
|
|
2697
|
+
*/
|
|
2698
|
+
acquisitionChannel: z.enum(RegistrationAcquisitionChannel).optional(),
|
|
2699
|
+
/** The external identity provider that vouched for the account, for a social or enterprise sign-in. */
|
|
2700
|
+
providerRef: z.string().optional(),
|
|
2075
2701
|
});
|
|
2076
2702
|
export const AuditableEvent_User_EmailVerifiedEventDataSchema = z.object({
|
|
2077
2703
|
eventType: z.literal(CoreAuditableEventType.USER_EMAIL_VERIFIED),
|
|
@@ -2321,6 +2947,29 @@ export const AuditableEvent_OAuth2ProviderBlockedEventDataSchema = z.object({
|
|
|
2321
2947
|
});
|
|
2322
2948
|
}
|
|
2323
2949
|
});
|
|
2950
|
+
/**
|
|
2951
|
+
* Authentication-context demand unsatisfied (issue #444).
|
|
2952
|
+
*
|
|
2953
|
+
* Carries BOTH sides of the comparison, because either alone is unactionable: `demandedAcrValues`
|
|
2954
|
+
* is what the connection authored, `receivedAcr` is what the provider's ID token reported. The
|
|
2955
|
+
* received value is OPTIONAL and its absence is the distinct, common case — a provider that emits
|
|
2956
|
+
* no `acr` claim at all — which reads very differently from one that answered with a weaker
|
|
2957
|
+
* context, and an operator must be able to tell them apart from the trail alone.
|
|
2958
|
+
*
|
|
2959
|
+
* No email field. The refusal happens before any identity is established or trusted, and recording
|
|
2960
|
+
* an unauthenticated claimant's address as though it were a subject is the kind of quiet personal
|
|
2961
|
+
* data this family avoids; `providerRef` and the two ACR sides are what a reader needs.
|
|
2962
|
+
*/
|
|
2963
|
+
export const AuditableEvent_OidcAcrDemandUnsatisfiedEventDataSchema = z.object({
|
|
2964
|
+
eventType: z.literal(CoreAuditableEventType.OIDC_ACR_DEMAND_UNSATISFIED),
|
|
2965
|
+
providerRef: z.string(),
|
|
2966
|
+
/** The ordered list of acceptable values the connection authored. Never empty — an empty demand is not enforced at all. */
|
|
2967
|
+
demandedAcrValues: z.array(z.string()).min(1),
|
|
2968
|
+
/** What the ID token's `acr` claim reported. ABSENT when the provider emitted no claim. */
|
|
2969
|
+
receivedAcr: z.string().optional(),
|
|
2970
|
+
/** Present when the ID token itself could not be read, which is a different refusal from a mismatched claim. */
|
|
2971
|
+
failureReason: z.string().optional(),
|
|
2972
|
+
});
|
|
2324
2973
|
// Emergency Access Event Data Schema
|
|
2325
2974
|
/**
|
|
2326
2975
|
* A named break-glass account signed in past its tenant's own SSO requirement (#423).
|
|
@@ -2404,7 +3053,8 @@ export const AuditableEvent_FieldAccess_EventDataSchema = z.object({
|
|
|
2404
3053
|
*
|
|
2405
3054
|
* ## Correlation across a cascade
|
|
2406
3055
|
*
|
|
2407
|
-
*
|
|
3056
|
+
* The framework-managed lane covers API, internal call and repository-only writes; OVERRIDE_ALL
|
|
3057
|
+
* implementations own their committed emission. A framework-managed tenant deletion
|
|
2408
3058
|
* produces one row per cascaded child. The top-level `correlationId` is inherited by every sub-call
|
|
2409
3059
|
* context and preserved across mid-flight operation corrections, so it groups the whole fan-out to one request;
|
|
2410
3060
|
* `subCallDepth` separates the initiating operation (0) from what it cascaded into.
|
|
@@ -2413,7 +3063,8 @@ export const AuditableEvent_FieldAccess_EventDataSchema = z.object({
|
|
|
2413
3063
|
*
|
|
2414
3064
|
* `changedFields` names every field the write touched — a field NAME is not personal data, so it is
|
|
2415
3065
|
* always safe and always recorded. `fieldEvidence` carries before/after VALUES only for fields the
|
|
2416
|
-
* schema marks `.isAuditEvidence()`.
|
|
3066
|
+
* schema marks `.isAuditEvidence()`. The separate `reason` records an explicitly selected operator
|
|
3067
|
+
* justification, not an arbitrary request payload or a copy of a mutable resource reason field.
|
|
2417
3068
|
*
|
|
2418
3069
|
* Values are limited on purpose: audit rows replicate to the per-org SIEM and to the immutable
|
|
2419
3070
|
* ledger, and **the immutable ledger cannot be scrubbed** — so copying arbitrary personal data into
|
|
@@ -2443,10 +3094,26 @@ export const AuditableEvent_ResourceOperationPerformed_EventDataSchema = z.objec
|
|
|
2443
3094
|
/** `true` for the bulk form, whose subject is a set rather than one row. */
|
|
2444
3095
|
isBulkOperation: z.boolean().optional(),
|
|
2445
3096
|
// ── Subject ──
|
|
2446
|
-
/** The row acted on. Absent for bulk operations,
|
|
3097
|
+
/** The row acted on. Absent for bulk operations, whose subject is the set below. */
|
|
2447
3098
|
resourceId: z.string().optional(),
|
|
2448
3099
|
/** Bulk operations only: how many rows the write affected. */
|
|
2449
3100
|
affectedRecordCount: z.number().optional(),
|
|
3101
|
+
/**
|
|
3102
|
+
* Bulk operations only: WHICH rows the write affected.
|
|
3103
|
+
*
|
|
3104
|
+
* A count answers "how much"; a trail has to answer "what". Without this, one actor changing
|
|
3105
|
+
* forty rows left a single record saying `affectedRecordCount: 40` and naming none of them — so
|
|
3106
|
+
* the question an investigator asks first, "who changed THIS row", had no answer for any write
|
|
3107
|
+
* that was not single-row, which is exactly the case where one actor touches many records at once.
|
|
3108
|
+
*
|
|
3109
|
+
* Bounded by the batch maximum a synchronous bulk already enforces, so this is a complete list
|
|
3110
|
+
* rather than a sample: the background lane does not produce it at all, because it runs the
|
|
3111
|
+
* single-row twin per id and each row audits itself.
|
|
3112
|
+
*
|
|
3113
|
+
* Rides `eventData`, which the audit store persists as an unparsed record — so naming the rows
|
|
3114
|
+
* costs no column and no migration.
|
|
3115
|
+
*/
|
|
3116
|
+
affectedResourceIds: z.array(z.string()).optional(),
|
|
2450
3117
|
// ── Principal (the row's `userId` / `organizationId` / `applicationId` carry the identity) ──
|
|
2451
3118
|
/**
|
|
2452
3119
|
* The caller's roles AS THEY WERE at decision time. Roles are the framework's single
|
|
@@ -2463,6 +3130,12 @@ export const AuditableEvent_ResourceOperationPerformed_EventDataSchema = z.objec
|
|
|
2463
3130
|
/** `0` for the operation the caller invoked; deeper for what it cascaded into. */
|
|
2464
3131
|
subCallDepth: z.number(),
|
|
2465
3132
|
// ── Effect ──
|
|
3133
|
+
/**
|
|
3134
|
+
* Operator justification explicitly selected from the request by the operation's audit contract.
|
|
3135
|
+
* Historical evidence, independent of mutable resource fields such as cancellationReason.
|
|
3136
|
+
* It is not inferred from arbitrary request fields and must not contain secrets.
|
|
3137
|
+
*/
|
|
3138
|
+
reason: z.string().optional(),
|
|
2466
3139
|
/** Every field the write touched. Names only — always safe, always recorded. */
|
|
2467
3140
|
changedFields: z.array(z.string()).optional(),
|
|
2468
3141
|
/**
|
|
@@ -2592,8 +3265,25 @@ export const AuditableEvent_PlatformAccessGrantLifecycle_EventDataSchema = z.obj
|
|
|
2592
3265
|
transition: z.enum(PlatformAccessGrantLifecycleTransition),
|
|
2593
3266
|
/** The grant, so the whole timeline can be reassembled from its rows. */
|
|
2594
3267
|
grantId: z.string(),
|
|
2595
|
-
/**
|
|
2596
|
-
|
|
3268
|
+
/**
|
|
3269
|
+
* WHAT the elevation reaches, and therefore who was entitled to approve it.
|
|
3270
|
+
*
|
|
3271
|
+
* Carried explicitly rather than inferred from the presence of `targetOrganizationId`: a reviewer
|
|
3272
|
+
* asking "was this approved by the party the rules require?" needs the SCOPE, and deriving it from
|
|
3273
|
+
* a field's absence would make a lost or scrubbed value read as an application-wide elevation.
|
|
3274
|
+
*
|
|
3275
|
+
* `TENANT` is the default so every row written before this axis existed keeps its true meaning —
|
|
3276
|
+
* the application-wide grant did not exist then.
|
|
3277
|
+
*/
|
|
3278
|
+
grantScope: z.enum(PlatformAccessGrantScope).default(PlatformAccessGrantScope.TENANT),
|
|
3279
|
+
/**
|
|
3280
|
+
* The tenant that was, or would have been, reached into.
|
|
3281
|
+
*
|
|
3282
|
+
* OPTIONAL since the application-wide scope arrived: that grant names no tenant, and writing a
|
|
3283
|
+
* placeholder would be a lie about which customer an operator reached. Absent ⇔
|
|
3284
|
+
* `grantScope === APPLICATION_WIDE`.
|
|
3285
|
+
*/
|
|
3286
|
+
targetOrganizationId: z.string().optional(),
|
|
2597
3287
|
/** The operator who asked. Never the decider — see {@link decidedByUserId}. */
|
|
2598
3288
|
operatorUserId: z.string(),
|
|
2599
3289
|
/** Why the operator said they needed access. Recorded on every transition, not only the request. */
|
|
@@ -2608,6 +3298,51 @@ export const AuditableEvent_PlatformAccessGrantLifecycle_EventDataSchema = z.obj
|
|
|
2608
3298
|
decidedByUserId: z.string().optional(),
|
|
2609
3299
|
/** Their stated reason, when they gave one. */
|
|
2610
3300
|
decisionReason: z.string().optional(),
|
|
3301
|
+
/**
|
|
3302
|
+
* The machine credential an application-wide grant is bound to, when it is (#297). Present on EVERY transition
|
|
3303
|
+
* of such a grant, so the second administrator's signature and every later reader see which credential the
|
|
3304
|
+
* elevation reaches — a request naming a machine must never read, in the trail, as the requester's own window.
|
|
3305
|
+
*/
|
|
3306
|
+
grantedMachineCredential: ExecutionContext_MachineCredentialSchema.optional(),
|
|
3307
|
+
});
|
|
3308
|
+
/**
|
|
3309
|
+
* One transition in the life of a system-of-record partition assignment.
|
|
3310
|
+
*
|
|
3311
|
+
* Read it to answer "who could see this remote company, and when did that start or stop". The row
|
|
3312
|
+
* names both units on a move, so a timeline reconstructed from these events is complete without
|
|
3313
|
+
* joining anything: each row carries the state it left as well as the state it reached.
|
|
3314
|
+
*
|
|
3315
|
+
* assurance-control: WILDO.ACCESS.LEAST_PRIVILEGE
|
|
3316
|
+
* assurance-control: WILDO.ACCESS.PRIVILEGE_EVIDENCE
|
|
3317
|
+
*/
|
|
3318
|
+
export const AuditableEvent_SystemOfRecordPartitionAssignmentLifecycle_EventDataSchema = z.object({
|
|
3319
|
+
eventType: z.literal(CoreAuditableEventType.SYSTEM_OF_RECORD_PARTITION_ASSIGNMENT_LIFECYCLE),
|
|
3320
|
+
/** Which transition this row records. */
|
|
3321
|
+
transition: z.enum(SystemOfRecordPartitionAssignmentTransition),
|
|
3322
|
+
/** The assignment row, so its whole timeline can be reassembled. */
|
|
3323
|
+
assignmentId: z.string(),
|
|
3324
|
+
/** The declared instance — `systemsOfRecord.<name>`. Instance, never vendor: two Odoo deployments have unrelated company ids. */
|
|
3325
|
+
system: z.string(),
|
|
3326
|
+
/** The partition's key as the remote spells it, in canonical text. */
|
|
3327
|
+
remoteKey: z.string(),
|
|
3328
|
+
/**
|
|
3329
|
+
* The unit the partition belongs to AFTER this transition.
|
|
3330
|
+
*
|
|
3331
|
+
* Absent exactly when the transition is `UNASSIGNED` — there is no resulting unit, and writing the
|
|
3332
|
+
* departed one here would make an unassignment read as an assignment to the unit that lost it.
|
|
3333
|
+
*/
|
|
3334
|
+
organizationUnitId: z.string().optional(),
|
|
3335
|
+
/**
|
|
3336
|
+
* The unit the partition belonged to BEFORE this transition.
|
|
3337
|
+
*
|
|
3338
|
+
* Present on `REASSIGNED` and `UNASSIGNED`, absent on `ASSIGNED`. This is the field the automatic
|
|
3339
|
+
* `RESOURCE_OPERATION_PERFORMED` row cannot carry, and the reason this event type exists.
|
|
3340
|
+
*/
|
|
3341
|
+
previousOrganizationUnitId: z.string().optional(),
|
|
3342
|
+
/** The operator's stated reason. Recorded on every transition, not only the first. */
|
|
3343
|
+
justification: z.string().optional(),
|
|
3344
|
+
/** The operator who made the change. */
|
|
3345
|
+
assignedByUserId: z.string().optional(),
|
|
2611
3346
|
});
|
|
2612
3347
|
export const AuditableEvent_CrossTenantAdministrativeAccess_EventDataSchema = z.object({
|
|
2613
3348
|
eventType: z.literal(CoreAuditableEventType.CROSS_TENANT_ADMINISTRATIVE_ACCESS),
|
|
@@ -2635,6 +3370,14 @@ export const AuditableEvent_CrossTenantAdministrativeAccess_EventDataSchema = z.
|
|
|
2635
3370
|
* and on any crossing admitted before grants were required.
|
|
2636
3371
|
*/
|
|
2637
3372
|
authorizingGrantId: z.string().optional(),
|
|
3373
|
+
/**
|
|
3374
|
+
* WHICH COLLECTION {@link authorizingGrantId} names.
|
|
3375
|
+
*
|
|
3376
|
+
* A grant id alone is not resolvable: `platformAccessGrants` and `applicationAccessGrants` are two
|
|
3377
|
+
* resources with two collections, and a reviewer handed only an id has to try both. Absent exactly
|
|
3378
|
+
* when `authorizingGrantId` is.
|
|
3379
|
+
*/
|
|
3380
|
+
authorizingGrantScope: z.enum(PlatformAccessGrantScope).optional(),
|
|
2638
3381
|
/**
|
|
2639
3382
|
* Did the operation variant DECLARE this crossing (`admitsCrossTenantPlatformAdministration`)?
|
|
2640
3383
|
*
|
|
@@ -2647,6 +3390,12 @@ export const AuditableEvent_CrossTenantAdministrativeAccess_EventDataSchema = z.
|
|
|
2647
3390
|
initiatorRoles: z.array(z.string()),
|
|
2648
3391
|
/** How the call was initiated — separates a human operator from framework machinery. */
|
|
2649
3392
|
executionType: z.enum(ExecutionContext_ExecutionType),
|
|
3393
|
+
/**
|
|
3394
|
+
* The credential that read, when the reader is a MACHINE. A machine has no `userId`, so without this the
|
|
3395
|
+
* row names no reader at all — an assurance collector's reads would be unattributable in the very trail it
|
|
3396
|
+
* measures, and could not be told apart from its own earlier runs (#297). Absent for a human operator.
|
|
3397
|
+
*/
|
|
3398
|
+
machineCredential: ExecutionContext_MachineCredentialSchema.optional(),
|
|
2650
3399
|
});
|
|
2651
3400
|
/**
|
|
2652
3401
|
* An application-wide directory enumeration.
|
|
@@ -2683,6 +3432,21 @@ export const AuditableEvent_PlatformDirectoryAccess_EventDataSchema = z.object({
|
|
|
2683
3432
|
initiatorRoles: z.array(z.string()),
|
|
2684
3433
|
/** How the call was initiated — separates a human operator from framework machinery. */
|
|
2685
3434
|
executionType: z.enum(ExecutionContext_ExecutionType),
|
|
3435
|
+
/**
|
|
3436
|
+
* The application-wide elevation that authorised this directory read.
|
|
3437
|
+
*
|
|
3438
|
+
* Until 2026-09-09 this event named NO elevation, because none was required — the read was gated on
|
|
3439
|
+
* an administrator role alone while the far narrower per-row crossing required a usable, time-bound,
|
|
3440
|
+
* approved grant. That inversion is what `applicationAccessGrants` closes, and this field is the
|
|
3441
|
+
* evidence half of the closure: it is what joins a directory read to the two administrators who
|
|
3442
|
+
* signed for it.
|
|
3443
|
+
*
|
|
3444
|
+
* Absent on a read the admission does not gate — an exempt execution type (batch, webhook), or a
|
|
3445
|
+
* read the confinement authority confined, neither of which is an elevation.
|
|
3446
|
+
*/
|
|
3447
|
+
authorizingGrantId: z.string().optional(),
|
|
3448
|
+
/** WHICH collection {@link authorizingGrantId} names. Absent exactly when it is. */
|
|
3449
|
+
authorizingGrantScope: z.enum(PlatformAccessGrantScope).optional(),
|
|
2686
3450
|
});
|
|
2687
3451
|
export const AuditableEvent_ResourceOperationDenied_EventDataSchema = z.object({
|
|
2688
3452
|
eventType: z.literal(CoreAuditableEventType.RESOURCE_OPERATION_DENIED),
|
|
@@ -2719,6 +3483,30 @@ export const AuditableEvent_ResourceOperationDenied_EventDataSchema = z.object({
|
|
|
2719
3483
|
* the operation's config as it stood that day.
|
|
2720
3484
|
*/
|
|
2721
3485
|
requiredRoles: z.array(z.string()).optional(),
|
|
3486
|
+
/**
|
|
3487
|
+
* The roles the caller tried to GRANT and could not — present only on
|
|
3488
|
+
* {@link ResourceOperationDenialReason.ROLE_CEILING_EXCEEDED}.
|
|
3489
|
+
*
|
|
3490
|
+
* A third set, distinct from both of its neighbours and not expressible by either: `requiredRoles`
|
|
3491
|
+
* is what the OPERATION demanded of the caller, `initiatorRoles` is what the caller HELD, and this
|
|
3492
|
+
* is what the caller attempted to confer on somebody else. It is the whole content of an
|
|
3493
|
+
* escalation attempt — "an ORG_ADMIN asked for ORG_OWNER" — and without it the row says only that
|
|
3494
|
+
* a ceiling was hit.
|
|
3495
|
+
*
|
|
3496
|
+
* Only the REFUSED subset is recorded, not the whole requested array: the roles the caller was
|
|
3497
|
+
* entitled to grant are not evidence of anything, and the difference is what a reviewer reads.
|
|
3498
|
+
*/
|
|
3499
|
+
escalatedRoles: z.array(z.string()).optional(),
|
|
3500
|
+
/**
|
|
3501
|
+
* The surface the person called, when the refusal happened on one that is NOT a resource operation — a
|
|
3502
|
+
* manual-controller route (`GET /api/v1/charts/:chartId/data`) or a WebSocket event (`badge:get`).
|
|
3503
|
+
*
|
|
3504
|
+
* On such a surface the operation fields above name only the context it was authorized under (an
|
|
3505
|
+
* application read), which on its own cannot tell a chart from a feature resolution (#534 third review L3).
|
|
3506
|
+
* Absent on a resource operation, whose operation fields already ARE the surface. Carries a route TEMPLATE
|
|
3507
|
+
* where one is known, so the trail records which door was refused rather than which row was asked for.
|
|
3508
|
+
*/
|
|
3509
|
+
refusedSurface: z.string().optional(),
|
|
2722
3510
|
/**
|
|
2723
3511
|
* The caller's roles AS THEY WERE at decision time — empty when the refusal WAS the absence of
|
|
2724
3512
|
* them ({@link ResourceOperationDenialReason.MISSING_INITIATOR}).
|
|
@@ -2788,6 +3576,58 @@ export const AuditableEvent_RetainedDataAccess_EventDataSchema = z.object({
|
|
|
2788
3576
|
organizationId: z.string().optional(),
|
|
2789
3577
|
ipAddress: z.string().optional(),
|
|
2790
3578
|
});
|
|
3579
|
+
/**
|
|
3580
|
+
* A person met a governed document, and this is the release they met.
|
|
3581
|
+
*
|
|
3582
|
+
* `interaction` is the composed record from `composeGovernedDocumentInteraction`, which has already
|
|
3583
|
+
* refused anything the release does not permit and marked anything the workflow has not finished.
|
|
3584
|
+
* It is nested rather than flattened so there is ONE shape for a governed-document interaction — a
|
|
3585
|
+
* second, flatter copy here would be a second thing to keep in step with the release vocabulary.
|
|
3586
|
+
*
|
|
3587
|
+
* The SUBJECT is the audit envelope's own actor attribution plus `userId` here, never a third
|
|
3588
|
+
* spelling inside the record; see the interaction schema's JSDoc for why.
|
|
3589
|
+
*
|
|
3590
|
+
* assurance-control: WILDO.PRIVACY.CONSENT_RECORD
|
|
3591
|
+
*/
|
|
3592
|
+
export const AuditableEvent_GovernedDocument_InteractionRecordedEventDataSchema = z.object({
|
|
3593
|
+
eventType: z.literal(CoreAuditableEventType.GOVERNED_DOCUMENT_INTERACTION_RECORDED),
|
|
3594
|
+
/**
|
|
3595
|
+
* The identified person who met the document. Absent exactly when `anonymousUserId` is present
|
|
3596
|
+
* (#1258 Step 5) — a signed-in registrant or an already-identified reader has one; a visitor
|
|
3597
|
+
* reading a public notice before ever creating an account does not.
|
|
3598
|
+
*/
|
|
3599
|
+
userId: z.string().optional(),
|
|
3600
|
+
/**
|
|
3601
|
+
* The pre-identity visitor who met the document, when nobody is signed in (#1258 Step 5).
|
|
3602
|
+
* `AnonymousUser._id` / `ExecutionContext.anonymousUserId` — the same identity Step 1's consent
|
|
3603
|
+
* carry is keyed on, never a second visitor-identity concept.
|
|
3604
|
+
*/
|
|
3605
|
+
anonymousUserId: z.string().optional(),
|
|
3606
|
+
/** What they did, which release they did it to, and that release's standing at the time. */
|
|
3607
|
+
interaction: GovernedDocumentInteractionSchema,
|
|
3608
|
+
/**
|
|
3609
|
+
* TRUE-but-unfinished notes carried from composition — today, that the release was UNAPPROVED.
|
|
3610
|
+
*
|
|
3611
|
+
* Recorded rather than discarded because an advisory is the only trace that the mechanism
|
|
3612
|
+
* proceeded deliberately rather than by omission.
|
|
3613
|
+
*/
|
|
3614
|
+
advisoryKinds: z.array(z.string()),
|
|
3615
|
+
ipAddress: z.string().optional(),
|
|
3616
|
+
}).superRefine((event, context) => {
|
|
3617
|
+
// Exactly one subject, never zero (a record naming nobody is not a record) and never both (two
|
|
3618
|
+
// identities for one act is two different claims about who acted).
|
|
3619
|
+
const hasUser = event.userId !== undefined;
|
|
3620
|
+
const hasAnonymous = event.anonymousUserId !== undefined;
|
|
3621
|
+
if (hasUser === hasAnonymous) {
|
|
3622
|
+
context.addIssue({
|
|
3623
|
+
code: 'custom',
|
|
3624
|
+
path: hasUser ? ['anonymousUserId'] : ['userId'],
|
|
3625
|
+
message: hasUser
|
|
3626
|
+
? 'a governed-document interaction names both userId and anonymousUserId — exactly one subject met the document'
|
|
3627
|
+
: 'a governed-document interaction names neither userId nor anonymousUserId — a record must name who met the document',
|
|
3628
|
+
});
|
|
3629
|
+
}
|
|
3630
|
+
});
|
|
2791
3631
|
/**
|
|
2792
3632
|
* A DATA SUBJECT EXPORT — the compliance record of the framework assembling everything it holds
|
|
2793
3633
|
* about one person and disclosing it.
|
|
@@ -2882,6 +3722,198 @@ export const AuditableEvent_CollectionDataExport_EventDataSchema = z.object({
|
|
|
2882
3722
|
/** Tenant scope, when the export ran org-scoped. */
|
|
2883
3723
|
organizationId: z.string().optional(),
|
|
2884
3724
|
});
|
|
3725
|
+
/**
|
|
3726
|
+
* The application CALLED a declared operation on a third-party provider (S3a/S3b; see the enum
|
|
3727
|
+
* member's docstring for why this is neither an HTTP_API read-through nor a credential-use event).
|
|
3728
|
+
*
|
|
3729
|
+
* One event per OUTBOUND CALL, emitted on both the success and the failure path. Recording only
|
|
3730
|
+
* what worked would hide the attempts, and a refused or failed outbound call is exactly what a
|
|
3731
|
+
* reviewer wants to see first.
|
|
3732
|
+
*
|
|
3733
|
+
* Ids and SHAPE only, never a payload. There is no field for the request body, the response body or
|
|
3734
|
+
* the credential — a structural property of this schema rather than a redaction step somebody has to
|
|
3735
|
+
* remember, for the same reason the credential family carries no value field.
|
|
3736
|
+
*
|
|
3737
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — records WHOSE third-party account
|
|
3738
|
+
* an outbound call spent, which the initiator's own ids cannot answer once one execution may spend
|
|
3739
|
+
* several.
|
|
3740
|
+
*/
|
|
3741
|
+
export const AuditableEvent_ProviderOperationCall_EventDataSchema = z.object({
|
|
3742
|
+
eventType: z.literal(CoreAuditableEventType.PROVIDER_OPERATION_CALL),
|
|
3743
|
+
/** The provider whose catalogue declared the operation (e.g. `slack`). */
|
|
3744
|
+
providerRef: z.string().trim().min(1),
|
|
3745
|
+
/** The operation id as the catalogue declares it. */
|
|
3746
|
+
operationId: z.string().trim().min(1),
|
|
3747
|
+
/** The catalogue domain the operation belongs to. */
|
|
3748
|
+
domain: z.string().trim().min(1),
|
|
3749
|
+
/** The HTTP method the compiled request used. */
|
|
3750
|
+
method: z.string().trim().min(1),
|
|
3751
|
+
/** `READ` | `WRITE`, as the operation declares its effect — the axis a reviewer filters on first. */
|
|
3752
|
+
classification: z.string().trim().min(1),
|
|
3753
|
+
/**
|
|
3754
|
+
* WHOSE ACCOUNT the call spent: `application` | `organization` | `user`.
|
|
3755
|
+
*
|
|
3756
|
+
* Deliberately separate from `organizationId` below, which records the tenant the REQUEST was
|
|
3757
|
+
* scoped to. Those are the same tenant in the ordinary case and different ones exactly where it
|
|
3758
|
+
* matters — a trail carrying only the initiator's organization would attribute a fan-out's calls
|
|
3759
|
+
* to the wrong tenants.
|
|
3760
|
+
*/
|
|
3761
|
+
connectionOwnerScope: z.string().trim().min(1),
|
|
3762
|
+
/** The owner's id, absent for an application-owned call which names no second party. */
|
|
3763
|
+
connectionOwnerId: z.string().optional(),
|
|
3764
|
+
/** `service` | `user` — whether the call acted for the owner itself or on a person's delegation. */
|
|
3765
|
+
connectionDelegation: z.string().trim().min(1),
|
|
3766
|
+
/** HTTP status of the answer; absent when the call never got one. */
|
|
3767
|
+
status: z.number().int().optional(),
|
|
3768
|
+
/** Present when the call failed, naming the failure KIND rather than the vendor's prose. */
|
|
3769
|
+
failureKind: z.string().optional(),
|
|
3770
|
+
/**
|
|
3771
|
+
* The `requiredScopes` verdict (#979) — present only when the operation declares required scopes. `not_recorded`
|
|
3772
|
+
* is the one to read twice: the call went out without its scopes being checked.
|
|
3773
|
+
*/
|
|
3774
|
+
scopeCheck: z.enum(ProviderOperationScopeCheck).optional(),
|
|
3775
|
+
/** The required scopes the grant lacked — present with `scopeCheck: missing`. Scope names only, never a token. */
|
|
3776
|
+
missingScopes: z.array(z.string()).optional(),
|
|
3777
|
+
/** The REAL initiating user — absent only for genuine machine/internal executions. */
|
|
3778
|
+
initiatorUserId: z.string().optional(),
|
|
3779
|
+
/** The execution type that acted, for the machine/internal cases. */
|
|
3780
|
+
executionType: z.string().optional(),
|
|
3781
|
+
/** The tenant the REQUEST was scoped to — see `connectionOwnerScope`. */
|
|
3782
|
+
organizationId: z.string().optional(),
|
|
3783
|
+
});
|
|
3784
|
+
/**
|
|
3785
|
+
* The browser door REFUSED a provider operation (#367) — see the enum member for why this is not a
|
|
3786
|
+
* failed call.
|
|
3787
|
+
*
|
|
3788
|
+
* Ids and shape only, like its call sibling: the request's `input` is never recorded. What the caller
|
|
3789
|
+
* ASKED FOR is recorded even when it names nothing real, because a refusal records an attempt rather
|
|
3790
|
+
* than proving the provider or operation exists.
|
|
3791
|
+
*
|
|
3792
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT
|
|
3793
|
+
*/
|
|
3794
|
+
export const AuditableEvent_ProviderOperationDenied_EventDataSchema = z.object({
|
|
3795
|
+
eventType: z.literal(CoreAuditableEventType.PROVIDER_OPERATION_DENIED),
|
|
3796
|
+
denialReason: z.enum(ProviderOperationDenialReason),
|
|
3797
|
+
/** The provider the request named. */
|
|
3798
|
+
providerRef: z.string().trim().min(1),
|
|
3799
|
+
/** The operation id the request named. */
|
|
3800
|
+
operationId: z.string().trim().min(1),
|
|
3801
|
+
/** The account the request asked to spend: `application` | `organization` | `user`. */
|
|
3802
|
+
connectionOwnerScope: z.string().trim().min(1),
|
|
3803
|
+
/** The owner's id, absent for an application-owned request. */
|
|
3804
|
+
connectionOwnerId: z.string().optional(),
|
|
3805
|
+
/** `service` | `user`, as requested. */
|
|
3806
|
+
connectionDelegation: z.string().trim().min(1),
|
|
3807
|
+
/**
|
|
3808
|
+
* The roles the policy required — present on {@link ProviderOperationDenialReason.INSUFFICIENT_ROLES}
|
|
3809
|
+
* and {@link ProviderOperationDenialReason.ROLES_NOT_APPLICABLE_TO_TARGET}.
|
|
3810
|
+
*/
|
|
3811
|
+
requiredRoles: z.array(z.string()).optional(),
|
|
3812
|
+
/**
|
|
3813
|
+
* The roles the caller held IN THE SCOPE THAT WAS CHECKED, at decision time — present on
|
|
3814
|
+
* {@link ProviderOperationDenialReason.INSUFFICIENT_ROLES}, so the row explains itself.
|
|
3815
|
+
*/
|
|
3816
|
+
heldRoles: z.array(z.string()).optional(),
|
|
3817
|
+
/** The refused person. Absent only on {@link ProviderOperationDenialReason.MISSING_USER_SESSION}. */
|
|
3818
|
+
initiatorUserId: z.string().optional(),
|
|
3819
|
+
/** The execution type that asked, which is what explains a missing user. */
|
|
3820
|
+
executionType: z.string().optional(),
|
|
3821
|
+
/** The tenant the REQUEST was scoped to. */
|
|
3822
|
+
organizationId: z.string().optional(),
|
|
3823
|
+
});
|
|
3824
|
+
/**
|
|
3825
|
+
* An agent reached an MCP server — the outbound trail for a tool call that leaves the trust
|
|
3826
|
+
* boundary (#491).
|
|
3827
|
+
*
|
|
3828
|
+
* One event per ATTEMPT, successful or not. Recording only what worked would hide exactly what a
|
|
3829
|
+
* reviewer wants first: the refused targets, the calls that timed out, and the tools that answered
|
|
3830
|
+
* with their own error. `outcome` names which of those it was, in the client's own vocabulary, so
|
|
3831
|
+
* the trail and the logs agree on the words.
|
|
3832
|
+
*
|
|
3833
|
+
* Ids, HOST and SHAPE only — never a payload. There is no field for the tool arguments, the tool
|
|
3834
|
+
* result or the credential. That is a structural property of this schema rather than a redaction
|
|
3835
|
+
* step somebody has to remember, the same choice the provider-call and credential families make.
|
|
3836
|
+
* `destinationHost` and not the URL, because an MCP endpoint routinely carries a tenant or session
|
|
3837
|
+
* identifier in its path.
|
|
3838
|
+
*
|
|
3839
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — records WHOSE third-party account
|
|
3840
|
+
* an agent's tool call spent, which the initiator's own ids cannot answer once one turn may spend
|
|
3841
|
+
* either the person's or the tenant's.
|
|
3842
|
+
*/
|
|
3843
|
+
export const AuditableEvent_McpToolCall_EventDataSchema = z.object({
|
|
3844
|
+
eventType: z.literal(CoreAuditableEventType.MCP_TOOL_CALL),
|
|
3845
|
+
/** The server ref the application declared and the agent named. */
|
|
3846
|
+
mcpServerRef: z.string().trim().min(1),
|
|
3847
|
+
/** HOST only — see the docstring for why never the URL. */
|
|
3848
|
+
destinationHost: z.string().trim().min(1),
|
|
3849
|
+
/** The tool called. Absent when the attempt failed before any tool was chosen (discovery). */
|
|
3850
|
+
toolName: z.string().optional(),
|
|
3851
|
+
/** The client's outcome kind — `ok`, `refused_target`, `unreachable`, `timed_out`, `protocol_error`, `tool_error`. */
|
|
3852
|
+
outcome: z.string().trim().min(1),
|
|
3853
|
+
/**
|
|
3854
|
+
* WHOSE ACCOUNT the call spent: `user` | `organization`. Absent when no credential was resolved,
|
|
3855
|
+
* which is itself the reason the attempt failed.
|
|
3856
|
+
*
|
|
3857
|
+
* Separate from `organizationId` for the same reason as the provider-call event: those are the
|
|
3858
|
+
* same tenant in the ordinary case, and different ones exactly where it matters.
|
|
3859
|
+
*/
|
|
3860
|
+
connectionOwnerScope: z.string().optional(),
|
|
3861
|
+
/** The credential row that was spent, for the audit trail. */
|
|
3862
|
+
credentialId: z.string().optional(),
|
|
3863
|
+
/**
|
|
3864
|
+
* WHOSE credential it was: the member who set an organization credential. For an organization-lent
|
|
3865
|
+
* member account (decision on wildo-ai/wildo-ai#18) that is the person the far server attributes the
|
|
3866
|
+
* call to, captured at call time rather than joined later, since a reconnect moves it.
|
|
3867
|
+
*/
|
|
3868
|
+
credentialSetByUserId: z.string().optional(),
|
|
3869
|
+
/** The REAL initiating user — absent only for genuine machine/internal executions. */
|
|
3870
|
+
initiatorUserId: z.string().optional(),
|
|
3871
|
+
/** The tenant the turn was scoped to — see `connectionOwnerScope`. */
|
|
3872
|
+
organizationId: z.string().optional(),
|
|
3873
|
+
/** The agent whose declaration named the server, so a trail can be read back to a configuration. */
|
|
3874
|
+
agentRef: z.string().optional(),
|
|
3875
|
+
});
|
|
3876
|
+
/**
|
|
3877
|
+
* A human approver AUTHORED the arguments an approval-gated tool ran with (#566).
|
|
3878
|
+
*
|
|
3879
|
+
* One row per MODIFIED approval — never per approval. See the enum member's docstring for why an
|
|
3880
|
+
* ordinary approval is not this event, and for why no argument VALUE appears in this schema.
|
|
3881
|
+
*
|
|
3882
|
+
* `proposedInputDigest` / `executedInputDigest` are the model SDK's own canonical input digests, the
|
|
3883
|
+
* same values its approval signature is computed over. That is what makes them evidence rather than
|
|
3884
|
+
* a convenience: a reader holding the executed call can recompute the second and see it match, and
|
|
3885
|
+
* the two differing is proof that the call which ran is not the call which was proposed — with no
|
|
3886
|
+
* copy of either payload on the trail.
|
|
3887
|
+
*
|
|
3888
|
+
* assurance-control: WILDO.ACCESS.AUTHORIZATION_DECISION_AUDIT — records that an authorization
|
|
3889
|
+
* decision REWROTE the act it authorized, and who made it.
|
|
3890
|
+
*/
|
|
3891
|
+
export const AuditableEvent_AgentToolApprovalModified_EventDataSchema = z.object({
|
|
3892
|
+
eventType: z.literal(CoreAuditableEventType.AGENT_TOOL_APPROVAL_MODIFIED),
|
|
3893
|
+
/** The conversational execution whose turn was paused. */
|
|
3894
|
+
executionId: z.string().trim().min(1),
|
|
3895
|
+
/** The pending decision's id — correlates this row with the pause and the resume in the logs. */
|
|
3896
|
+
approvalId: z.string().trim().min(1),
|
|
3897
|
+
/** The actor system the turn belongs to. */
|
|
3898
|
+
systemRef: z.string().trim().min(1),
|
|
3899
|
+
/** The agent whose declaration gated the tool, so a trail reads back to a configuration. */
|
|
3900
|
+
agentRef: z.string().trim().min(1),
|
|
3901
|
+
/** The approval-gated tool, as the model was shown it. */
|
|
3902
|
+
toolName: z.string().trim().min(1),
|
|
3903
|
+
/** Canonical digest of the arguments the MODEL proposed. */
|
|
3904
|
+
proposedInputDigest: z.string().trim().min(1),
|
|
3905
|
+
/** Canonical digest of the arguments that actually RAN. Differs from the above by construction. */
|
|
3906
|
+
executedInputDigest: z.string().trim().min(1),
|
|
3907
|
+
/**
|
|
3908
|
+
* The argument NAMES the approver changed, sorted. Names only — a field name is not personal data,
|
|
3909
|
+
* which is exactly why it is always safe and always recorded.
|
|
3910
|
+
*/
|
|
3911
|
+
modifiedArgumentKeys: z.array(z.string()),
|
|
3912
|
+
/** The approver. Absent never happens on this plane — only a present human can answer — but the envelope owns the field. */
|
|
3913
|
+
approverUserId: z.string().optional(),
|
|
3914
|
+
/** The tenant the turn was scoped to. */
|
|
3915
|
+
organizationId: z.string().optional(),
|
|
3916
|
+
});
|
|
2885
3917
|
/**
|
|
2886
3918
|
* Rows were read THROUGH an HTTP-API resource binding — the read-through trail for data living in
|
|
2887
3919
|
* an EXTERNAL system the platform does not own (ETL plan D8/R6; see the enum member's docstring
|
|
@@ -2933,6 +3965,9 @@ export const AuditableEvent_HttpApiReadThroughAccess_EventDataSchema = z.object(
|
|
|
2933
3965
|
* assurance-control: WILDO.AUDIT.ATTRIBUTION — the outbound deletion names the subject it served
|
|
2934
3966
|
* and the external system it reached; the erasure report is the per-request receipt, this row is
|
|
2935
3967
|
* the queryable trail.
|
|
3968
|
+
*
|
|
3969
|
+
* assurance-control: WILDO.PRIVACY.ERASURE_PROPAGATION — an erasure that deleted rows in an external
|
|
3970
|
+
* system leaves a durable record naming that system and how many rows it deleted there.
|
|
2936
3971
|
*/
|
|
2937
3972
|
export const AuditableEvent_HttpApiExternalErasure_EventDataSchema = z.object({
|
|
2938
3973
|
eventType: z.literal(CoreAuditableEventType.HTTP_API_EXTERNAL_ERASURE),
|
|
@@ -2964,6 +3999,9 @@ export const AuditableEvent_HttpApiExternalErasure_EventDataSchema = z.object({
|
|
|
2964
3999
|
*
|
|
2965
4000
|
* assurance-control: WILDO.AUDIT.ATTRIBUTION — an acknowledged erasure hole is recorded per
|
|
2966
4001
|
* resource, per erasure request, never as a standing posture.
|
|
4002
|
+
*
|
|
4003
|
+
* assurance-control: WILDO.PRIVACY.ERASURE_PROPAGATION — a store the erasure deliberately did not
|
|
4004
|
+
* reach is recorded as such, so the accounting cannot read as complete.
|
|
2967
4005
|
*/
|
|
2968
4006
|
export const AuditableEvent_HttpApiNonErasureAcknowledged_EventDataSchema = z.object({
|
|
2969
4007
|
eventType: z.literal(CoreAuditableEventType.HTTP_API_NON_ERASURE_ACKNOWLEDGED),
|
|
@@ -3228,16 +4266,23 @@ export const AuditableEvent_DataSchema = z.record(z.string(), z.any());
|
|
|
3228
4266
|
export const AuditableEvent_BaseSchema = z.object({
|
|
3229
4267
|
_id: z.string().isPrimaryKey().isSummaryField(),
|
|
3230
4268
|
/**
|
|
3231
|
-
* Store-agnostic, server-
|
|
4269
|
+
* Store-agnostic, server-assigned correlation key (UUID). The Mongo `_id` is
|
|
3232
4270
|
* THIS store's primary key, but immudb (and any future audit sink) has its
|
|
3233
4271
|
* own native key — so cross-store correlation needs an id that belongs to the
|
|
3234
|
-
* EVENT, not to one store.
|
|
4272
|
+
* EVENT, not to one store. Fixed in `AuditLogsBackendService._createAuditLog`
|
|
4273
|
+
* — minted there, or supplied deterministically by a deferred recording (#535) —
|
|
3235
4274
|
* BEFORE the DB write and carried on BOTH the DB row AND the provider fan-out
|
|
3236
4275
|
* emission, so the Phase-3 completeness reconciler can match DB rows ⇄ immudb
|
|
3237
4276
|
* records (and `AuditLogVerification.verifyAuditEvent(eventId)` resolves the
|
|
3238
4277
|
* same key). Not the primary key: `_id` stays the DB PK.
|
|
4278
|
+
*
|
|
4279
|
+
* UNIQUE, because it names ONE event (#535). A caller that delivers an event at least once — an outbox relay replaying
|
|
4280
|
+
* an audit record after a crash — supplies a deterministic `eventId`, and a redelivery then collides here instead of
|
|
4281
|
+
* writing a second row. immudb (write-if-absent by `eventId`) and every SIEM wire format (whose dedup key is this
|
|
4282
|
+
* value) are idempotent on the same id, so all three destinations agree on "once". Sparse, as `.isUnique()` defaults:
|
|
4283
|
+
* a row written before `eventId` existed carries none and is not a duplicate of another.
|
|
3239
4284
|
*/
|
|
3240
|
-
eventId: z.string().isDBIndexed(),
|
|
4285
|
+
eventId: z.string().isDBIndexed().isUnique(),
|
|
3241
4286
|
// Note: .optional() must come AFTER decorators to preserve optionality in TypeScript type inference
|
|
3242
4287
|
userId: z.string().isSummaryField().optional(),
|
|
3243
4288
|
/**
|
|
@@ -3353,6 +4398,7 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
|
|
|
3353
4398
|
AuditableEvent_User_AppRolesChangedEventDataSchema,
|
|
3354
4399
|
AuditableEvent_Application_SuperAdminFloorBreachedEventDataSchema,
|
|
3355
4400
|
AuditableEvent_Organization_OwnerFloorBreachedEventDataSchema,
|
|
4401
|
+
AuditableEvent_Organization_TypeAssignedEventDataSchema,
|
|
3356
4402
|
AuditableEvent_OrganizationMember_InvitedEventDataSchema,
|
|
3357
4403
|
AuditableEvent_OrganizationMember_JoinedEventDataSchema,
|
|
3358
4404
|
AuditableEvent_OrganizationMember_UpdatedEventDataSchema,
|
|
@@ -3380,6 +4426,8 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
|
|
|
3380
4426
|
AuditableEvent_User_TokenRefreshedEventDataSchema,
|
|
3381
4427
|
AuditableEvent_Organization_SSOConfigurationChangedEventDataSchema,
|
|
3382
4428
|
AuditableEvent_Organization_SIEMExportConfiguredEventDataSchema,
|
|
4429
|
+
AuditableEvent_Organization_SIEMExportDisabledEventDataSchema,
|
|
4430
|
+
AuditableEvent_Organization_SIEMExportDestinationChangedEventDataSchema,
|
|
3383
4431
|
AuditableEvent_OrganizationProviderCredential_SetEventDataSchema,
|
|
3384
4432
|
AuditableEvent_OrganizationProviderCredential_RotatedEventDataSchema,
|
|
3385
4433
|
AuditableEvent_OrganizationProviderCredential_UsedEventDataSchema,
|
|
@@ -3414,6 +4462,7 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
|
|
|
3414
4462
|
AuditableEvent_User_PhoneVerifiedEventDataSchema,
|
|
3415
4463
|
AuditableEvent_User_PhoneVerificationFailedEventDataSchema,
|
|
3416
4464
|
AuditableEvent_OAuth2ProviderBlockedEventDataSchema,
|
|
4465
|
+
AuditableEvent_OidcAcrDemandUnsatisfiedEventDataSchema,
|
|
3417
4466
|
AuditableEvent_EmergencyAccess_UsedEventDataSchema,
|
|
3418
4467
|
AuditableEvent_FieldAccess_EventDataSchema,
|
|
3419
4468
|
AuditableEvent_ResourceOperationPerformed_EventDataSchema,
|
|
@@ -3421,11 +4470,15 @@ export const AuditableEvent_TypedDataSchema = z.discriminatedUnion('eventType',
|
|
|
3421
4470
|
AuditableEvent_CrossTenantAdministrativeAccess_EventDataSchema,
|
|
3422
4471
|
AuditableEvent_PlatformDirectoryAccess_EventDataSchema,
|
|
3423
4472
|
AuditableEvent_PlatformAccessGrantLifecycle_EventDataSchema,
|
|
4473
|
+
AuditableEvent_SystemOfRecordPartitionAssignmentLifecycle_EventDataSchema,
|
|
3424
4474
|
AuditableEvent_RetainedDataAccess_EventDataSchema,
|
|
4475
|
+
AuditableEvent_GovernedDocument_InteractionRecordedEventDataSchema,
|
|
3425
4476
|
AuditableEvent_SubjectDataExport_EventDataSchema,
|
|
3426
4477
|
AuditableEvent_CollectionDataExport_EventDataSchema,
|
|
3427
4478
|
AuditableEvent_User_SessionEvictedEventDataSchema,
|
|
3428
4479
|
AuditableEvent_HttpApiReadThroughAccess_EventDataSchema,
|
|
4480
|
+
AuditableEvent_ProviderOperationCall_EventDataSchema,
|
|
4481
|
+
AuditableEvent_ProviderOperationDenied_EventDataSchema,
|
|
3429
4482
|
AuditableEvent_HttpApiExternalErasure_EventDataSchema,
|
|
3430
4483
|
AuditableEvent_HttpApiNonErasureAcknowledged_EventDataSchema,
|
|
3431
4484
|
AuditableEvent_User_CrossFrontendHandoffIssuedEventDataSchema,
|