@wildo-ai/saas-models 1.1.5 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/__tests__/setup.d.ts.map +1 -1
- package/dist/esm/__tests__/setup.js.map +1 -1
- package/dist/esm/_inspect.d.ts.map +1 -1
- package/dist/esm/_inspect.js.map +1 -1
- package/dist/esm/applications/application-metadata.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/application-metadata.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/application-subject.shared.schemas.d.ts.map +1 -1
- package/dist/esm/applications/application-subject.shared.schemas.js.map +1 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.js +2 -1
- package/dist/esm/applications/application-versions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications-context.schemas.d.ts +176 -2
- package/dist/esm/applications/applications-context.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications-context.schemas.js.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.resources-config.schemas.js +3 -2
- package/dist/esm/applications/applications.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.d.ts +7 -5
- package/dist/esm/applications/applications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/applications/applications.shared.schemas.js +6 -4
- package/dist/esm/applications/applications.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.d.ts +10 -1
- 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 +49 -15
- package/dist/esm/billing/billing-account.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/billing-account.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-account.shared.schemas.js +2 -2
- package/dist/esm/billing/billing-account.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts +25 -0
- package/dist/esm/billing/billing-configuration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-configuration.shared.schemas.js +19 -0
- package/dist/esm/billing/billing-configuration.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts +27 -5
- package/dist/esm/billing/billing-enums.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-enums.shared.schemas.js +30 -4
- package/dist/esm/billing/billing-enums.shared.schemas.js.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.d.ts +37 -11
- package/dist/esm/billing/billing-types.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/billing-types.shared.schemas.js +31 -19
- package/dist/esm/billing/billing-types.shared.schemas.js.map +1 -1
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts +2 -0
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js +18 -7
- package/dist/esm/billing/credit-pool.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.d.ts +2 -0
- package/dist/esm/billing/credit-pool.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/credit-pool.shared.schemas.js +7 -1
- package/dist/esm/billing/credit-pool.shared.schemas.js.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js +6 -6
- package/dist/esm/billing/invoice-ref.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/invoice-ref.shared.schemas.js +1 -1
- package/dist/esm/billing/invoice-ref.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.map +1 -1
- package/dist/esm/billing/price.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/price.shared.schemas.js +5 -3
- package/dist/esm/billing/price.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-behavior-policy.shared.schemas.d.ts +11 -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 +39 -23
- package/dist/esm/billing/product-behavior-policy.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product-definition.shared.schemas.d.ts +30 -2
- package/dist/esm/billing/product-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product-definition.shared.schemas.js +35 -0
- package/dist/esm/billing/product-definition.shared.schemas.js.map +1 -1
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts +6 -3
- package/dist/esm/billing/product.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/product.shared.schemas.d.ts +7 -3
- package/dist/esm/billing/product.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/product.shared.schemas.js +22 -7
- 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 +8 -8
- package/dist/esm/billing/promotions.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/promotions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/promotions.shared.schemas.js.map +1 -1
- package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts +135 -0
- package/dist/esm/billing/public-pricing-catalog.shared.atoms.d.ts.map +1 -0
- package/dist/esm/billing/public-pricing-catalog.shared.atoms.js +112 -0
- package/dist/esm/billing/public-pricing-catalog.shared.atoms.js.map +1 -0
- package/dist/esm/billing/public-pricing-catalog.shared.d.ts +30 -0
- package/dist/esm/billing/public-pricing-catalog.shared.d.ts.map +1 -0
- package/dist/esm/billing/public-pricing-catalog.shared.js +53 -0
- package/dist/esm/billing/public-pricing-catalog.shared.js.map +1 -0
- package/dist/esm/billing/referral-reward.shared.schemas.d.ts +51 -0
- package/dist/esm/billing/referral-reward.shared.schemas.d.ts.map +1 -0
- package/dist/esm/billing/referral-reward.shared.schemas.js +92 -0
- package/dist/esm/billing/referral-reward.shared.schemas.js.map +1 -0
- package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts +54 -33
- package/dist/esm/billing/referral.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.resources-config.schemas.js +56 -2
- package/dist/esm/billing/referral.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.d.ts +22 -37
- package/dist/esm/billing/referral.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/referral.shared.schemas.js +24 -44
- package/dist/esm/billing/referral.shared.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.resources-config.schemas.d.ts +9 -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 +55 -22
- package/dist/esm/billing/subscription.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.d.ts +80 -5
- package/dist/esm/billing/subscription.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/subscription.shared.schemas.js +85 -25
- package/dist/esm/billing/subscription.shared.schemas.js.map +1 -1
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-flush-evidence.shared.schemas.js.map +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.d.ts.map +1 -1
- package/dist/esm/billing/usage-record.shared.schemas.js +5 -5
- package/dist/esm/billing/usage-record.shared.schemas.js.map +1 -1
- package/dist/esm/charts/aggregation-query.shared.schemas.d.ts.map +1 -1
- package/dist/esm/charts/aggregation-query.shared.schemas.js.map +1 -1
- package/dist/esm/charts/aggregation.shared.definitions.d.ts.map +1 -1
- package/dist/esm/charts/aggregation.shared.definitions.js.map +1 -1
- package/dist/esm/charts/chart-definition-builder.shared.d.ts.map +1 -1
- package/dist/esm/charts/chart-definition-builder.shared.js.map +1 -1
- package/dist/esm/companion/artifact-placement.shared.definitions.d.ts.map +1 -1
- package/dist/esm/companion/artifact-placement.shared.definitions.js.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts +143 -2
- package/dist/esm/companion/provider-discovery.shared.schemas.d.ts.map +1 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js +84 -1
- package/dist/esm/companion/provider-discovery.shared.schemas.js.map +1 -1
- package/dist/esm/companion/shared-library-companion.shared.definitions.d.ts.map +1 -1
- package/dist/esm/companion/shared-library-companion.shared.definitions.js.map +1 -1
- package/dist/esm/companion-exports.d.ts.map +1 -1
- package/dist/esm/companion-exports.js.map +1 -1
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.d.ts +14 -1
- 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 +4 -0
- package/dist/esm/compliance/audit-trails/application-audit-logs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts +70 -0
- package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js +87 -0
- package/dist/esm/compliance/audit-trails/audit-actor.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts +34 -0
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js +137 -3
- package/dist/esm/compliance/audit-trails/audit-export-projection.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts +7 -0
- package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-log-sink.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts +28 -2
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js +29 -8
- package/dist/esm/compliance/audit-trails/audit-logs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/audit-trails/audit-trail-config.shared.schemas.d.ts +29 -6
- 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 +38 -9
- 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 +1822 -146
- 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 +1777 -87
- 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 +10 -0
- 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 +148 -7
- package/dist/esm/compliance/audit-trails/security-audit-event-envelope.shared.schema.js.map +1 -1
- package/dist/esm/compliance/data-classification/data-classification.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/data-classification/data-classification.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/documents/governed-document-interactions.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/documents/governed-documents.shared.schemas.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/documents/user-governed-document-acceptances.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/ai-use-posture.shared.schemas.d.ts +2 -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 +2 -0
- 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.map +1 -1
- package/dist/esm/compliance/privacy/capability-consent-purposes.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/client-storage.shared.schemas.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/esm/compliance/privacy/consent-gate-vocabulary.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/consent-purposes.shared.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/consent-purposes.shared.js.map +1 -1
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts +17 -8
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js +43 -20
- package/dist/esm/compliance/privacy/data-subject-rights.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization-scrub.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts +38 -0
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js +39 -0
- package/dist/esm/compliance/privacy/impersonalization.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts +35 -0
- package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js +82 -0
- package/dist/esm/compliance/privacy/legal-hold-subject-attribution.shared.utils.js.map +1 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts +37 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js +223 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts +222 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js +331 -0
- package/dist/esm/compliance/privacy/legal-holds.shared.schemas.js.map +1 -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.map +1 -1
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.d.ts +37 -3
- 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 +33 -4
- package/dist/esm/compliance/privacy/operator-compliance-identity.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/personal-data-category.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/personal-data-declaration.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/privacy.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts +52 -0
- package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js +116 -0
- package/dist/esm/compliance/privacy/provider-capability-disclosure.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts +11 -0
- package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js +11 -0
- package/dist/esm/compliance/privacy/purpose-ref.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/redaction.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/redaction.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts +93 -0
- package/dist/esm/compliance/privacy/retention-binding.shared.utils.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/retention-binding.shared.utils.js +149 -0
- package/dist/esm/compliance/privacy/retention-binding.shared.utils.js.map +1 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts +43 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js +106 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts +209 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js +226 -0
- package/dist/esm/compliance/privacy/retention-enforcement-records.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts +129 -5
- package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js +128 -4
- package/dist/esm/compliance/privacy/retention-schedule.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts +53 -0
- package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js +74 -0
- package/dist/esm/compliance/privacy/retention-scope-deleted.shared.utils.js.map +1 -0
- package/dist/esm/compliance/privacy/sharing.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/sharing.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts +311 -0
- package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.d.ts.map +1 -0
- package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js +355 -0
- package/dist/esm/compliance/privacy/subject-data-recipients.shared.schemas.js.map +1 -0
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure-lane-evidence.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts +178 -39
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js +145 -35
- package/dist/esm/compliance/privacy/subject-erasure.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-export-render.shared.utils.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js +26 -0
- package/dist/esm/compliance/privacy/subject-export-render.shared.utils.js.map +1 -1
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts +9 -0
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/privacy/subject-export.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/review-cadence.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/review-cadence.shared.schemas.js.map +1 -1
- package/dist/esm/compliance/risk-posture.shared.schemas.d.ts.map +1 -1
- package/dist/esm/compliance/risk-posture.shared.schemas.js.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/analytics-value-moments.shared.schemas.js.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts +109 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/app-configuration-shared.shared.schemas.js +57 -0
- package/dist/esm/config/app-configuration-shared.shared.schemas.js.map +1 -1
- package/dist/esm/config/app-frontend-type.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/app-frontend-type.shared.schemas.js.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.d.ts.map +1 -1
- package/dist/esm/config/auth-config-resolution.shared.utils.js.map +1 -1
- package/dist/esm/config/brand-assets.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/brand-assets.shared.schemas.js.map +1 -1
- package/dist/esm/config/configuration-validation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/configuration-validation.shared.schemas.js.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts +69 -0
- package/dist/esm/config/entity-identity-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/entity-identity-config.shared.schemas.js +93 -0
- package/dist/esm/config/entity-identity-config.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts +16 -16
- package/dist/esm/config/frontend/chart-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/chart-definition.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/chart-registration-alignment.shared.d.ts.map +1 -1
- package/dist/esm/config/frontend/chart-registration-alignment.shared.js.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts +160 -61
- package/dist/esm/config/frontend/navigation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/navigation.shared.schemas.js +297 -65
- package/dist/esm/config/frontend/navigation.shared.schemas.js.map +1 -1
- package/dist/esm/config/frontend/onboarding.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/frontend/onboarding.shared.schemas.js.map +1 -1
- package/dist/esm/config/postgresql.shared.schemas.d.ts.map +1 -1
- package/dist/esm/config/postgresql.shared.schemas.js.map +1 -1
- package/dist/esm/config/registration-acquisition-policy.shared.utils.d.ts.map +1 -1
- package/dist/esm/config/registration-acquisition-policy.shared.utils.js.map +1 -1
- package/dist/esm/config-authoring.entry.d.ts.map +1 -1
- package/dist/esm/config-authoring.entry.js.map +1 -1
- package/dist/esm/crdt/crdt-merge.shared.utils.d.ts.map +1 -1
- package/dist/esm/crdt/crdt-merge.shared.utils.js.map +1 -1
- package/dist/esm/data-seeding/data-seeding-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/data-seeding/data-seeding-config.shared.schemas.js.map +1 -1
- package/dist/esm/errors/caught-error-description.shared.utils.d.ts +69 -0
- package/dist/esm/errors/caught-error-description.shared.utils.d.ts.map +1 -0
- package/dist/esm/errors/caught-error-description.shared.utils.js +77 -0
- package/dist/esm/errors/caught-error-description.shared.utils.js.map +1 -0
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.d.ts +76 -3
- 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 +76 -2
- package/dist/esm/errors/errors.custom-message-ref.shared.definitions.js.map +1 -1
- package/dist/esm/errors/errors.shared.definitions.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.definitions.js.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.d.ts +20 -1
- package/dist/esm/errors/errors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.schemas.js +16 -9
- package/dist/esm/errors/errors.shared.schemas.js.map +1 -1
- package/dist/esm/errors/errors.shared.utils.d.ts +0 -24
- package/dist/esm/errors/errors.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/errors.shared.utils.js +0 -39
- package/dist/esm/errors/errors.shared.utils.js.map +1 -1
- package/dist/esm/errors/resource-access-forbidden.shared.error.d.ts.map +1 -1
- package/dist/esm/errors/resource-access-forbidden.shared.error.js.map +1 -1
- package/dist/esm/errors/thrown-value-description.shared.utils.d.ts +6 -7
- package/dist/esm/errors/thrown-value-description.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/thrown-value-description.shared.utils.js +6 -7
- package/dist/esm/errors/thrown-value-description.shared.utils.js.map +1 -1
- package/dist/esm/errors/zod-issue-formatting.shared.utils.d.ts.map +1 -1
- package/dist/esm/errors/zod-issue-formatting.shared.utils.js.map +1 -1
- package/dist/esm/exports/tabular-csv.shared.utils.d.ts.map +1 -1
- package/dist/esm/exports/tabular-csv.shared.utils.js.map +1 -1
- package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts +70 -0
- package/dist/esm/external-data/external-data-pipeline-description.shared.d.ts.map +1 -0
- package/dist/esm/external-data/external-data-pipeline-description.shared.js +92 -0
- package/dist/esm/external-data/external-data-pipeline-description.shared.js.map +1 -0
- package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts +154 -0
- package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.d.ts.map +1 -0
- package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js +161 -0
- package/dist/esm/external-data/external-data-pipeline-pass-mode.shared.js.map +1 -0
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.d.ts +1071 -23
- 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 +1065 -17
- package/dist/esm/external-data/external-data-pipeline.shared.schemas.js.map +1 -1
- package/dist/esm/external-data/external-data-provenance.shared.d.ts +71 -0
- package/dist/esm/external-data/external-data-provenance.shared.d.ts.map +1 -0
- package/dist/esm/external-data/external-data-provenance.shared.js +88 -0
- package/dist/esm/external-data/external-data-provenance.shared.js.map +1 -0
- package/dist/esm/external-data.exports.d.ts +5 -0
- package/dist/esm/external-data.exports.d.ts.map +1 -1
- package/dist/esm/external-data.exports.js +11 -0
- package/dist/esm/external-data.exports.js.map +1 -1
- package/dist/esm/external-providers/compose-provider-registry.shared.d.ts.map +1 -1
- package/dist/esm/external-providers/compose-provider-registry.shared.js.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts +17 -2
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/engine-capabilities.shared.schemas.js +22 -4
- 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.map +1 -1
- package/dist/esm/external-providers/engine-capability-resolution-mode.shared.js +3 -0
- 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.map +1 -1
- package/dist/esm/external-providers/engine-capability-surface.shared.js +2 -0
- package/dist/esm/external-providers/engine-capability-surface.shared.js.map +1 -1
- package/dist/esm/external-providers/external-providers.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/external-providers.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts +152 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-bootstrap.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.d.ts +4 -3
- 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 +4 -3
- package/dist/esm/external-providers/frontend-capability-public-config.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts +45 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js +14 -0
- package/dist/esm/external-providers/frontend-capability-runtime.shared.types.js.map +1 -1
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.d.ts +188 -4
- 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 +76 -9
- package/dist/esm/external-providers/frontend-provider-entry.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts +175 -33
- package/dist/esm/external-providers/frontend-provider-public-config.shared.d.ts.map +1 -1
- package/dist/esm/external-providers/frontend-provider-public-config.shared.js +247 -42
- package/dist/esm/external-providers/frontend-provider-public-config.shared.js.map +1 -1
- package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts +53 -0
- package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js +41 -0
- package/dist/esm/external-providers/model-cost-accounting-config.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts +150 -0
- package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js +22 -0
- package/dist/esm/external-providers/provider-address-lookup-contract.shared.types.js.map +1 -0
- package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts +42 -0
- package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js +49 -0
- package/dist/esm/external-providers/provider-augmentation-opt-ins.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-authentication-assurance.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts +53 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js +56 -0
- package/dist/esm/external-providers/provider-browser-operations.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts +34 -0
- package/dist/esm/external-providers/provider-capability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-capability.shared.schemas.js +34 -0
- 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 +341 -4
- 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 +270 -20
- 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 +6 -2
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js +6 -2
- package/dist/esm/external-providers/provider-frontend-component-contract.shared.types.js.map +1 -1
- package/dist/esm/external-providers/provider-frontend-surface.shared.schemas.d.ts +174 -1
- 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 +125 -0
- 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 +3 -3
- package/dist/esm/external-providers/provider-metadata.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-metadata.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts +42 -0
- package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js +57 -0
- package/dist/esm/external-providers/provider-package-allow-list.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts +6 -0
- package/dist/esm/external-providers/provider-protocol.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-protocol.shared.schemas.js +6 -0
- package/dist/esm/external-providers/provider-protocol.shared.schemas.js.map +1 -1
- package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts +58 -0
- package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js +35 -0
- package/dist/esm/external-providers/provider-scope-reauthorization.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts +115 -0
- package/dist/esm/external-providers/provider-shared-connections.shared.schemas.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js +137 -0
- package/dist/esm/external-providers/provider-shared-connections.shared.schemas.js.map +1 -0
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-tier-rule.shared.utils.js.map +1 -1
- package/dist/esm/external-providers/provider-usage-cost.shared.d.ts +73 -0
- package/dist/esm/external-providers/provider-usage-cost.shared.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-usage-cost.shared.js +171 -0
- package/dist/esm/external-providers/provider-usage-cost.shared.js.map +1 -0
- package/dist/esm/external-providers/provider-usage-pricing.example.d.ts +12 -0
- package/dist/esm/external-providers/provider-usage-pricing.example.d.ts.map +1 -0
- package/dist/esm/external-providers/provider-usage-pricing.example.js +40 -0
- package/dist/esm/external-providers/provider-usage-pricing.example.js.map +1 -0
- package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts +68 -32
- package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.d.ts.map +1 -1
- package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js +63 -52
- package/dist/esm/external-providers/provider-usage-pricing.shared.schemas.js.map +1 -1
- package/dist/esm/features/application-features.shared.resources-config.schemas.d.ts +5 -5
- 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 +13 -5
- package/dist/esm/features/application-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/features/connected-feature.example.d.ts.map +1 -1
- package/dist/esm/features/connected-feature.example.js +2 -1
- package/dist/esm/features/connected-feature.example.js.map +1 -1
- package/dist/esm/features/core-feature-definitions.shared.d.ts.map +1 -1
- package/dist/esm/features/core-feature-definitions.shared.js +2 -1
- package/dist/esm/features/core-feature-definitions.shared.js.map +1 -1
- package/dist/esm/features/feature-builders.shared.d.ts.map +1 -1
- package/dist/esm/features/feature-builders.shared.js.map +1 -1
- package/dist/esm/features/feature-definition.shared.schemas.d.ts +2 -11
- package/dist/esm/features/feature-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/feature-definition.shared.schemas.js +0 -12
- package/dist/esm/features/feature-definition.shared.schemas.js.map +1 -1
- package/dist/esm/features/feature-registry.shared.d.ts.map +1 -1
- package/dist/esm/features/feature-registry.shared.js.map +1 -1
- package/dist/esm/features/feature-resolution.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/feature-resolution.shared.schemas.js.map +1 -1
- package/dist/esm/features/scope-features.shared.schemas.d.ts +31 -17
- package/dist/esm/features/scope-features.shared.schemas.d.ts.map +1 -1
- package/dist/esm/features/scope-features.shared.schemas.js +27 -5
- package/dist/esm/features/scope-features.shared.schemas.js.map +1 -1
- package/dist/esm/features/user-features.shared.resources-config.schemas.d.ts +5 -5
- 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.map +1 -1
- package/dist/esm/files/file-remote-reference-link.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/file-remote-reference-link.shared.schemas.js.map +1 -1
- package/dist/esm/files/file-upload-grant.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/file-upload-grant.shared.schemas.js.map +1 -1
- package/dist/esm/files/files.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/files/files.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/files/files.shared.schemas.d.ts.map +1 -1
- package/dist/esm/files/files.shared.schemas.js.map +1 -1
- package/dist/esm/files/files.shared.utils.d.ts.map +1 -1
- package/dist/esm/files/files.shared.utils.js.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-push-delivery-log.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/a2a-token-budget-state.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts +127 -11
- package/dist/esm/flows-actors/actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js +32 -1
- package/dist/esm/flows-actors/actors.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts +16 -0
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.js +7 -0
- package/dist/esm/flows-actors/agent-traceability.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts +68 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js +276 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts +468 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js +472 -0
- package/dist/esm/flows-actors/agent-work-decisions.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts +2 -2
- package/dist/esm/flows-actors/agents.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/agents.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts +118 -0
- package/dist/esm/flows-actors/autonomous-agents.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js +144 -0
- package/dist/esm/flows-actors/autonomous-agents.shared.schemas.js.map +1 -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.map +1 -1
- package/dist/esm/flows-actors/execution-plan-readiness.shared.utils.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.d.ts +142 -8
- 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 +209 -11
- package/dist/esm/flows-actors/flows-actors-execution.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors-task.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.commons.shared.schemas.d.ts +37 -2
- 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 +30 -2
- 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 -11
- 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 +12 -5
- 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 +45 -6
- 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 +31 -5
- package/dist/esm/flows-actors/flows-actors.frontend.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js +30 -30
- package/dist/esm/flows-actors/flows-actors.io.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.definitions.js.map +1 -1
- package/dist/esm/flows-actors/flows-actors.system.shared.schemas.d.ts +15 -7
- 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.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.d.ts +15 -0
- package/dist/esm/flows-actors/flows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/flows.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts +506 -0
- package/dist/esm/flows-actors/human-decision.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/human-decision.shared.schemas.js +502 -0
- package/dist/esm/flows-actors/human-decision.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/mcp-servers.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts +46 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js +65 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts +120 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js +165 -0
- package/dist/esm/flows-actors/model-call-attributions.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts +45 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js +127 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts +83 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js +97 -0
- package/dist/esm/flows-actors/model-cost-period-aggregates.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts +136 -0
- package/dist/esm/flows-actors/model-cost-summary.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js +90 -0
- package/dist/esm/flows-actors/model-cost-summary.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/prompt-ir.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/prompt-ir.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts +5 -1
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js +19 -4
- package/dist/esm/flows-actors/provider-call-records.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts +13 -15
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.js +30 -17
- package/dist/esm/flows-actors/provider-call-records.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts +268 -0
- package/dist/esm/flows-actors/review-deadlines.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/review-deadlines.shared.schemas.js +576 -0
- package/dist/esm/flows-actors/review-deadlines.shared.schemas.js.map +1 -0
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts +30 -0
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.d.ts.map +1 -1
- package/dist/esm/flows-actors/tasks.actors.shared.schemas.js.map +1 -1
- package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts +129 -0
- package/dist/esm/flows-actors/work-attribution.shared.schemas.d.ts.map +1 -0
- package/dist/esm/flows-actors/work-attribution.shared.schemas.js +141 -0
- package/dist/esm/flows-actors/work-attribution.shared.schemas.js.map +1 -0
- package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts +22 -1
- package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.d.ts.map +1 -1
- package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js +23 -0
- package/dist/esm/frontend-definitions/frontend-notification-custom-message-ref.definitions.js.map +1 -1
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts +61 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.d.ts.map +1 -1
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js +61 -0
- package/dist/esm/frontend-definitions/settings-destination-ref.definitions.js.map +1 -1
- package/dist/esm/guidance/guidance-flow.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-flow.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.schemas.js +11 -10
- package/dist/esm/guidance/guidance-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.utils.d.ts.map +1 -1
- package/dist/esm/guidance/guidance-state.shared.utils.js.map +1 -1
- package/dist/esm/guidance/lifecycle-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-config.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js +6 -6
- package/dist/esm/guidance/lifecycle-state.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/milestone-builders.shared.d.ts.map +1 -1
- package/dist/esm/guidance/milestone-builders.shared.js.map +1 -1
- package/dist/esm/guidance/milestone-definition.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/milestone-definition.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-presentation.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-presentation.shared.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.d.ts.map +1 -1
- package/dist/esm/guidance/progression-state.shared.schemas.js +8 -7
- 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 +1 -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 +550 -30
- 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 +498 -34
- package/dist/esm/http-api-binding/http-api-binding.shared.schemas.js.map +1 -1
- package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts +62 -0
- package/dist/esm/http-api-binding/http-api-erasure-stance.shared.d.ts.map +1 -0
- package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js +66 -0
- package/dist/esm/http-api-binding/http-api-erasure-stance.shared.js.map +1 -0
- package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts +133 -0
- package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.d.ts.map +1 -0
- package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js +191 -0
- package/dist/esm/http-api-binding/http-api-rest-write-operations.shared.schemas.js.map +1 -0
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts +37 -6
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.d.ts.map +1 -1
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js +37 -6
- package/dist/esm/http-api-binding/http-api-transport-dialect.shared.js.map +1 -1
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.d.ts.map +1 -1
- package/dist/esm/http-api-binding/read-through-engine-anchors.shared.js.map +1 -1
- package/dist/esm/i18n/application-config-vocabulary.shared.d.ts +36 -0
- package/dist/esm/i18n/application-config-vocabulary.shared.d.ts.map +1 -0
- package/dist/esm/i18n/application-config-vocabulary.shared.js +39 -0
- package/dist/esm/i18n/application-config-vocabulary.shared.js.map +1 -0
- package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts +11 -0
- package/dist/esm/i18n/engine-open-vocabulary-values.shared.d.ts.map +1 -0
- package/dist/esm/i18n/engine-open-vocabulary-values.shared.js +14 -0
- package/dist/esm/i18n/engine-open-vocabulary-values.shared.js.map +1 -0
- package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts +20 -0
- package/dist/esm/i18n/engine-open-vocabulary.shared.d.ts.map +1 -0
- package/dist/esm/i18n/engine-open-vocabulary.shared.js +21 -0
- package/dist/esm/i18n/engine-open-vocabulary.shared.js.map +1 -0
- package/dist/esm/i18n/interpolate-label-params.shared.utils.d.ts.map +1 -1
- package/dist/esm/i18n/interpolate-label-params.shared.utils.js.map +1 -1
- package/dist/esm/i18n/labelling.dto.shared.schemas.d.ts.map +1 -1
- package/dist/esm/i18n/labelling.dto.shared.schemas.js.map +1 -1
- package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts +94 -0
- package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js +206 -0
- package/dist/esm/inbound/conversation-threads.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts +169 -0
- package/dist/esm/inbound/conversation-threads.shared.schemas.d.ts.map +1 -0
- package/dist/esm/inbound/conversation-threads.shared.schemas.js +231 -0
- package/dist/esm/inbound/conversation-threads.shared.schemas.js.map +1 -0
- package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts +195 -0
- package/dist/esm/inbound/inbound-channels.shared.schemas.d.ts.map +1 -0
- package/dist/esm/inbound/inbound-channels.shared.schemas.js +244 -0
- package/dist/esm/inbound/inbound-channels.shared.schemas.js.map +1 -0
- package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts +36 -0
- package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js +169 -0
- package/dist/esm/inbound/inbound-delivery.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts +404 -0
- package/dist/esm/inbound/inbound-delivery.shared.schemas.d.ts.map +1 -0
- package/dist/esm/inbound/inbound-delivery.shared.schemas.js +449 -0
- package/dist/esm/inbound/inbound-delivery.shared.schemas.js.map +1 -0
- package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts +46 -0
- package/dist/esm/inbound/inbound-endpoint-env.shared.d.ts.map +1 -0
- package/dist/esm/inbound/inbound-endpoint-env.shared.js +57 -0
- package/dist/esm/inbound/inbound-endpoint-env.shared.js.map +1 -0
- package/dist/esm/index.d.ts +58 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +67 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/actions.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/catalog.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/coding-tasks.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/context-selection.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts +28 -0
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js +29 -0
- package/dist/esm/meta-workflows/decisions.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts +95 -1
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js +121 -0
- package/dist/esm/meta-workflows/orchestration.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.d.ts.map +1 -1
- package/dist/esm/meta-workflows/portable-primitives.meta-workflows.shared.schemas.js.map +1 -1
- package/dist/esm/meta-workflows.exports.d.ts +0 -1
- package/dist/esm/meta-workflows.exports.d.ts.map +1 -1
- package/dist/esm/meta-workflows.exports.js +0 -1
- package/dist/esm/meta-workflows.exports.js.map +1 -1
- package/dist/esm/monitoring/monitoring.shared.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/monitoring.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/email/email-context.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-context.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/email/email-submission.shared.enums.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-submission.shared.enums.js.map +1 -1
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.d.ts +7 -1
- 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 +35 -0
- package/dist/esm/notifications/email/email-template-registry.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/email/email-template.shared.enums.d.ts.map +1 -1
- package/dist/esm/notifications/email/email-template.shared.enums.js.map +1 -1
- package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts +131 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js +258 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts +448 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.d.ts.map +1 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js +530 -0
- package/dist/esm/notifications/inbound-email/inbound-email.shared.schemas.js.map +1 -0
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/m2m-webhook-delivery-contract.shared.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 -3
- 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.map +1 -1
- 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 +16 -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 +46 -16
- package/dist/esm/notifications/m2m/webhook-config.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts +19 -12
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js +77 -12
- package/dist/esm/notifications/m2m/webhook-config.shared.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.core.definitions.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.core.definitions.js.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.d.ts +35 -3
- package/dist/esm/notifications/notification-badges.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.schemas.js +43 -3
- package/dist/esm/notifications/notification-badges.schemas.js.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notification-badges.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.d.ts +66 -399
- package/dist/esm/notifications/notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/notifications/notifications.shared.schemas.js +111 -58
- package/dist/esm/notifications/notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/application-owner-organization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/application-owner-organization.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.d.ts +5 -5
- 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 +6 -6
- package/dist/esm/organizations/organization-features.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-features.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-features.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-members.shared.resources-config.schemas.d.ts +3 -0
- 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 +60 -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 +3 -0
- package/dist/esm/organizations/organization-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-members.shared.schemas.js +30 -0
- package/dist/esm/organizations/organization-members.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-notifications.shared.schemas.js +9 -9
- package/dist/esm/organizations/organization-notifications.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-preferences.shared.schemas.js +4 -4
- package/dist/esm/organizations/organization-preferences.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts +0 -1
- package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts +5 -5
- package/dist/esm/organizations/organization-profile.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-profile.shared.schemas.js +15 -10
- package/dist/esm/organizations/organization-profile.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-inheritance.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-inheritance.shared.js.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-members.shared.schemas.js +2 -1
- package/dist/esm/organizations/organization-unit-members.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts +63 -1
- package/dist/esm/organizations/organization-unit-narrowing-decision.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js +106 -5
- package/dist/esm/organizations/organization-unit-narrowing-decision.shared.js.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.example.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.example.js.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.d.ts.map +1 -1
- package/dist/esm/organizations/organization-unit-narrowing.shared.js +9 -0
- package/dist/esm/organizations/organization-unit-narrowing.shared.js.map +1 -1
- package/dist/esm/organizations/organization-units.shared.path.d.ts.map +1 -1
- package/dist/esm/organizations/organization-units.shared.path.js.map +1 -1
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js +7 -2
- package/dist/esm/organizations/organization-units.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organization-units.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organization-units.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts +3 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js +12 -8
- package/dist/esm/organizations/organizations.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.d.ts +7 -2
- package/dist/esm/organizations/organizations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/organizations.shared.schemas.js +51 -1
- package/dist/esm/organizations/organizations.shared.schemas.js.map +1 -1
- package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts +58 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js +188 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts +122 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js +136 -0
- package/dist/esm/organizations/service-provider-activity-feed.shared.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts +36 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js +155 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts +229 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js +290 -0
- package/dist/esm/organizations/service-provider-capability-grants.shared.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts +48 -0
- package/dist/esm/organizations/service-provider-client-controls.shared.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js +50 -0
- package/dist/esm/organizations/service-provider-client-controls.shared.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts +97 -0
- package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js +572 -0
- package/dist/esm/organizations/service-provider-relationships.shared.resources-config.schemas.js.map +1 -0
- package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts +590 -0
- package/dist/esm/organizations/service-provider-relationships.shared.schemas.d.ts.map +1 -0
- package/dist/esm/organizations/service-provider-relationships.shared.schemas.js +869 -0
- package/dist/esm/organizations/service-provider-relationships.shared.schemas.js.map +1 -0
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts +36 -6
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js +57 -16
- package/dist/esm/organizations/tenant-teardown-config.shared.schemas.js.map +1 -1
- package/dist/esm/provider-registration-runtime.exports.d.ts +0 -1
- package/dist/esm/provider-registration-runtime.exports.d.ts.map +1 -1
- package/dist/esm/provider-registration-runtime.exports.js +0 -1
- package/dist/esm/provider-registration-runtime.exports.js.map +1 -1
- package/dist/esm/public-runtime/index.d.ts +30 -11
- package/dist/esm/public-runtime/index.d.ts.map +1 -1
- package/dist/esm/public-runtime/index.js +30 -11
- package/dist/esm/public-runtime/index.js.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.d.ts +30 -2
- package/dist/esm/queue/jobs.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.schemas.js +12 -0
- package/dist/esm/queue/jobs.shared.schemas.js.map +1 -1
- package/dist/esm/queue/jobs.shared.utils.d.ts.map +1 -1
- package/dist/esm/queue/jobs.shared.utils.js.map +1 -1
- package/dist/esm/queue/queues.shared.schemas.d.ts.map +1 -1
- package/dist/esm/queue/queues.shared.schemas.js.map +1 -1
- package/dist/esm/queue/queues.shared.utils.d.ts.map +1 -1
- package/dist/esm/queue/queues.shared.utils.js.map +1 -1
- package/dist/esm/queue/rabbitmq-queue-args.shared.d.ts.map +1 -1
- package/dist/esm/queue/rabbitmq-queue-args.shared.js.map +1 -1
- package/dist/esm/rag/rag-retrieval-health.shared.d.ts.map +1 -1
- package/dist/esm/rag/rag-retrieval-health.shared.js.map +1 -1
- 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/http-requests.shared.d.ts.map +1 -1
- package/dist/esm/requests/http-requests.shared.js.map +1 -1
- package/dist/esm/requests/idempotency-key.shared.d.ts.map +1 -1
- package/dist/esm/requests/idempotency-key.shared.js.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-documentation.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-documentation.js +147 -8
- package/dist/esm/requests/manual-controllers-routes-documentation.js.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts +51 -23
- package/dist/esm/requests/manual-controllers-routes-urls.d.ts.map +1 -1
- package/dist/esm/requests/manual-controllers-routes-urls.js +64 -0
- package/dist/esm/requests/manual-controllers-routes-urls.js.map +1 -1
- package/dist/esm/requests/rate-limits.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/rate-limits.shared.schemas.js.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.d.ts +78 -13
- package/dist/esm/requests/websocket.shared.schemas.d.ts.map +1 -1
- package/dist/esm/requests/websocket.shared.schemas.js +91 -18
- package/dist/esm/requests/websocket.shared.schemas.js.map +1 -1
- package/dist/esm/resources/child-operations.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/child-operations.shared.schemas.js.map +1 -1
- package/dist/esm/resources/collection-query-parameters.shared.d.ts.map +1 -1
- package/dist/esm/resources/collection-query-parameters.shared.js.map +1 -1
- package/dist/esm/resources/context-policy.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/context-policy.shared.schemas.js.map +1 -1
- package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts +21 -0
- package/dist/esm/resources/embedded-resource-mark.shared.utils.d.ts.map +1 -0
- package/dist/esm/resources/embedded-resource-mark.shared.utils.js +22 -0
- package/dist/esm/resources/embedded-resource-mark.shared.utils.js.map +1 -0
- package/dist/esm/resources/relationship-display.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/relationship-display.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 +812 -32
- package/dist/esm/resources/resources-config.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.d.ts +244 -48
- package/dist/esm/resources/resources-config.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-config.shared.schemas.js +151 -17
- 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 +369 -12
- package/dist/esm/resources/resources-registry.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources-relationships.shared.factory.d.ts.map +1 -1
- package/dist/esm/resources/resources-relationships.shared.factory.js.map +1 -1
- package/dist/esm/resources/resources-serialization.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources-serialization.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.d.ts +45 -0
- package/dist/esm/resources/resources.shared.core.definitions.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.core.definitions.js +92 -0
- package/dist/esm/resources/resources.shared.core.definitions.js.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.d.ts +2 -17
- package/dist/esm/resources/resources.shared.schemas.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.schemas.js +24 -20
- package/dist/esm/resources/resources.shared.schemas.js.map +1 -1
- package/dist/esm/resources/resources.shared.utils.d.ts +16 -8
- package/dist/esm/resources/resources.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/resources.shared.utils.js +16 -8
- package/dist/esm/resources/resources.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/collection-export.shared.utils.d.ts +2 -2
- package/dist/esm/resources/utils/collection-export.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/collection-export.shared.utils.js +4 -2
- package/dist/esm/resources/utils/collection-export.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/composition-cascade-deletability.validation.js.map +1 -1
- package/dist/esm/resources/utils/composition-seedability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/composition-seedability.validation.js.map +1 -1
- package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/context-addressed-composition-singleton.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/dependent-lifecycle-classification.validation.js.map +1 -1
- package/dist/esm/resources/utils/duplicate-relationship-registration.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/duplicate-relationship-registration.validation.js.map +1 -1
- package/dist/esm/resources/utils/field-value-disclosure.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/field-value-disclosure.utils.js.map +1 -1
- package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts +103 -0
- package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js +275 -0
- package/dist/esm/resources/utils/http-api-write-declaration.shared.utils.js.map +1 -0
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/initiator-stamped-field-satisfiability.validation.js.map +1 -1
- package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts +51 -0
- package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js +28 -0
- package/dist/esm/resources/utils/no-subject-data-stance-coherence.shared.utils.js.map +1 -0
- package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/persistence-adapter-discrimination.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.js +30 -19
- package/dist/esm/resources/utils/populated-file-fields.shared.utils.js.map +1 -1
- package/dist/esm/resources/utils/repository-dto-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/repository-dto-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts +2 -0
- package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.d.ts.map +1 -0
- package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js +33 -0
- package/dist/esm/resources/utils/request-schema-field-carriage.shared.utils.js.map +1 -0
- package/dist/esm/resources/utils/required-fk-fillability.validation.d.ts.map +1 -1
- package/dist/esm/resources/utils/required-fk-fillability.validation.js.map +1 -1
- package/dist/esm/resources/utils/resource-operation-type-guards.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-operation-type-guards.utils.js.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts +15 -0
- package/dist/esm/resources/utils/resource-polymorphism.factory.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.factory.js +6 -1
- package/dist/esm/resources/utils/resource-polymorphism.factory.js.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.relationships.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.relationships.js.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.schemas.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.schemas.js +30 -4
- package/dist/esm/resources/utils/resource-polymorphism.schemas.js.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-polymorphism.utils.js.map +1 -1
- package/dist/esm/resources/utils/resource-subtree.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resource-subtree.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-context-needs.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-context-needs.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-naming.utils.d.ts.map +1 -1
- 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 +46 -0
- 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 +205 -22
- package/dist/esm/resources/utils/resources-config-operations.dtos-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.path.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.path.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.urls-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-config-operations.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-serialization.utils.d.ts +19 -2
- package/dist/esm/resources/utils/resources-serialization.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-serialization.utils.js +4 -0
- package/dist/esm/resources/utils/resources-serialization.utils.js.map +1 -1
- package/dist/esm/resources/utils/resources-summary.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/resources-summary.utils.js.map +1 -1
- package/dist/esm/resources/utils/schema-family-builder.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-family-builder.utils.js.map +1 -1
- package/dist/esm/resources/utils/schema-type-inference.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-type-inference.utils.js.map +1 -1
- package/dist/esm/resources/utils/schema-type-utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-type-utils.js.map +1 -1
- package/dist/esm/resources/utils/schema-variant-resolver.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/schema-variant-resolver.utils.js.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.d.ts.map +1 -1
- package/dist/esm/resources/utils/shared-persistence-collection.utils.js +15 -9
- 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.map +1 -1
- package/dist/esm/resources/work-unit.shared.schemas.d.ts +20 -0
- package/dist/esm/resources/work-unit.shared.schemas.d.ts.map +1 -0
- package/dist/esm/resources/work-unit.shared.schemas.js +19 -0
- package/dist/esm/resources/work-unit.shared.schemas.js.map +1 -0
- package/dist/esm/runtime/domain-module.shared.definitions.d.ts.map +1 -1
- package/dist/esm/runtime/domain-module.shared.definitions.js.map +1 -1
- package/dist/esm/runtime/execution-context.shared.schemas.d.ts +48 -1
- package/dist/esm/runtime/execution-context.shared.schemas.d.ts.map +1 -1
- package/dist/esm/runtime/execution-context.shared.schemas.js +101 -9
- package/dist/esm/runtime/execution-context.shared.schemas.js.map +1 -1
- package/dist/esm/runtime/runtime.shared.schemas.d.ts.map +1 -1
- package/dist/esm/runtime/runtime.shared.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js +37 -20
- package/dist/esm/security/api-keys/api-keys-application.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts +1 -0
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js +61 -48
- package/dist/esm/security/api-keys/api-keys-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts +26 -0
- package/dist/esm/security/api-keys/api-keys.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/api-keys/api-keys.shared.schemas.js +39 -5
- package/dist/esm/security/api-keys/api-keys.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.d.ts.map +1 -1
- package/dist/esm/security/authentications/anonymous-session/anonymous-session.shared.contract.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts +5 -3
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js +6 -0
- package/dist/esm/security/authentications/authentication.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/authentication.shared.utils.js.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/consumable-token.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/cross-frontend-handoff.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/mfa-backup-code-contract.shared.js.map +1 -1
- package/dist/esm/security/authentications/password-blocklist.shared.utils.d.ts.map +1 -1
- package/dist/esm/security/authentications/password-blocklist.shared.utils.js.map +1 -1
- package/dist/esm/security/authentications/password-reset.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/password-reset.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/registration.shared.dto.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/registration.shared.dto.schemas.js.map +1 -1
- package/dist/esm/security/authentications/same-origin-redirect-path.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/same-origin-redirect-path.shared.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-organization-unit-mapping.shared.js +2 -2
- 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 +11 -0
- 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 +19 -8
- 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 +1 -1
- 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 +5 -5
- 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 +11 -11
- package/dist/esm/security/authentications/scim/scim-tokens.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts +2 -0
- package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js +9 -0
- package/dist/esm/security/authentications/scim/scim-tokens.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts +169 -0
- package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js +162 -0
- package/dist/esm/security/authentications/service-provider-client-authentication.shared.schemas.js.map +1 -0
- 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 +10 -8
- 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-dlq.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-dlq.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-outbox.shared.schemas.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-delivery-reliability-contract.shared.js.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authentications/siem/siem-export-config.shared.resources-config.schemas.js.map +1 -1
- 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 +8 -8
- 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.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.resources-config.schemas.js +17 -16
- 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.map +1 -1
- package/dist/esm/security/authentications/sso/sso-config.shared.schemas.js +28 -25
- 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 +17 -6
- 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 +90 -38
- 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 +0 -24
- 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 +79 -68
- 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 +8 -1
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/administrative-continuity.shared.schemas.js +7 -0
- 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.map +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/application-access-grants.shared.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js +7 -7
- package/dist/esm/security/authorizations/platform-access-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/authorizations/platform-access-grants.shared.schemas.d.ts.map +1 -1
- 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 +56 -0
- package/dist/esm/security/authorizations/roles.shared.defaults.js.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts +77 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/authorizations/roles.shared.schemas.js +90 -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.map +1 -1
- package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts +86 -0
- package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.d.ts.map +1 -0
- package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js +40 -0
- package/dist/esm/security/connected-accounts/provider-connection-listing.shared.schemas.js.map +1 -0
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.d.ts +2 -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-organization.shared.resources-config.schemas.js +2 -1
- package/dist/esm/security/connected-accounts/provider-credentials-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/connected-accounts/provider-credentials-user.shared.resources-config.schemas.d.ts +2 -1
- 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 +2 -1
- 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 +46 -14
- 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 +81 -21
- package/dist/esm/security/connected-accounts/provider-credentials.shared.schemas.js.map +1 -1
- package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts +69 -0
- package/dist/esm/security/credential-rotation-grace.shared.utils.d.ts.map +1 -0
- package/dist/esm/security/credential-rotation-grace.shared.utils.js +77 -0
- package/dist/esm/security/credential-rotation-grace.shared.utils.js.map +1 -0
- package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/crypto-keys/crypto-keys.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-application.shared.resources-config.schemas.js +28 -8
- 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 +3 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js +89 -14
- package/dist/esm/security/oauth-clients/oauth-clients-organization.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts +1 -0
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js +25 -4
- package/dist/esm/security/oauth-clients/oauth-clients.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-consent-grants.shared.schemas.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-resource-server.shared.schemas.js.map +1 -1
- package/dist/esm/security/outbound-target-control.shared.schemas.d.ts +7 -1
- package/dist/esm/security/outbound-target-control.shared.schemas.d.ts.map +1 -1
- package/dist/esm/security/outbound-target-control.shared.schemas.js +6 -0
- package/dist/esm/security/outbound-target-control.shared.schemas.js.map +1 -1
- package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts +143 -0
- package/dist/esm/security/submission-challenge/submission-challenge.shared.d.ts.map +1 -0
- package/dist/esm/security/submission-challenge/submission-challenge.shared.js +123 -0
- package/dist/esm/security/submission-challenge/submission-challenge.shared.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts +384 -0
- package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.d.ts.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js +327 -0
- package/dist/esm/systems-of-record/system-of-record-actions.shared.schemas.js.map +1 -0
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-credential-kind.shared.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts +121 -8
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js +83 -4
- package/dist/esm/systems-of-record/system-of-record-declaration.shared.schemas.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-env.shared.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-env.shared.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts +266 -8
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js +291 -7
- package/dist/esm/systems-of-record/system-of-record-error-codes.shared.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts +313 -3
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js +369 -3
- package/dist/esm/systems-of-record/system-of-record-facet.shared.schemas.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js +2 -1
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.d.ts.map +1 -1
- package/dist/esm/systems-of-record/system-of-record-partition-assignments.shared.schemas.js.map +1 -1
- package/dist/esm/testing/resource-config-builders.d.ts.map +1 -1
- package/dist/esm/testing/resource-config-builders.js.map +1 -1
- package/dist/esm/testing.d.ts.map +1 -1
- package/dist/esm/testing.js.map +1 -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.map +1 -1
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.d.ts +5 -3
- 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 +19 -10
- package/dist/esm/users/anonymous-users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/anonymous-users.shared.schema.d.ts.map +1 -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.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.resources-config.schemas.js +6 -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.map +1 -1
- package/dist/esm/users/inbound-contacts.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-consent-decision.shared.utils.d.ts.map +1 -1
- package/dist/esm/users/user-consent-decision.shared.utils.js.map +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-credentials.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-credentials.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-credentials.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-identity-links.shared.schemas.js.map +1 -1
- package/dist/esm/users/user-preferences-reset.shared.utils.d.ts.map +1 -1
- package/dist/esm/users/user-preferences-reset.shared.utils.js +2 -2
- 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 +0 -3
- 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.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.map +1 -1
- package/dist/esm/users/user-self-preferences.shared.resources-config.schemas.d.ts +0 -3
- 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.map +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self-profiles.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.d.ts.map +1 -1
- package/dist/esm/users/user-self.shared.resources-config.schemas.js +1 -1
- 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.map +1 -1
- package/dist/esm/users/users.shared.resources-config.schemas.js +82 -20
- package/dist/esm/users/users.shared.resources-config.schemas.js.map +1 -1
- package/dist/esm/users/users.shared.schemas.d.ts +12 -9
- package/dist/esm/users/users.shared.schemas.d.ts.map +1 -1
- package/dist/esm/users/users.shared.schemas.js +49 -18
- package/dist/esm/users/users.shared.schemas.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts +0 -8
- package/dist/esm/compliance/privacy/data-retention.shared.schemas.d.ts.map +0 -1
- package/dist/esm/compliance/privacy/data-retention.shared.schemas.js +0 -7
- package/dist/esm/compliance/privacy/data-retention.shared.schemas.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-unit-inheritance.shared.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"organization-unit-inheritance.shared.js","sourceRoot":"","sources":["../../../src/organizations/organization-unit-inheritance.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,0CAA0C,EAAE,MAAM,qCAAqC,CAAC;AACjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AA+B/E;;;;;;;;GAQG;AACH,MAAM,UAAU,uCAAuC,CAAC,IAAqC;IAC3F,OAAO,IAAI,CAAC,eAAe,KAAK,0CAA0C,CAAC,YAAY,CAAC;AAC1F,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,6CAA6C,CAC3D,YAAwD,EACxD,iBAA6D;IAE7D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,GAAG;YAAE,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,uCAAuC,CAAC,WAAW,CAAC;YAAE,SAAS;QAExF,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QAC3E,KAAK,MAAM,aAAa,IAAI,iBAAiB,EAAE,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5E,IAAI,2BAA2B,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;gBACjF,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACxC,gBAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,4BAA4B,EAAE,CAAC,GAAG,gBAAgB,CAAC;QACnD,4BAA4B,EAAE,CAAC,GAAG,gBAAgB,CAAC;KACpD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wCAAwC,CACtD,YAAwD;IAExD,OAAO,YAAY,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;AACpE,CAAC","sourcesContent":["/**\n * Downward inheritance of a unit-scoped grant across the organization tree (plan decision D-C2).\n *\n * assurance-control: WILDO.ACCESS.SCOPE_CONFINEMENT — expands a unit grant to exactly the subtree its\n * `inheritanceType` declares, and to nothing else.\n *\n * ## What this expresses\n *\n * A role held at unit U reaches U's DESCENDANTS when U declares\n * {@link OrganizationUnit_PermissionInheritanceType.INHERIT_DOWN}, and reaches U alone when it\n * declares `NO_INHERITANCE`. There is no third direction: upward propagation was removed from the\n * vocabulary (D-C2) because a role held at a leaf conferring authority over its ancestors is\n * privilege escalation along the org chart.\n *\n * ## Prefix, never recursion\n *\n * The expansion is a PREFIX TEST over the materialized `path`, not a tree walk. That is the whole\n * reason `path` is materialized: `descendants(U)` is `row.path.startsWith(subtreePrefix(U))`, an O(1)\n * test per candidate with no per-level query. A recursive walk would reintroduce the N+1 the\n * materialized path exists to remove, and would do it on the authorization hot path.\n *\n * ## Why this is pure, and where the I/O lives\n *\n * Reading the unit rows is the caller's job (the authorization gate, which holds the repositories).\n * Keeping the rule itself pure means the traversal can be pinned exhaustively without a database, and\n * means one function answers \"which units does this grant actually reach\" for every caller that ever\n * needs it — the row filter, the write guard, and the audit record all consume the same answer.\n */\n\nimport { OrganizationUnit_PermissionInheritanceType } from './organization-units.shared.schemas';\nimport { isOrganizationUnitInSubtree } from './organization-units.shared.path';\n\n/**\n * The unit fields inheritance depends on, read structurally so callers can pass whatever row shape\n * they already hold without projecting it first.\n *\n * `path` and `inheritanceType` are optional because a row can reach this function without them — a\n * projection that dropped them, or a row written before the field existed. Both cases resolve to the\n * conservative answer; see {@link resolveOrganizationUnitInheritsDownward}.\n */\nexport type OrganizationUnitInheritanceNode = {\n readonly _id: string;\n readonly path?: string | null;\n readonly inheritanceType?: OrganizationUnit_PermissionInheritanceType | null;\n};\n\n/**\n * The result of expanding a grant: what it reaches, and which part of that came from inheritance.\n *\n * The split is not cosmetic. A grant at a ROOT unit with downward inheritance reaches the entire\n * organization chart, which is functionally organization-wide access assembled from one narrow grant\n * (plan decision D-C4, watch item 4). That must be LEGIBLE in the access record rather than looking\n * like a narrow grant, so the two sets are reported separately and the audit surface keeps both.\n */\nexport type OrganizationUnitGrantExpansion = {\n /** Every unit the grant reaches — the set the row predicate and the write guard use. */\n readonly effectiveOrganizationUnitIds: string[];\n /** The units reached ONLY through downward inheritance. Empty when nothing inherited. */\n readonly inheritedOrganizationUnitIds: string[];\n};\n\n/**\n * Does a role held at this unit propagate to its descendants?\n *\n * ⚠️ An ABSENT value resolves to `false`, which deliberately DIFFERS from the schema's write-time\n * default of `INHERIT_DOWN`. A row that reaches an authorization decision without the field has\n * bypassed the schema that would have supplied that default, and an authorization primitive must not\n * widen a grant on data it cannot vouch for. The divergence is one-directional and fail-closed: the\n * worst case is a grant that reaches fewer units than intended, never more.\n */\nexport function resolveOrganizationUnitInheritsDownward(unit: OrganizationUnitInheritanceNode): boolean {\n return unit.inheritanceType === OrganizationUnit_PermissionInheritanceType.INHERIT_DOWN;\n}\n\n/**\n * Expand directly-held unit grants across the tree.\n *\n * `grantedUnits` are the units whose role actually satisfied the operation — NOT every unit the\n * principal belongs to. `organizationUnits` is the candidate set to test against; the caller scopes it\n * (in practice, to the units of the organization the grants belong to), and this function never widens\n * beyond what it is given.\n *\n * Units are matched by PREFIX, so a grant with downward inheritance reaches the whole subtree at any\n * depth in one pass — a grandchild is found by the same test as a child, with no recursion.\n *\n * ## Status is deliberately NOT filtered\n *\n * An ARCHIVED or SUSPENDED descendant stays inside the grant. Archiving a branch records that it is no\n * longer operationally active; it is not a revocation of access to the records that branch owns. Making\n * it one would mean archiving silently removes rows from their manager's view — a data-visibility\n * change disguised as a lifecycle change, and one that surfaces as missing data rather than as a\n * refusal. If unit status should ever gate access, it belongs in an explicit, separately-audited rule.\n */\nexport function expandOrganizationUnitGrantThroughInheritance(\n grantedUnits: readonly OrganizationUnitInheritanceNode[],\n organizationUnits: readonly OrganizationUnitInheritanceNode[],\n): OrganizationUnitGrantExpansion {\n const effectiveUnitIds = new Set<string>();\n const inheritedUnitIds = new Set<string>();\n\n for (const grantedUnit of grantedUnits) {\n if (grantedUnit._id) effectiveUnitIds.add(grantedUnit._id);\n }\n\n for (const grantedUnit of grantedUnits) {\n if (!grantedUnit._id || !resolveOrganizationUnitInheritsDownward(grantedUnit)) continue;\n\n const subtreeRoot = { _id: grantedUnit._id, path: grantedUnit.path ?? '' };\n for (const candidateUnit of organizationUnits) {\n if (!candidateUnit._id || effectiveUnitIds.has(candidateUnit._id)) continue;\n if (isOrganizationUnitInSubtree({ path: candidateUnit.path ?? '' }, subtreeRoot)) {\n effectiveUnitIds.add(candidateUnit._id);\n inheritedUnitIds.add(candidateUnit._id);\n }\n }\n }\n\n return {\n effectiveOrganizationUnitIds: [...effectiveUnitIds],\n inheritedOrganizationUnitIds: [...inheritedUnitIds],\n };\n}\n\n/**\n * Does any of these grants propagate downward?\n *\n * The caller's cheap pre-check: when nothing inherits, the candidate set never has to be loaded at\n * all, so a `NO_INHERITANCE` organization pays one lookup instead of two.\n */\nexport function anyOrganizationUnitGrantInheritsDownward(\n grantedUnits: readonly OrganizationUnitInheritanceNode[],\n): boolean {\n return grantedUnits.some(resolveOrganizationUnitInheritsDownward);\n}\n"]}
|
package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-unit-members.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"organization-unit-members.shared.resources-config.schemas.d.ts","sourceRoot":"","sources":["../../../src/organizations/organization-unit-members.shared.resources-config.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAA8B,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAMzG,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAQjF,KAAK,oCAAoC,GACrC,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,IAAI,GAC1B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,GAC5B,qBAAqB,CAAC,MAAM,CAAC;AAEjC;;;;;;GAMG;AACH,eAAO,MAAM,iEAAiE,GAAI,wBAAwB,oBAAoB,EAAE;;;;;;;;mBA8E9H,CAAC"}
|
|
@@ -16,7 +16,7 @@ import { CORE_ORG_ROLES } from '../security/authorizations/roles.shared.schemas.
|
|
|
16
16
|
const ORGANIZATION_UNIT_MEMBER_FILTER_FIELDS = {
|
|
17
17
|
organizationUnitId: z.string(),
|
|
18
18
|
organizationMemberId: z.string(),
|
|
19
|
-
role: z.string(),
|
|
19
|
+
role: z.string().describe('Only return assignments that hold exactly this role inside their unit.'),
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
22
|
* Organization Unit Member Resource Configuration Factory.
|
package/dist/esm/organizations/organization-unit-members.shared.resources-config.schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-unit-members.shared.resources-config.schemas.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"organization-unit-members.shared.resources-config.schemas.js","sourceRoot":"","sources":["../../../src/organizations/organization-unit-members.shared.resources-config.schemas.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Organization Unit Member Shared Resource Configuration\n *\n * The junction resource that replaced `OrganizationMember.organizationUnitsMembership` (plan\n * decision D-B5). See {@link OrganizationUnitMemberSchema} for why the embedded array could not\n * carry these semantics.\n */\n\nimport { z } from 'zod';\nimport { OrganizationUnitMemberSchema } from './organization-unit-members.shared.schemas';\nimport { CoreResourceOperation } from '../resources/resources.shared.core.definitions';\nimport { ResourceOperationRiskLevel, ResourceRelationship } from '../resources/resources.shared.schemas';\nimport { CoreResourceType, coreResourceShared_FieldIdentifier } from '../resources/resources.shared.core.definitions';\nimport { ResourceOperationVariantType } from '../resources/resources.shared.schemas';\n\nimport { createResourceConfiguration_Initialization } from '../resources/resources-config.shared.factory';\n\nimport { CORE_ORG_ROLES } from '../security/authorizations/roles.shared.schemas';\n\nconst ORGANIZATION_UNIT_MEMBER_FILTER_FIELDS = {\n organizationUnitId: z.string(),\n organizationMemberId: z.string(),\n role: z.string().describe('Only return assignments that hold exactly this role inside their unit.'),\n};\n\ntype OrganizationUnitMemberCoreOperations =\n | CoreResourceOperation.READ\n | CoreResourceOperation.LIST\n | CoreResourceOperation.CREATE\n | CoreResourceOperation.UPDATE\n | CoreResourceOperation.DELETE;\n\n/**\n * Organization Unit Member Resource Configuration Factory.\n *\n * Read access is ORG_MEMBER (the org chart and who sits where is ordinary directory information\n * inside a tenant); every WRITE is ORG_ADMIN, because a unit assignment is a role grant and becomes\n * live authority once WS-C wires units into authorization.\n */\nexport const organizationUnitMemberResourceConfiguration_InitializationFactory = (resourcesRelationships: ResourceRelationship[]) => createResourceConfiguration_Initialization<\n Record<string, never>,\n OrganizationUnitMemberCoreOperations,\n typeof OrganizationUnitMemberSchema\n>({\n mainSchema: OrganizationUnitMemberSchema,\n resourceIdentifier: CoreResourceType.ORGANIZATION_UNIT_MEMBERS,\n resourceFieldIdentifier: coreResourceShared_FieldIdentifier[CoreResourceType.ORGANIZATION_UNIT_MEMBERS],\n resourceRelationships: resourcesRelationships,\n isSystemResource: true,\n\n coreOperations: [\n CoreResourceOperation.READ,\n CoreResourceOperation.LIST,\n CoreResourceOperation.CREATE,\n CoreResourceOperation.UPDATE,\n CoreResourceOperation.DELETE,\n ],\n\n operationsConfiguration: {\n [CoreResourceOperation.CREATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n // A unit assignment is a role grant; the role-ceiling gate additionally bounds WHICH role\n // an admin may grant here.\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n },\n ],\n },\n\n [CoreResourceOperation.READ]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n },\n ],\n },\n\n [CoreResourceOperation.LIST]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_MEMBER],\n riskLevel: ResourceOperationRiskLevel.LOW,\n filterFields: ORGANIZATION_UNIT_MEMBER_FILTER_FIELDS,\n },\n ],\n },\n\n [CoreResourceOperation.UPDATE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n },\n ],\n },\n\n [CoreResourceOperation.DELETE]: {\n variants: [\n {\n variantType: ResourceOperationVariantType.API_CALL,\n isDefault: true,\n roles: [CORE_ORG_ROLES.ORG_ADMIN],\n riskLevel: ResourceOperationRiskLevel.MEDIUM,\n },\n ],\n },\n },\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-unit-members.shared.schemas.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"organization-unit-members.shared.schemas.d.ts","sourceRoot":"","sources":["../../../src/organizations/organization-unit-members.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,4BAA4B;;;;;;;;kBA6CvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
|
|
@@ -82,7 +82,8 @@ export const OrganizationUnitMemberSchema = z.object({
|
|
|
82
82
|
* itself hold. Because a custom implementation resolves by an exact operation-path key, each path
|
|
83
83
|
* carries the gate explicitly; neither inherits it from the other.
|
|
84
84
|
*/
|
|
85
|
-
role: OrgRolesSchema.isDBIndexed().isSummaryField()
|
|
85
|
+
role: OrgRolesSchema.isDBIndexed().isSummaryField()
|
|
86
|
+
.describe('The role the member holds inside this unit: a core organization role or one the application defines. A caller cannot grant a role it does not hold itself.'),
|
|
86
87
|
createdAt: z.date().default(() => new Date()).optional().isDBIndexed().excludeFromCreate().excludeFromUpdate(),
|
|
87
88
|
updatedAt: z.date().default(() => new Date()).optional().isDBIndexed().excludeFromCreate().excludeFromUpdate(),
|
|
88
89
|
}).businessKeySet([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-unit-members.shared.schemas.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"organization-unit-members.shared.schemas.js","sourceRoot":"","sources":["../../../src/organizations/organization-unit-members.shared.schemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAEjF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,cAAc,EAAE;IACtD;;;;OAIG;IACH,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC,cAAc,EAAE,CAAC,iBAAiB,EAAE;IACnG,yDAAyD;IACzD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC,cAAc,EAAE,CAAC,iBAAiB,EAAE;IACvG;;;;;;;;;;;;OAYG;IACH,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC,cAAc,EAAE,CAAC,iBAAiB,EAAE;IACzG;;;;;;;;;;;;;OAaG;IACH,IAAI,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE;SAChD,QAAQ,CAAC,4JAA4J,CAAC;IACzK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,EAAE;IAC9G,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,EAAE;CAC/G,CAAC,CAAC,cAAc,CAAC;IAChB,sBAAsB;IACtB,oBAAoB;CACrB,CAAC,CAAC","sourcesContent":["/**\n * Organization Unit Member Shared Schemas\n *\n * The junction between an organization MEMBERSHIP and an organization UNIT: \"this member holds this\n * role inside this unit of the org chart\".\n *\n * ## Why this is a resource and not an embedded array (plan decision D-B5)\n *\n * This started life as `OrganizationMember.organizationUnitsMembership` — an embedded\n * `[{ organizationUnitId, role }]` array. That shape could not carry the semantics it claimed:\n *\n * - **It was not portably queryable.** A dot-path filter into an array-valued field works on Mongo\n * and resolves to `NULL` on PostgreSQL (matching nothing), there is no first-class containment\n * operator, and the application-side fallback is stripped by the LIST summary projection. BOTH\n * available routes fail **OPEN**. Anything that had to ask \"who is assigned to this unit?\" —\n * the unit DELETE dependents guard, and any future authorization read — would have silently\n * passed on one adapter.\n * - **It could not be a relationship.** With no registered edge there was no cascade, so unit\n * assignments outlived both the unit and the membership that justified them.\n * - **It admitted duplicates.** An array has no uniqueness; a member could carry two different\n * roles for the same unit with no defined winner.\n *\n * As a first-class junction all three close: the assignment is queryable on every adapter, the\n * `ORGANIZATION_UNITS → ORGANIZATION_UNIT_MEMBERS` edge lets the unit DELETE guard finally cover\n * assigned members, and {@link OrganizationUnitMemberSchema}'s business key makes \"one role per\n * member per unit\" a persisted invariant instead of a convention.\n *\n * ## An authorization axis — live since WS-C phase 2\n *\n * ⚠️ `role` here IS read by the authorization path. `appendUnitScopedRoles` emits one\n * `initiatorRoles` entry per assignment, carrying `organizationUnitId` as a NARROWING discriminator\n * beside the organization-wide entry; every consumer that unions `initiatorRoles` partitions on that\n * field first (`isOrganizationWideRoleInfo`). So a unit role is live authority — bounded to one unit,\n * never tenant-wide. Two consequences for anything touching this field:\n *\n * - The role-ceiling gate governs who may ASSIGN it (both write paths carry it explicitly, see\n * {@link OrganizationUnitMemberSchema.shape.role}).\n * - Every change to it is an access-control decision and emits\n * `ORGANIZATION_UNIT_MEMBER_ROLE_CHANGED`, the narrowed twin of the organization-wide\n * `ORGANIZATION_MEMBER_ROLE_CHANGED`.\n *\n * assurance-control: WILDO.ACCESS.LEAST_PRIVILEGE · WILDO.ACCESS.PRIVILEGE_EVIDENCE — least-privilege and evidence on unit-scoped\n * role assignment.\n */\n\nimport { z } from 'zod';\n\nimport { OrgRolesSchema } from '../security/authorizations/roles.shared.schemas';\n\nexport const OrganizationUnitMemberSchema = z.object({\n _id: z.string().min(1).isPrimaryKey().isSummaryField(),\n /**\n * Tenant anchor. Denormalized from the parent membership so tenant scoping and the contextual\n * filter resolve on this row alone — an authorization-adjacent read must never depend on a join\n * to establish which tenant a row belongs to.\n */\n organizationId: z.string().min(1).isDBIndexed().isForeignKey().isSummaryField().excludeFromUpdate(),\n /** The unit of the org chart this assignment targets. */\n organizationUnitId: z.string().min(1).isDBIndexed().isForeignKey().isSummaryField().excludeFromUpdate(),\n /**\n * The organization MEMBERSHIP being assigned — deliberately the membership, not the user.\n *\n * A unit assignment presupposes membership of the owning organization, so the membership row is\n * the true semantic parent: it carries the tenant binding and its deletion is exactly when the\n * assignment stops meaning anything (hence the cascade on that edge). Pointing at `userId`\n * instead would model a user as assignable to a unit of an organization they may not belong to.\n *\n * A denormalized `userId` copy was considered for a one-hop \"unit roles for this user\" read and\n * REJECTED: the execution-context builder already holds the member rows (and therefore their\n * `_id`s) at the point it would need this, so the copy would buy nothing and add a field that can\n * drift.\n */\n organizationMemberId: z.string().min(1).isDBIndexed().isForeignKey().isSummaryField().excludeFromUpdate(),\n /**\n * The role this member holds WITHIN this unit.\n *\n * The only mutable field on the row, and deliberately so: re-grading an assignment through UPDATE\n * keeps the row's identity (and its `createdAt` provenance) intact, where a delete-plus-create\n * would silently reset both. The two coordinates that IDENTIFY the assignment\n * (`organizationMemberId`, `organizationUnitId`) are `.excludeFromUpdate()`, so an edit can change\n * what the assignment GRANTS but never what it is ABOUT.\n *\n * Both write paths — CREATE and UPDATE — are governed by the role-ceiling gate\n * (`assertRequestedRolesWithinCallerCeiling`): a principal cannot grant a unit role it does not\n * itself hold. Because a custom implementation resolves by an exact operation-path key, each path\n * carries the gate explicitly; neither inherits it from the other.\n */\n role: OrgRolesSchema.isDBIndexed().isSummaryField()\n .describe('The role the member holds inside this unit: a core organization role or one the application defines. A caller cannot grant a role it does not hold itself.'),\n createdAt: z.date().default(() => new Date()).optional().isDBIndexed().excludeFromCreate().excludeFromUpdate(),\n updatedAt: z.date().default(() => new Date()).optional().isDBIndexed().excludeFromCreate().excludeFromUpdate(),\n}).businessKeySet([\n 'organizationMemberId',\n 'organizationUnitId',\n]);\n\nexport type OrganizationUnitMember = z.infer<typeof OrganizationUnitMemberSchema>;\n"]}
|
|
@@ -32,7 +32,14 @@ export declare enum OrganizationUnitNarrowingDecisionKind {
|
|
|
32
32
|
/** ONLY unit grants satisfy the operation, so access is confined to those units. */
|
|
33
33
|
UNIT_NARROWED = "UNIT_NARROWED",
|
|
34
34
|
/** Neither an organization-wide nor a unit grant satisfies the operation. */
|
|
35
|
-
DENIED = "DENIED"
|
|
35
|
+
DENIED = "DENIED",
|
|
36
|
+
/**
|
|
37
|
+
* A UNIT-ONLY principal — one holding no organization-wide entry in the target organization, which
|
|
38
|
+
* only a unit-scoped service-provider relationship produces (#1597) — reads a resource the application
|
|
39
|
+
* declared organization-wide for providers (`serviceProviderOrganizationWideAccess`). Admitted with NO
|
|
40
|
+
* row confinement, read-class operations only. Never produced for a resource that narrows by unit.
|
|
41
|
+
*/
|
|
42
|
+
SERVICE_PROVIDER_ORGANIZATION_WIDE = "SERVICE_PROVIDER_ORGANIZATION_WIDE"
|
|
36
43
|
}
|
|
37
44
|
export type OrganizationUnitNarrowingDecision = {
|
|
38
45
|
kind: OrganizationUnitNarrowingDecisionKind.NOT_NARROWED;
|
|
@@ -44,6 +51,8 @@ export type OrganizationUnitNarrowingDecision = {
|
|
|
44
51
|
organizationUnitIds: string[];
|
|
45
52
|
} | {
|
|
46
53
|
kind: OrganizationUnitNarrowingDecisionKind.DENIED;
|
|
54
|
+
} | {
|
|
55
|
+
kind: OrganizationUnitNarrowingDecisionKind.SERVICE_PROVIDER_ORGANIZATION_WIDE;
|
|
47
56
|
};
|
|
48
57
|
/**
|
|
49
58
|
* A decision as STAMPED on an execution context — the conferring-grant record.
|
|
@@ -124,7 +133,60 @@ export declare function resolveOrganizationUnitNarrowingDecision(input: {
|
|
|
124
133
|
readonly resourceType: string;
|
|
125
134
|
readonly requiredRoles: readonly string[];
|
|
126
135
|
readonly initiatorRoles: readonly ExecutionContext_RoleInfo[] | undefined;
|
|
136
|
+
/**
|
|
137
|
+
* The organization the request acts inside. Only role entries held IN it are evaluated — an
|
|
138
|
+
* ORG_ADMIN of another tenant must neither satisfy the organization-wide step nor lift narrowing
|
|
139
|
+
* here (see `selectRoleInfosActingInOrganization`). Absent ⇒ no organization entry counts.
|
|
140
|
+
*/
|
|
141
|
+
readonly organizationId: string | undefined;
|
|
127
142
|
readonly narrowingRegistry: Readonly<Partial<Record<string, OrganizationUnitNarrowingDeclaration>>>;
|
|
128
143
|
readonly roleHierarchyResolver: OrganizationUnitRoleHierarchyResolver;
|
|
144
|
+
/**
|
|
145
|
+
* Resources the application declared readable organization-wide by a UNIT-scoped service provider
|
|
146
|
+
* (`serviceProviderOrganizationWideAccess`). Absent ⇒ none.
|
|
147
|
+
*/
|
|
148
|
+
readonly serviceProviderOrganizationWideAccess?: Readonly<Partial<Record<string, ServiceProviderOrganizationWideAccessDeclaration>>>;
|
|
149
|
+
/** Whether the operation only READS (`READ`/`LIST`/`SEARCH`/`COUNT`). The provider declaration admits nothing else. */
|
|
150
|
+
readonly operationIsReadOnly?: boolean;
|
|
129
151
|
}): OrganizationUnitNarrowingDecision;
|
|
152
|
+
/**
|
|
153
|
+
* An application's statement that a UNIT-scoped service-provider expert may READ a resource across the
|
|
154
|
+
* whole client organization — a shared reference list, say — even though the resource does not narrow
|
|
155
|
+
* by unit. The rationale is required: it is what a reviewer reads to judge whether the widening is right.
|
|
156
|
+
*/
|
|
157
|
+
export type ServiceProviderOrganizationWideAccessDeclaration = {
|
|
158
|
+
readonly rationale: string;
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* The ENGINE's own organization-wide reads for a unit-only service-provider principal (#1597) — exactly one resource,
|
|
162
|
+
* and it is the organization row itself.
|
|
163
|
+
*
|
|
164
|
+
* A principal who works in an organization must be able to read which organization that is: its name, type and status,
|
|
165
|
+
* the row an ordinary member reads (its READ requires ORG_MEMBER, which the provider role inherits). Without it the organization switcher — one READ of the row per membership —
|
|
166
|
+
* never lists a client whose relationship is confined to units, so unit scope is unusable through the shipped UI.
|
|
167
|
+
* Reading the row grants nothing else: no other resource, and (by the admission below) no write.
|
|
168
|
+
*
|
|
169
|
+
* Engine-owned rather than an application declaration because the application MAY NOT declare it: ORGANIZATIONS is in
|
|
170
|
+
* the authorization plane, which `collectServiceProviderOrganizationWideAccessViolations` refuses — rightly, since an
|
|
171
|
+
* application widening it could expose a future authority field. The engine owns the row's shape, so the engine is the
|
|
172
|
+
* party that can say its READ is safe. Widening this set is a framework decision, made here and nowhere else.
|
|
173
|
+
*/
|
|
174
|
+
export declare const ENGINE_SERVICE_PROVIDER_ORGANIZATION_WIDE_READS: ReadonlySet<string>;
|
|
175
|
+
/** Why a `serviceProviderOrganizationWideAccess` entry was refused at startup. */
|
|
176
|
+
export declare enum ServiceProviderOrganizationWideAccessViolationKind {
|
|
177
|
+
/** The resource issues authority (the authorization plane) — a provider must never read it tenant-wide by declaration. */
|
|
178
|
+
AUTHORIZATION_PLANE_RESOURCE = "AUTHORIZATION_PLANE_RESOURCE",
|
|
179
|
+
/** The resource already narrows by unit; declaring it organization-wide for providers would make one decision two. */
|
|
180
|
+
RESOURCE_NARROWS_BY_UNIT = "RESOURCE_NARROWS_BY_UNIT",
|
|
181
|
+
/** No rationale — the declaration's whole review value is the sentence saying why. */
|
|
182
|
+
MISSING_RATIONALE = "MISSING_RATIONALE"
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Validate an application's `serviceProviderOrganizationWideAccess` against the MERGED narrowing map.
|
|
186
|
+
* Fail closed at startup on any violation: a misdeclared widening is a silent authorization hole.
|
|
187
|
+
*/
|
|
188
|
+
export declare function collectServiceProviderOrganizationWideAccessViolations(declarations: Readonly<Partial<Record<string, ServiceProviderOrganizationWideAccessDeclaration>>> | undefined, narrowingRegistry: Readonly<Partial<Record<string, OrganizationUnitNarrowingDeclaration>>>): {
|
|
189
|
+
resourceType: string;
|
|
190
|
+
kind: ServiceProviderOrganizationWideAccessViolationKind;
|
|
191
|
+
}[];
|
|
130
192
|
//# sourceMappingURL=organization-unit-narrowing-decision.shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-unit-narrowing-decision.shared.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"organization-unit-narrowing-decision.shared.d.ts","sourceRoot":"","sources":["../../../src/organizations/organization-unit-narrowing-decision.shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,9 +20,10 @@
|
|
|
20
20
|
* operation wins outright and is not narrowed — so opting a resource in can never shrink a result
|
|
21
21
|
* set that a principal could already see.
|
|
22
22
|
*/
|
|
23
|
-
import { isOrganizationWideRoleInfo, selectUnitScopedRoleGrants } from '../runtime/execution-context.shared.schemas.js';
|
|
23
|
+
import { isOrganizationWideRoleInfo, selectRoleInfosActingInOrganization, selectUnitScopedRoleGrants } from '../runtime/execution-context.shared.schemas.js';
|
|
24
24
|
import { ResourcePrimaryScope } from '../resources/resources.shared.schemas.js';
|
|
25
|
-
import {
|
|
25
|
+
import { CoreResourceType } from '../resources/resources.shared.core.definitions.js';
|
|
26
|
+
import { ORGANIZATION_UNIT_NARROWING_FORBIDDEN_RESOURCES, resolveOrganizationUnitNarrowing } from './organization-unit-narrowing.shared.js';
|
|
26
27
|
/** Why a request was allowed — or that it was not. */
|
|
27
28
|
export var OrganizationUnitNarrowingDecisionKind;
|
|
28
29
|
(function (OrganizationUnitNarrowingDecisionKind) {
|
|
@@ -34,6 +35,13 @@ export var OrganizationUnitNarrowingDecisionKind;
|
|
|
34
35
|
OrganizationUnitNarrowingDecisionKind["UNIT_NARROWED"] = "UNIT_NARROWED";
|
|
35
36
|
/** Neither an organization-wide nor a unit grant satisfies the operation. */
|
|
36
37
|
OrganizationUnitNarrowingDecisionKind["DENIED"] = "DENIED";
|
|
38
|
+
/**
|
|
39
|
+
* A UNIT-ONLY principal — one holding no organization-wide entry in the target organization, which
|
|
40
|
+
* only a unit-scoped service-provider relationship produces (#1597) — reads a resource the application
|
|
41
|
+
* declared organization-wide for providers (`serviceProviderOrganizationWideAccess`). Admitted with NO
|
|
42
|
+
* row confinement, read-class operations only. Never produced for a resource that narrows by unit.
|
|
43
|
+
*/
|
|
44
|
+
OrganizationUnitNarrowingDecisionKind["SERVICE_PROVIDER_ORGANIZATION_WIDE"] = "SERVICE_PROVIDER_ORGANIZATION_WIDE";
|
|
37
45
|
})(OrganizationUnitNarrowingDecisionKind || (OrganizationUnitNarrowingDecisionKind = {}));
|
|
38
46
|
/**
|
|
39
47
|
* How restrictive a decision is. Higher wins when two stamps meet — see
|
|
@@ -44,6 +52,13 @@ const NARROWING_RESTRICTIVENESS = {
|
|
|
44
52
|
[OrganizationUnitNarrowingDecisionKind.ORGANIZATION_WIDE]: 0,
|
|
45
53
|
[OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED]: 1,
|
|
46
54
|
[OrganizationUnitNarrowingDecisionKind.DENIED]: 2,
|
|
55
|
+
// Admits without confinement — and only ever on a resource that does not narrow, so it never meets a
|
|
56
|
+
// UNIT_NARROWED stamp for the same resource. BELOW every other kind (#1597 review 7): it is the one
|
|
57
|
+
// decision that admits a principal holding NO organization-wide entry, so any other decision for the same
|
|
58
|
+
// resource in the same context — a NOT_NARROWED, an ORGANIZATION_WIDE, a DENIED — must replace it rather
|
|
59
|
+
// than let the admission ride on. At an equal weight the FIRST stamp won, so an admitting read's stamp
|
|
60
|
+
// could have outlived a later refusal on the same context.
|
|
61
|
+
[OrganizationUnitNarrowingDecisionKind.SERVICE_PROVIDER_ORGANIZATION_WIDE]: -1,
|
|
47
62
|
};
|
|
48
63
|
/**
|
|
49
64
|
* Combine an existing stamp with a new one for the SAME resource — a stamp may only ever TIGHTEN.
|
|
@@ -111,10 +126,19 @@ function satisfiesAnyRequiredRole(heldRoles, requiredRoles, scope, roleHierarchy
|
|
|
111
126
|
* held role justifies.
|
|
112
127
|
*/
|
|
113
128
|
export function resolveOrganizationUnitNarrowingDecision(input) {
|
|
114
|
-
const { resourceType, requiredRoles,
|
|
129
|
+
const { resourceType, requiredRoles, narrowingRegistry, roleHierarchyResolver } = input;
|
|
130
|
+
const initiatorRoles = selectRoleInfosActingInOrganization(input.initiatorRoles, input.organizationId);
|
|
115
131
|
const narrowing = resolveOrganizationUnitNarrowing(narrowingRegistry, resourceType);
|
|
116
|
-
if (!narrowing)
|
|
117
|
-
return {
|
|
132
|
+
if (!narrowing) {
|
|
133
|
+
return resolveServiceProviderOrganizationWideAdmission({
|
|
134
|
+
resourceType,
|
|
135
|
+
requiredRoles,
|
|
136
|
+
initiatorRoles,
|
|
137
|
+
roleHierarchyResolver,
|
|
138
|
+
declarations: input.serviceProviderOrganizationWideAccess,
|
|
139
|
+
operationIsReadOnly: input.operationIsReadOnly === true,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
118
142
|
// ADDITIVE: an organization-wide grant that already satisfies the operation wins outright, so
|
|
119
143
|
// opting a resource in can never shrink what a principal could already see.
|
|
120
144
|
const organizationWideRoles = (initiatorRoles ?? []).filter(isOrganizationWideRoleInfo);
|
|
@@ -136,4 +160,81 @@ export function resolveOrganizationUnitNarrowingDecision(input) {
|
|
|
136
160
|
organizationUnitIds: [...new Set(qualifyingUnitIds)],
|
|
137
161
|
};
|
|
138
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* The ENGINE's own organization-wide reads for a unit-only service-provider principal (#1597) — exactly one resource,
|
|
165
|
+
* and it is the organization row itself.
|
|
166
|
+
*
|
|
167
|
+
* A principal who works in an organization must be able to read which organization that is: its name, type and status,
|
|
168
|
+
* the row an ordinary member reads (its READ requires ORG_MEMBER, which the provider role inherits). Without it the organization switcher — one READ of the row per membership —
|
|
169
|
+
* never lists a client whose relationship is confined to units, so unit scope is unusable through the shipped UI.
|
|
170
|
+
* Reading the row grants nothing else: no other resource, and (by the admission below) no write.
|
|
171
|
+
*
|
|
172
|
+
* Engine-owned rather than an application declaration because the application MAY NOT declare it: ORGANIZATIONS is in
|
|
173
|
+
* the authorization plane, which `collectServiceProviderOrganizationWideAccessViolations` refuses — rightly, since an
|
|
174
|
+
* application widening it could expose a future authority field. The engine owns the row's shape, so the engine is the
|
|
175
|
+
* party that can say its READ is safe. Widening this set is a framework decision, made here and nowhere else.
|
|
176
|
+
*/
|
|
177
|
+
export const ENGINE_SERVICE_PROVIDER_ORGANIZATION_WIDE_READS = new Set([CoreResourceType.ORGANIZATIONS]);
|
|
178
|
+
/**
|
|
179
|
+
* The non-narrowed half of the decision (#1597).
|
|
180
|
+
*
|
|
181
|
+
* A resource that does not narrow by unit has nothing to say about a principal who holds an
|
|
182
|
+
* organization-wide entry: `NOT_NARROWED`, and ordinary authorization decides. What is new is the
|
|
183
|
+
* UNIT-ONLY principal — one who holds unit entries in the target organization and NO organization-wide
|
|
184
|
+
* entry there. Only a unit-scoped service-provider relationship produces one: an ordinary unit member
|
|
185
|
+
* always also holds the organization-wide entry of the membership their unit role hangs from.
|
|
186
|
+
*
|
|
187
|
+
* Detected STRUCTURALLY (no org-wide entry), never by reading the relationship attribution on the role
|
|
188
|
+
* entry — that field is audit-only by contract, and an authority decision reading it would make audit
|
|
189
|
+
* metadata a control.
|
|
190
|
+
*
|
|
191
|
+
* Such a principal is admitted only when all hold, and otherwise gets `NOT_NARROWED`, which ordinary
|
|
192
|
+
* authorization then refuses because no organization-wide entry satisfies anything (fail closed):
|
|
193
|
+
* - the application declared the resource in `serviceProviderOrganizationWideAccess`, or the engine did
|
|
194
|
+
* ({@link ENGINE_SERVICE_PROVIDER_ORGANIZATION_WIDE_READS} — the organization's own row);
|
|
195
|
+
* - the operation only reads;
|
|
196
|
+
* - one of the unit entries satisfies the operation's roles.
|
|
197
|
+
*/
|
|
198
|
+
function resolveServiceProviderOrganizationWideAdmission(input) {
|
|
199
|
+
const notNarrowed = { kind: OrganizationUnitNarrowingDecisionKind.NOT_NARROWED };
|
|
200
|
+
if (!input.declarations?.[input.resourceType] && !ENGINE_SERVICE_PROVIDER_ORGANIZATION_WIDE_READS.has(input.resourceType))
|
|
201
|
+
return notNarrowed;
|
|
202
|
+
if (!input.operationIsReadOnly)
|
|
203
|
+
return notNarrowed;
|
|
204
|
+
const organizationEntries = input.initiatorRoles.filter((roleInfo) => roleInfo.relatedPrimaryScope === ResourcePrimaryScope.ORGANIZATIONS);
|
|
205
|
+
if (organizationEntries.some(isOrganizationWideRoleInfo))
|
|
206
|
+
return notNarrowed;
|
|
207
|
+
const satisfied = selectUnitScopedRoleGrants(organizationEntries).some((grant) => satisfiesAnyRequiredRole(grant.roles, input.requiredRoles, ResourcePrimaryScope.ORGANIZATIONS, input.roleHierarchyResolver));
|
|
208
|
+
return satisfied ? { kind: OrganizationUnitNarrowingDecisionKind.SERVICE_PROVIDER_ORGANIZATION_WIDE } : notNarrowed;
|
|
209
|
+
}
|
|
210
|
+
/** Why a `serviceProviderOrganizationWideAccess` entry was refused at startup. */
|
|
211
|
+
export var ServiceProviderOrganizationWideAccessViolationKind;
|
|
212
|
+
(function (ServiceProviderOrganizationWideAccessViolationKind) {
|
|
213
|
+
/** The resource issues authority (the authorization plane) — a provider must never read it tenant-wide by declaration. */
|
|
214
|
+
ServiceProviderOrganizationWideAccessViolationKind["AUTHORIZATION_PLANE_RESOURCE"] = "AUTHORIZATION_PLANE_RESOURCE";
|
|
215
|
+
/** The resource already narrows by unit; declaring it organization-wide for providers would make one decision two. */
|
|
216
|
+
ServiceProviderOrganizationWideAccessViolationKind["RESOURCE_NARROWS_BY_UNIT"] = "RESOURCE_NARROWS_BY_UNIT";
|
|
217
|
+
/** No rationale — the declaration's whole review value is the sentence saying why. */
|
|
218
|
+
ServiceProviderOrganizationWideAccessViolationKind["MISSING_RATIONALE"] = "MISSING_RATIONALE";
|
|
219
|
+
})(ServiceProviderOrganizationWideAccessViolationKind || (ServiceProviderOrganizationWideAccessViolationKind = {}));
|
|
220
|
+
/**
|
|
221
|
+
* Validate an application's `serviceProviderOrganizationWideAccess` against the MERGED narrowing map.
|
|
222
|
+
* Fail closed at startup on any violation: a misdeclared widening is a silent authorization hole.
|
|
223
|
+
*/
|
|
224
|
+
export function collectServiceProviderOrganizationWideAccessViolations(declarations, narrowingRegistry) {
|
|
225
|
+
const forbidden = new Set(ORGANIZATION_UNIT_NARROWING_FORBIDDEN_RESOURCES);
|
|
226
|
+
const violations = [];
|
|
227
|
+
for (const [resourceType, declaration] of Object.entries(declarations ?? {})) {
|
|
228
|
+
if (forbidden.has(resourceType)) {
|
|
229
|
+
violations.push({ resourceType, kind: ServiceProviderOrganizationWideAccessViolationKind.AUTHORIZATION_PLANE_RESOURCE });
|
|
230
|
+
}
|
|
231
|
+
if (narrowingRegistry[resourceType]) {
|
|
232
|
+
violations.push({ resourceType, kind: ServiceProviderOrganizationWideAccessViolationKind.RESOURCE_NARROWS_BY_UNIT });
|
|
233
|
+
}
|
|
234
|
+
if (typeof declaration?.rationale !== 'string' || declaration.rationale.trim().length === 0) {
|
|
235
|
+
violations.push({ resourceType, kind: ServiceProviderOrganizationWideAccessViolationKind.MISSING_RATIONALE });
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return violations;
|
|
239
|
+
}
|
|
139
240
|
//# sourceMappingURL=organization-unit-narrowing-decision.shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-unit-narrowing-decision.shared.js","sourceRoot":"","sources":["../../../../src/organizations/organization-unit-narrowing-decision.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACrH,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AAExF,sDAAsD;AACtD,MAAM,CAAN,IAAY,qCASX;AATD,WAAY,qCAAqC;IAC/C,6FAA6F;IAC7F,sEAA6B,CAAA;IAC7B,2FAA2F;IAC3F,gFAAuC,CAAA;IACvC,oFAAoF;IACpF,wEAA+B,CAAA;IAC/B,6EAA6E;IAC7E,0DAAiB,CAAA;AACnB,CAAC,EATW,qCAAqC,KAArC,qCAAqC,QAShD;AA2CD;;;GAGG;AACH,MAAM,yBAAyB,GAAoE;IACjG,CAAC,qCAAqC,CAAC,YAAY,CAAC,EAAE,CAAC;IACvD,CAAC,qCAAqC,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAC5D,CAAC,qCAAqC,CAAC,aAAa,CAAC,EAAE,CAAC;IACxD,CAAC,qCAAqC,CAAC,MAAM,CAAC,EAAE,CAAC;CAClD,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oCAAoC,CAClD,aAAyD,EACzD,aAA6C;IAE7C,IAAI,CAAC,aAAa;QAAE,OAAO,aAAa,CAAC;IAEzC,MAAM,cAAc,GAAG,yBAAyB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9E,MAAM,cAAc,GAAG,yBAAyB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE9E,IACE,aAAa,CAAC,QAAQ,CAAC,IAAI,KAAK,qCAAqC,CAAC,aAAa;QACnF,aAAa,CAAC,QAAQ,CAAC,IAAI,KAAK,qCAAqC,CAAC,aAAa,EACnF,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAG,aAAa,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACtH,gGAAgG;QAChG,0FAA0F;QAC1F,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChE,OAAO;YACL,GAAG,aAAa;YAChB,QAAQ,EAAE,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,mBAAmB,EAAE,kBAAkB,EAAE;YAChF,4BAA4B,EAAE,CAAC,aAAa,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACjG,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC3C,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;AACzE,CAAC;AAKD,sFAAsF;AACtF,SAAS,wBAAwB,CAC/B,SAA4B,EAC5B,aAAgC,EAChC,KAA2B,EAC3B,qBAA4D;IAE5D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACnG,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,wCAAwC,CAAC,KAMxD;IACC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;IAExG,MAAM,SAAS,GAAG,gCAAgC,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IACpF,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,qCAAqC,CAAC,YAAY,EAAE,CAAC;IAEpF,8FAA8F;IAC9F,4EAA4E;IAC5E,MAAM,qBAAqB,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACxF,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;QAC7C,IAAI,wBAAwB,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,EAAE,CAAC;YACjH,OAAO,EAAE,IAAI,EAAE,qCAAqC,CAAC,iBAAiB,EAAE,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,cAAc,CAAC;SACjE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAChB,wBAAwB,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,oBAAoB,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;SACjH,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE5C,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,qCAAqC,CAAC,MAAM,EAAE,CAAC;IAElG,OAAO;QACL,IAAI,EAAE,qCAAqC,CAAC,aAAa;QACzD,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,iGAAiG;QACjG,mBAAmB,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;KACrD,CAAC;AACJ,CAAC","sourcesContent":["/**\n * The single authority deciding whether — and how — a request is narrowed by organization unit.\n *\n * ## Why one function rather than two checks\n *\n * The decision is consumed in two places that live in different services: the OPERATION GATE (may\n * this caller attempt this at all?) and the ROW FILTER / WRITE VALIDATION (which rows may they\n * touch?). Those must agree exactly. If the gate admits a caller on the strength of a unit grant and\n * the filter then fails to narrow, that unit grant has silently become organization-wide access —\n * the precise escalation the narrowing model exists to avoid. Deriving both from one function makes\n * disagreement impossible rather than merely unlikely.\n *\n * It is also the \"record the conferring grant\" surface: the returned decision names WHY access was\n * allowed, which is what an access review needs in order to answer \"why does this person have access\n * to this record?\".\n *\n * ## The algebra (plan decision D-C3b — ADDITIVE)\n *\n * Unit grants ADD reach; they never subtract. An organization-wide grant that already satisfies the\n * operation wins outright and is not narrowed — so opting a resource in can never shrink a result\n * set that a principal could already see.\n */\n\nimport type { ExecutionContext_RoleInfo } from '../runtime/execution-context.shared.schemas';\nimport { isOrganizationWideRoleInfo, selectUnitScopedRoleGrants } from '../runtime/execution-context.shared.schemas';\nimport { ResourcePrimaryScope } from '../resources/resources.shared.schemas';\nimport type { OrganizationUnitNarrowingDeclaration } from './organization-unit-narrowing.shared';\nimport { resolveOrganizationUnitNarrowing } from './organization-unit-narrowing.shared';\n\n/** Why a request was allowed — or that it was not. */\nexport enum OrganizationUnitNarrowingDecisionKind {\n /** The resource does not participate in unit narrowing; authorization proceeds unchanged. */\n NOT_NARROWED = 'NOT_NARROWED',\n /** An organization-wide grant satisfies the operation. No narrowing applies (additive). */\n ORGANIZATION_WIDE = 'ORGANIZATION_WIDE',\n /** ONLY unit grants satisfy the operation, so access is confined to those units. */\n UNIT_NARROWED = 'UNIT_NARROWED',\n /** Neither an organization-wide nor a unit grant satisfies the operation. */\n DENIED = 'DENIED',\n}\n\nexport type OrganizationUnitNarrowingDecision =\n | { kind: OrganizationUnitNarrowingDecisionKind.NOT_NARROWED }\n | { kind: OrganizationUnitNarrowingDecisionKind.ORGANIZATION_WIDE }\n | { kind: OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED; unitFieldName: string; organizationUnitIds: string[] }\n | { kind: OrganizationUnitNarrowingDecisionKind.DENIED };\n\n/**\n * A decision as STAMPED on an execution context — the conferring-grant record.\n *\n * assurance-control: WILDO.ACCESS.SCOPE_CONFINEMENT — records WHY a principal reached a\n * record, which is the input an access review needs to answer \"why does this person have access to\n * this?\" without reconstructing it from role tables.\n *\n * The extra fields beyond {@link decision} exist for that review, not for the runtime rule: the\n * runtime only ever reads `decision`. `requiredRoles` is what the operation demanded and\n * `operationIdentifier` is what was attempted, so a reviewer can see the demand, the answer and the\n * units it resolved to in one record.\n */\nexport type OrganizationUnitNarrowingStamp = {\n /** The resource the decision was computed FOR. A stamp is only ever valid for this resource. */\n readonly resourceType: string;\n /** The operation whose role set was evaluated. Diagnostic/audit only — never a lookup key. */\n readonly operationIdentifier: string;\n /** The operation's declared role set at evaluation time. */\n readonly requiredRoles: readonly string[];\n /** The decision itself — the only field the runtime rule reads. */\n readonly decision: OrganizationUnitNarrowingDecision;\n /**\n * Of the units in a `UNIT_NARROWED` decision, the ones reached ONLY through downward inheritance\n * rather than held directly.\n *\n * Audit-only, and the reason it exists is specific: with `INHERIT_DOWN`, a grant at a ROOT unit\n * reaches the entire organization chart — functionally organization-wide access assembled from one\n * narrow grant (plan decision D-C4, watch item 4). Reporting only the effective set would make that\n * indistinguishable from a genuinely narrow grant in the access record. Splitting it lets a reviewer\n * see \"granted at Sales, effective across Sales and 12 descendants\" and judge whether that is what\n * was intended.\n */\n readonly inheritedOrganizationUnitIds?: readonly string[];\n};\n\n/**\n * How restrictive a decision is. Higher wins when two stamps meet — see\n * {@link mergeOrganizationUnitNarrowingStamps}.\n */\nconst NARROWING_RESTRICTIVENESS: Readonly<Record<OrganizationUnitNarrowingDecisionKind, number>> = {\n [OrganizationUnitNarrowingDecisionKind.NOT_NARROWED]: 0,\n [OrganizationUnitNarrowingDecisionKind.ORGANIZATION_WIDE]: 0,\n [OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED]: 1,\n [OrganizationUnitNarrowingDecisionKind.DENIED]: 2,\n};\n\n/**\n * Combine an existing stamp with a new one for the SAME resource — a stamp may only ever TIGHTEN.\n *\n * ## Why this is not \"last write wins\", and not \"throw on conflict\"\n *\n * The execution context is reachable by any backend code holding it, so a plain overwrite would let\n * a later `ORGANIZATION_WIDE` stamp erase an earlier `UNIT_NARROWED` one and lift the narrowing —\n * the same privilege-escalation surface the retention see-through setter is guarded against.\n * Throwing on a conflict was rejected instead: the gate is legitimately re-entered within one request\n * (field-validation pre-checks, the MCP tool dispatcher re-running the controller gate), and turning\n * a legitimate re-entry into an exception converts a safe situation into a 500.\n *\n * Monotonic tightening satisfies both: a second evaluation can restrict further, never widen. Two\n * `UNIT_NARROWED` stamps INTERSECT their unit sets for the same reason.\n *\n * The cost is deliberate over-restriction in one edge case: if two operations on the same resource\n * within one request legitimately resolve differently (one satisfied organization-wide, one only by a\n * unit grant), the narrower answer governs both. That is the fail-safe direction.\n */\nexport function mergeOrganizationUnitNarrowingStamps(\n existingStamp: OrganizationUnitNarrowingStamp | undefined,\n incomingStamp: OrganizationUnitNarrowingStamp,\n): OrganizationUnitNarrowingStamp {\n if (!existingStamp) return incomingStamp;\n\n const existingWeight = NARROWING_RESTRICTIVENESS[existingStamp.decision.kind];\n const incomingWeight = NARROWING_RESTRICTIVENESS[incomingStamp.decision.kind];\n\n if (\n existingStamp.decision.kind === OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED &&\n incomingStamp.decision.kind === OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED\n ) {\n const existingUnitIds = new Set(existingStamp.decision.organizationUnitIds);\n const intersectedUnitIds = incomingStamp.decision.organizationUnitIds.filter((unitId) => existingUnitIds.has(unitId));\n // The audit split follows the intersection: an inherited unit that did not survive is no longer\n // reached, so reporting it would overstate the grant in the very record a reviewer reads.\n const survivingIntersectedUnitIds = new Set(intersectedUnitIds);\n return {\n ...incomingStamp,\n decision: { ...incomingStamp.decision, organizationUnitIds: intersectedUnitIds },\n inheritedOrganizationUnitIds: (incomingStamp.inheritedOrganizationUnitIds ?? []).filter((unitId) =>\n survivingIntersectedUnitIds.has(unitId)),\n };\n }\n\n return incomingWeight > existingWeight ? incomingStamp : existingStamp;\n}\n\n/** Expands one role into everything it confers within a scope — the runtime `inheritFrom` chain. */\nexport type OrganizationUnitRoleHierarchyResolver = (role: string, scope: ResourcePrimaryScope) => string[];\n\n/** Does any of `heldRoles` confer at least one of `requiredRoles`, within `scope`? */\nfunction satisfiesAnyRequiredRole(\n heldRoles: readonly string[],\n requiredRoles: readonly string[],\n scope: ResourcePrimaryScope,\n roleHierarchyResolver: OrganizationUnitRoleHierarchyResolver,\n): boolean {\n if (requiredRoles.length === 0) return false;\n const conferred = new Set<string>(heldRoles.flatMap((role) => roleHierarchyResolver(role, scope)));\n return requiredRoles.some((requiredRole) => conferred.has(requiredRole));\n}\n\n/**\n * Decide the narrowing posture for one request.\n *\n * `requiredRoles` is the operation's declared role set. An operation declaring NO roles is not\n * treated as \"anyone passes\" here — this function only ever ANSWERS the unit question, and returns\n * {@link OrganizationUnitNarrowingDecisionKind.NOT_NARROWED} so the caller's existing authorization\n * logic remains the authority for every non-unit consideration.\n *\n * Evaluation order encodes the additive rule:\n * 1. resource not opted in → NOT_NARROWED (nothing to say)\n * 2. organization-wide grant suffices → ORGANIZATION_WIDE (widest wins; no narrowing)\n * 3. unit grant suffices → UNIT_NARROWED, confined to the units that supplied it\n * 4. otherwise → DENIED\n *\n * Step 3 confines access to the units whose grant ACTUALLY satisfied the operation, not to every\n * unit the principal belongs to. A member who is ORG_MANAGER of Sales and ORG_GUEST of Legal, acting\n * on a MANAGER-gated operation, reaches Sales only — carrying Legal along would grant reach that no\n * held role justifies.\n */\nexport function resolveOrganizationUnitNarrowingDecision(input: {\n readonly resourceType: string;\n readonly requiredRoles: readonly string[];\n readonly initiatorRoles: readonly ExecutionContext_RoleInfo[] | undefined;\n readonly narrowingRegistry: Readonly<Partial<Record<string, OrganizationUnitNarrowingDeclaration>>>;\n readonly roleHierarchyResolver: OrganizationUnitRoleHierarchyResolver;\n}): OrganizationUnitNarrowingDecision {\n const { resourceType, requiredRoles, initiatorRoles, narrowingRegistry, roleHierarchyResolver } = input;\n\n const narrowing = resolveOrganizationUnitNarrowing(narrowingRegistry, resourceType);\n if (!narrowing) return { kind: OrganizationUnitNarrowingDecisionKind.NOT_NARROWED };\n\n // ADDITIVE: an organization-wide grant that already satisfies the operation wins outright, so\n // opting a resource in can never shrink what a principal could already see.\n const organizationWideRoles = (initiatorRoles ?? []).filter(isOrganizationWideRoleInfo);\n for (const roleInfo of organizationWideRoles) {\n if (satisfiesAnyRequiredRole(roleInfo.roles, requiredRoles, roleInfo.relatedPrimaryScope, roleHierarchyResolver)) {\n return { kind: OrganizationUnitNarrowingDecisionKind.ORGANIZATION_WIDE };\n }\n }\n\n // Only the units whose grant actually satisfies the operation confer reach.\n const qualifyingUnitIds = selectUnitScopedRoleGrants(initiatorRoles)\n .filter((grant) =>\n satisfiesAnyRequiredRole(grant.roles, requiredRoles, ResourcePrimaryScope.ORGANIZATIONS, roleHierarchyResolver))\n .map((grant) => grant.organizationUnitId);\n\n if (qualifyingUnitIds.length === 0) return { kind: OrganizationUnitNarrowingDecisionKind.DENIED };\n\n return {\n kind: OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED,\n unitFieldName: narrowing.unitFieldName,\n // De-duplicated: several grants can name the same unit, and the value becomes a query predicate.\n organizationUnitIds: [...new Set(qualifyingUnitIds)],\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"organization-unit-narrowing-decision.shared.js","sourceRoot":"","sources":["../../../src/organizations/organization-unit-narrowing-decision.shared.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The single authority deciding whether — and how — a request is narrowed by organization unit.\n *\n * ## Why one function rather than two checks\n *\n * The decision is consumed in two places that live in different services: the OPERATION GATE (may\n * this caller attempt this at all?) and the ROW FILTER / WRITE VALIDATION (which rows may they\n * touch?). Those must agree exactly. If the gate admits a caller on the strength of a unit grant and\n * the filter then fails to narrow, that unit grant has silently become organization-wide access —\n * the precise escalation the narrowing model exists to avoid. Deriving both from one function makes\n * disagreement impossible rather than merely unlikely.\n *\n * It is also the \"record the conferring grant\" surface: the returned decision names WHY access was\n * allowed, which is what an access review needs in order to answer \"why does this person have access\n * to this record?\".\n *\n * ## The algebra (plan decision D-C3b — ADDITIVE)\n *\n * Unit grants ADD reach; they never subtract. An organization-wide grant that already satisfies the\n * operation wins outright and is not narrowed — so opting a resource in can never shrink a result\n * set that a principal could already see.\n */\n\nimport type { ExecutionContext_RoleInfo } from '../runtime/execution-context.shared.schemas';\nimport { isOrganizationWideRoleInfo, selectRoleInfosActingInOrganization, selectUnitScopedRoleGrants } from '../runtime/execution-context.shared.schemas';\nimport { ResourcePrimaryScope } from '../resources/resources.shared.schemas';\nimport { CoreResourceType } from '../resources/resources.shared.core.definitions';\nimport type { OrganizationUnitNarrowingDeclaration } from './organization-unit-narrowing.shared';\nimport { ORGANIZATION_UNIT_NARROWING_FORBIDDEN_RESOURCES, resolveOrganizationUnitNarrowing } from './organization-unit-narrowing.shared';\n\n/** Why a request was allowed — or that it was not. */\nexport enum OrganizationUnitNarrowingDecisionKind {\n /** The resource does not participate in unit narrowing; authorization proceeds unchanged. */\n NOT_NARROWED = 'NOT_NARROWED',\n /** An organization-wide grant satisfies the operation. No narrowing applies (additive). */\n ORGANIZATION_WIDE = 'ORGANIZATION_WIDE',\n /** ONLY unit grants satisfy the operation, so access is confined to those units. */\n UNIT_NARROWED = 'UNIT_NARROWED',\n /** Neither an organization-wide nor a unit grant satisfies the operation. */\n DENIED = 'DENIED',\n /**\n * A UNIT-ONLY principal — one holding no organization-wide entry in the target organization, which\n * only a unit-scoped service-provider relationship produces (#1597) — reads a resource the application\n * declared organization-wide for providers (`serviceProviderOrganizationWideAccess`). Admitted with NO\n * row confinement, read-class operations only. Never produced for a resource that narrows by unit.\n */\n SERVICE_PROVIDER_ORGANIZATION_WIDE = 'SERVICE_PROVIDER_ORGANIZATION_WIDE',\n}\n\nexport type OrganizationUnitNarrowingDecision =\n | { kind: OrganizationUnitNarrowingDecisionKind.NOT_NARROWED }\n | { kind: OrganizationUnitNarrowingDecisionKind.ORGANIZATION_WIDE }\n | { kind: OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED; unitFieldName: string; organizationUnitIds: string[] }\n | { kind: OrganizationUnitNarrowingDecisionKind.DENIED }\n | { kind: OrganizationUnitNarrowingDecisionKind.SERVICE_PROVIDER_ORGANIZATION_WIDE };\n\n/**\n * A decision as STAMPED on an execution context — the conferring-grant record.\n *\n * assurance-control: WILDO.ACCESS.SCOPE_CONFINEMENT — records WHY a principal reached a\n * record, which is the input an access review needs to answer \"why does this person have access to\n * this?\" without reconstructing it from role tables.\n *\n * The extra fields beyond {@link decision} exist for that review, not for the runtime rule: the\n * runtime only ever reads `decision`. `requiredRoles` is what the operation demanded and\n * `operationIdentifier` is what was attempted, so a reviewer can see the demand, the answer and the\n * units it resolved to in one record.\n */\nexport type OrganizationUnitNarrowingStamp = {\n /** The resource the decision was computed FOR. A stamp is only ever valid for this resource. */\n readonly resourceType: string;\n /** The operation whose role set was evaluated. Diagnostic/audit only — never a lookup key. */\n readonly operationIdentifier: string;\n /** The operation's declared role set at evaluation time. */\n readonly requiredRoles: readonly string[];\n /** The decision itself — the only field the runtime rule reads. */\n readonly decision: OrganizationUnitNarrowingDecision;\n /**\n * Of the units in a `UNIT_NARROWED` decision, the ones reached ONLY through downward inheritance\n * rather than held directly.\n *\n * Audit-only, and the reason it exists is specific: with `INHERIT_DOWN`, a grant at a ROOT unit\n * reaches the entire organization chart — functionally organization-wide access assembled from one\n * narrow grant (plan decision D-C4, watch item 4). Reporting only the effective set would make that\n * indistinguishable from a genuinely narrow grant in the access record. Splitting it lets a reviewer\n * see \"granted at Sales, effective across Sales and 12 descendants\" and judge whether that is what\n * was intended.\n */\n readonly inheritedOrganizationUnitIds?: readonly string[];\n};\n\n/**\n * How restrictive a decision is. Higher wins when two stamps meet — see\n * {@link mergeOrganizationUnitNarrowingStamps}.\n */\nconst NARROWING_RESTRICTIVENESS: Readonly<Record<OrganizationUnitNarrowingDecisionKind, number>> = {\n [OrganizationUnitNarrowingDecisionKind.NOT_NARROWED]: 0,\n [OrganizationUnitNarrowingDecisionKind.ORGANIZATION_WIDE]: 0,\n [OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED]: 1,\n [OrganizationUnitNarrowingDecisionKind.DENIED]: 2,\n // Admits without confinement — and only ever on a resource that does not narrow, so it never meets a\n // UNIT_NARROWED stamp for the same resource. BELOW every other kind (#1597 review 7): it is the one\n // decision that admits a principal holding NO organization-wide entry, so any other decision for the same\n // resource in the same context — a NOT_NARROWED, an ORGANIZATION_WIDE, a DENIED — must replace it rather\n // than let the admission ride on. At an equal weight the FIRST stamp won, so an admitting read's stamp\n // could have outlived a later refusal on the same context.\n [OrganizationUnitNarrowingDecisionKind.SERVICE_PROVIDER_ORGANIZATION_WIDE]: -1,\n};\n\n/**\n * Combine an existing stamp with a new one for the SAME resource — a stamp may only ever TIGHTEN.\n *\n * ## Why this is not \"last write wins\", and not \"throw on conflict\"\n *\n * The execution context is reachable by any backend code holding it, so a plain overwrite would let\n * a later `ORGANIZATION_WIDE` stamp erase an earlier `UNIT_NARROWED` one and lift the narrowing —\n * the same privilege-escalation surface the retention see-through setter is guarded against.\n * Throwing on a conflict was rejected instead: the gate is legitimately re-entered within one request\n * (field-validation pre-checks, the MCP tool dispatcher re-running the controller gate), and turning\n * a legitimate re-entry into an exception converts a safe situation into a 500.\n *\n * Monotonic tightening satisfies both: a second evaluation can restrict further, never widen. Two\n * `UNIT_NARROWED` stamps INTERSECT their unit sets for the same reason.\n *\n * The cost is deliberate over-restriction in one edge case: if two operations on the same resource\n * within one request legitimately resolve differently (one satisfied organization-wide, one only by a\n * unit grant), the narrower answer governs both. That is the fail-safe direction.\n */\nexport function mergeOrganizationUnitNarrowingStamps(\n existingStamp: OrganizationUnitNarrowingStamp | undefined,\n incomingStamp: OrganizationUnitNarrowingStamp,\n): OrganizationUnitNarrowingStamp {\n if (!existingStamp) return incomingStamp;\n\n const existingWeight = NARROWING_RESTRICTIVENESS[existingStamp.decision.kind];\n const incomingWeight = NARROWING_RESTRICTIVENESS[incomingStamp.decision.kind];\n\n if (\n existingStamp.decision.kind === OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED &&\n incomingStamp.decision.kind === OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED\n ) {\n const existingUnitIds = new Set(existingStamp.decision.organizationUnitIds);\n const intersectedUnitIds = incomingStamp.decision.organizationUnitIds.filter((unitId) => existingUnitIds.has(unitId));\n // The audit split follows the intersection: an inherited unit that did not survive is no longer\n // reached, so reporting it would overstate the grant in the very record a reviewer reads.\n const survivingIntersectedUnitIds = new Set(intersectedUnitIds);\n return {\n ...incomingStamp,\n decision: { ...incomingStamp.decision, organizationUnitIds: intersectedUnitIds },\n inheritedOrganizationUnitIds: (incomingStamp.inheritedOrganizationUnitIds ?? []).filter((unitId) =>\n survivingIntersectedUnitIds.has(unitId)),\n };\n }\n\n return incomingWeight > existingWeight ? incomingStamp : existingStamp;\n}\n\n/** Expands one role into everything it confers within a scope — the runtime `inheritFrom` chain. */\nexport type OrganizationUnitRoleHierarchyResolver = (role: string, scope: ResourcePrimaryScope) => string[];\n\n/** Does any of `heldRoles` confer at least one of `requiredRoles`, within `scope`? */\nfunction satisfiesAnyRequiredRole(\n heldRoles: readonly string[],\n requiredRoles: readonly string[],\n scope: ResourcePrimaryScope,\n roleHierarchyResolver: OrganizationUnitRoleHierarchyResolver,\n): boolean {\n if (requiredRoles.length === 0) return false;\n const conferred = new Set<string>(heldRoles.flatMap((role) => roleHierarchyResolver(role, scope)));\n return requiredRoles.some((requiredRole) => conferred.has(requiredRole));\n}\n\n/**\n * Decide the narrowing posture for one request.\n *\n * `requiredRoles` is the operation's declared role set. An operation declaring NO roles is not\n * treated as \"anyone passes\" here — this function only ever ANSWERS the unit question, and returns\n * {@link OrganizationUnitNarrowingDecisionKind.NOT_NARROWED} so the caller's existing authorization\n * logic remains the authority for every non-unit consideration.\n *\n * Evaluation order encodes the additive rule:\n * 1. resource not opted in → NOT_NARROWED (nothing to say)\n * 2. organization-wide grant suffices → ORGANIZATION_WIDE (widest wins; no narrowing)\n * 3. unit grant suffices → UNIT_NARROWED, confined to the units that supplied it\n * 4. otherwise → DENIED\n *\n * Step 3 confines access to the units whose grant ACTUALLY satisfied the operation, not to every\n * unit the principal belongs to. A member who is ORG_MANAGER of Sales and ORG_GUEST of Legal, acting\n * on a MANAGER-gated operation, reaches Sales only — carrying Legal along would grant reach that no\n * held role justifies.\n */\nexport function resolveOrganizationUnitNarrowingDecision(input: {\n readonly resourceType: string;\n readonly requiredRoles: readonly string[];\n readonly initiatorRoles: readonly ExecutionContext_RoleInfo[] | undefined;\n /**\n * The organization the request acts inside. Only role entries held IN it are evaluated — an\n * ORG_ADMIN of another tenant must neither satisfy the organization-wide step nor lift narrowing\n * here (see `selectRoleInfosActingInOrganization`). Absent ⇒ no organization entry counts.\n */\n readonly organizationId: string | undefined;\n readonly narrowingRegistry: Readonly<Partial<Record<string, OrganizationUnitNarrowingDeclaration>>>;\n readonly roleHierarchyResolver: OrganizationUnitRoleHierarchyResolver;\n /**\n * Resources the application declared readable organization-wide by a UNIT-scoped service provider\n * (`serviceProviderOrganizationWideAccess`). Absent ⇒ none.\n */\n readonly serviceProviderOrganizationWideAccess?: Readonly<Partial<Record<string, ServiceProviderOrganizationWideAccessDeclaration>>>;\n /** Whether the operation only READS (`READ`/`LIST`/`SEARCH`/`COUNT`). The provider declaration admits nothing else. */\n readonly operationIsReadOnly?: boolean;\n}): OrganizationUnitNarrowingDecision {\n const { resourceType, requiredRoles, narrowingRegistry, roleHierarchyResolver } = input;\n const initiatorRoles = selectRoleInfosActingInOrganization(input.initiatorRoles, input.organizationId);\n\n const narrowing = resolveOrganizationUnitNarrowing(narrowingRegistry, resourceType);\n if (!narrowing) {\n return resolveServiceProviderOrganizationWideAdmission({\n resourceType,\n requiredRoles,\n initiatorRoles,\n roleHierarchyResolver,\n declarations: input.serviceProviderOrganizationWideAccess,\n operationIsReadOnly: input.operationIsReadOnly === true,\n });\n }\n\n // ADDITIVE: an organization-wide grant that already satisfies the operation wins outright, so\n // opting a resource in can never shrink what a principal could already see.\n const organizationWideRoles = (initiatorRoles ?? []).filter(isOrganizationWideRoleInfo);\n for (const roleInfo of organizationWideRoles) {\n if (satisfiesAnyRequiredRole(roleInfo.roles, requiredRoles, roleInfo.relatedPrimaryScope, roleHierarchyResolver)) {\n return { kind: OrganizationUnitNarrowingDecisionKind.ORGANIZATION_WIDE };\n }\n }\n\n // Only the units whose grant actually satisfies the operation confer reach.\n const qualifyingUnitIds = selectUnitScopedRoleGrants(initiatorRoles)\n .filter((grant) =>\n satisfiesAnyRequiredRole(grant.roles, requiredRoles, ResourcePrimaryScope.ORGANIZATIONS, roleHierarchyResolver))\n .map((grant) => grant.organizationUnitId);\n\n if (qualifyingUnitIds.length === 0) return { kind: OrganizationUnitNarrowingDecisionKind.DENIED };\n\n return {\n kind: OrganizationUnitNarrowingDecisionKind.UNIT_NARROWED,\n unitFieldName: narrowing.unitFieldName,\n // De-duplicated: several grants can name the same unit, and the value becomes a query predicate.\n organizationUnitIds: [...new Set(qualifyingUnitIds)],\n };\n}\n\n/**\n * An application's statement that a UNIT-scoped service-provider expert may READ a resource across the\n * whole client organization — a shared reference list, say — even though the resource does not narrow\n * by unit. The rationale is required: it is what a reviewer reads to judge whether the widening is right.\n */\nexport type ServiceProviderOrganizationWideAccessDeclaration = { readonly rationale: string };\n\n/**\n * The ENGINE's own organization-wide reads for a unit-only service-provider principal (#1597) — exactly one resource,\n * and it is the organization row itself.\n *\n * A principal who works in an organization must be able to read which organization that is: its name, type and status,\n * the row an ordinary member reads (its READ requires ORG_MEMBER, which the provider role inherits). Without it the organization switcher — one READ of the row per membership —\n * never lists a client whose relationship is confined to units, so unit scope is unusable through the shipped UI.\n * Reading the row grants nothing else: no other resource, and (by the admission below) no write.\n *\n * Engine-owned rather than an application declaration because the application MAY NOT declare it: ORGANIZATIONS is in\n * the authorization plane, which `collectServiceProviderOrganizationWideAccessViolations` refuses — rightly, since an\n * application widening it could expose a future authority field. The engine owns the row's shape, so the engine is the\n * party that can say its READ is safe. Widening this set is a framework decision, made here and nowhere else.\n */\nexport const ENGINE_SERVICE_PROVIDER_ORGANIZATION_WIDE_READS: ReadonlySet<string> = new Set<string>([CoreResourceType.ORGANIZATIONS]);\n\n/**\n * The non-narrowed half of the decision (#1597).\n *\n * A resource that does not narrow by unit has nothing to say about a principal who holds an\n * organization-wide entry: `NOT_NARROWED`, and ordinary authorization decides. What is new is the\n * UNIT-ONLY principal — one who holds unit entries in the target organization and NO organization-wide\n * entry there. Only a unit-scoped service-provider relationship produces one: an ordinary unit member\n * always also holds the organization-wide entry of the membership their unit role hangs from.\n *\n * Detected STRUCTURALLY (no org-wide entry), never by reading the relationship attribution on the role\n * entry — that field is audit-only by contract, and an authority decision reading it would make audit\n * metadata a control.\n *\n * Such a principal is admitted only when all hold, and otherwise gets `NOT_NARROWED`, which ordinary\n * authorization then refuses because no organization-wide entry satisfies anything (fail closed):\n * - the application declared the resource in `serviceProviderOrganizationWideAccess`, or the engine did\n * ({@link ENGINE_SERVICE_PROVIDER_ORGANIZATION_WIDE_READS} — the organization's own row);\n * - the operation only reads;\n * - one of the unit entries satisfies the operation's roles.\n */\nfunction resolveServiceProviderOrganizationWideAdmission(input: {\n readonly resourceType: string;\n readonly requiredRoles: readonly string[];\n readonly initiatorRoles: readonly ExecutionContext_RoleInfo[];\n readonly roleHierarchyResolver: OrganizationUnitRoleHierarchyResolver;\n readonly declarations: Readonly<Partial<Record<string, ServiceProviderOrganizationWideAccessDeclaration>>> | undefined;\n readonly operationIsReadOnly: boolean;\n}): OrganizationUnitNarrowingDecision {\n const notNarrowed = { kind: OrganizationUnitNarrowingDecisionKind.NOT_NARROWED } as const;\n if (!input.declarations?.[input.resourceType] && !ENGINE_SERVICE_PROVIDER_ORGANIZATION_WIDE_READS.has(input.resourceType)) return notNarrowed;\n if (!input.operationIsReadOnly) return notNarrowed;\n\n const organizationEntries = input.initiatorRoles.filter((roleInfo) => roleInfo.relatedPrimaryScope === ResourcePrimaryScope.ORGANIZATIONS);\n if (organizationEntries.some(isOrganizationWideRoleInfo)) return notNarrowed;\n\n const satisfied = selectUnitScopedRoleGrants(organizationEntries).some((grant) =>\n satisfiesAnyRequiredRole(grant.roles, input.requiredRoles, ResourcePrimaryScope.ORGANIZATIONS, input.roleHierarchyResolver));\n return satisfied ? { kind: OrganizationUnitNarrowingDecisionKind.SERVICE_PROVIDER_ORGANIZATION_WIDE } : notNarrowed;\n}\n\n/** Why a `serviceProviderOrganizationWideAccess` entry was refused at startup. */\nexport enum ServiceProviderOrganizationWideAccessViolationKind {\n /** The resource issues authority (the authorization plane) — a provider must never read it tenant-wide by declaration. */\n AUTHORIZATION_PLANE_RESOURCE = 'AUTHORIZATION_PLANE_RESOURCE',\n /** The resource already narrows by unit; declaring it organization-wide for providers would make one decision two. */\n RESOURCE_NARROWS_BY_UNIT = 'RESOURCE_NARROWS_BY_UNIT',\n /** No rationale — the declaration's whole review value is the sentence saying why. */\n MISSING_RATIONALE = 'MISSING_RATIONALE',\n}\n\n/**\n * Validate an application's `serviceProviderOrganizationWideAccess` against the MERGED narrowing map.\n * Fail closed at startup on any violation: a misdeclared widening is a silent authorization hole.\n */\nexport function collectServiceProviderOrganizationWideAccessViolations(\n declarations: Readonly<Partial<Record<string, ServiceProviderOrganizationWideAccessDeclaration>>> | undefined,\n narrowingRegistry: Readonly<Partial<Record<string, OrganizationUnitNarrowingDeclaration>>>,\n): { resourceType: string; kind: ServiceProviderOrganizationWideAccessViolationKind }[] {\n const forbidden = new Set<string>(ORGANIZATION_UNIT_NARROWING_FORBIDDEN_RESOURCES);\n const violations: { resourceType: string; kind: ServiceProviderOrganizationWideAccessViolationKind }[] = [];\n for (const [resourceType, declaration] of Object.entries(declarations ?? {})) {\n if (forbidden.has(resourceType)) {\n violations.push({ resourceType, kind: ServiceProviderOrganizationWideAccessViolationKind.AUTHORIZATION_PLANE_RESOURCE });\n }\n if (narrowingRegistry[resourceType]) {\n violations.push({ resourceType, kind: ServiceProviderOrganizationWideAccessViolationKind.RESOURCE_NARROWS_BY_UNIT });\n }\n if (typeof declaration?.rationale !== 'string' || declaration.rationale.trim().length === 0) {\n violations.push({ resourceType, kind: ServiceProviderOrganizationWideAccessViolationKind.MISSING_RATIONALE });\n }\n }\n return violations;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-unit-narrowing.example.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"organization-unit-narrowing.example.d.ts","sourceRoot":"","sources":["../../../src/organizations/organization-unit-narrowing.example.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,sCAAsC,CAAC;AAEjG;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAG3G,CAAC;AACF,8EAA8E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-unit-narrowing.example.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"organization-unit-narrowing.example.js","sourceRoot":"","sources":["../../../src/organizations/organization-unit-narrowing.example.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAmE;IAC9G,QAAQ,EAAE,EAAE,aAAa,EAAE,oBAAoB,EAAE;IACjD,cAAc,EAAE,EAAE,aAAa,EAAE,cAAc,EAAE;CAClD,CAAC;AACF,8EAA8E","sourcesContent":["/**\n * Illustrative declaration of organization-unit narrowing, for the app-facing skill.\n *\n * TIER B (framework-owned illustrative sample): there is no real usage to anchor against — the engine\n * opts NO resource in, deliberately, and an application's own resource types live outside this\n * repository. Anchoring a minimal sample beside the contract keeps the skill's worked example\n * type-checked and in step with the type, rather than drifting as prose in markdown.\n */\n\nimport type { OrganizationUnitNarrowingDeclaration } from './organization-unit-narrowing.shared';\n\n/**\n * @wildo_source:part:start example.authorization.unit-narrowing.declaration facet:kind:usage-example facet:audience:app-developer\n *\n * Declaring two of an application's own resources unit-narrowable. This map is passed to application\n * startup as `organizationUnitNarrowing`.\n *\n * Each value names the field on THAT resource holding the owning organization unit's id. The field\n * must exist on the resource's schema: it becomes a query predicate on every read and a check on\n * every write, so a misspelled name is an access-control defect rather than a typo.\n *\n * Effect: a member whose only qualifying role is inside a unit is admitted for these resources and\n * confined to that unit's rows (plus its descendants, where the unit inherits downward). A member\n * whose organization-wide role already satisfies the operation is not narrowed at all — so declaring\n * this can widen who can reach a resource, never shrink what someone could already see.\n */\nexport const exampleOrganizationUnitNarrowing: Readonly<Record<string, OrganizationUnitNarrowingDeclaration>> = {\n projects: { unitFieldName: 'organizationUnitId' },\n supportTickets: { unitFieldName: 'owningUnitId' },\n};\n/** @wildo_source:part:end example.authorization.unit-narrowing.declaration */\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organization-unit-narrowing.shared.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"organization-unit-narrowing.shared.d.ts","sourceRoot":"","sources":["../../../src/organizations/organization-unit-narrowing.shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,oCAAoC,GAAG;IACjD,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AACF,iFAAiF;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,eAAO,MAAM,+CAA+C,EAAE,SAAS,gBAAgB,EAwBtF,CAAC;AACF,iFAAiF;AAEjF;;;;;;;GAOG;AACH,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,oCAAoC,CAAC,CAAC,CAAM,CAAC;AAExI;;;;;;;;;;;;GAYG;AACH,wBAAgB,0CAA0C,CACxD,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC,CAAC,EACxF,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC,CAAC,GAAG,SAAS,GACxG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC,CAAC,CAEzE;AAED,2FAA2F;AAC3F,MAAM,MAAM,kCAAkC,GAAG;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EACX,wDAAwD,GACxD,yBAAyB;IAC3B;;;;;;;;OAQG;OACD,gCAAgC,CAAC;CACtC,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,oCAAoC,CAClD,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC,CAAC,EACjF,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC,CAAC,GAC/E;IACD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC,CAAC,CAAC;IACzF,QAAQ,CAAC,UAAU,EAAE,kCAAkC,EAAE,CAAC;CAC3D,CAcA;AAED;;;;;;GAMG;AACH,wBAAgB,0CAA0C,CACxD,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC,CAAC,GACzF,kCAAkC,EAAE,CAgBtC;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,oCAAoC,CAAC,CAAC,CAAC,EAC1F,YAAY,EAAE,MAAM,GACnB,oCAAoC,GAAG,SAAS,CAKlD"}
|
|
@@ -72,6 +72,15 @@ export const ORGANIZATION_UNIT_NARROWING_FORBIDDEN_RESOURCES = [
|
|
|
72
72
|
// hazard the sibling entries above record: the grant confines them to a subtree, the object they
|
|
73
73
|
// reach does not live in one.
|
|
74
74
|
CoreResourceType.ORG_PROVIDER_CREDENTIALS,
|
|
75
|
+
// Service-provider relationships (#1597) ISSUE authority: accepting one, amending its scope or assigning
|
|
76
|
+
// an expert to it hands a person outside the organization a membership inside it. A unit administrator
|
|
77
|
+
// must never reach the verbs that do that, for the same issues-authority reason as the entries above.
|
|
78
|
+
CoreResourceType.SERVICE_PROVIDER_RELATIONSHIPS,
|
|
79
|
+
CoreResourceType.SERVICE_ENGAGEMENTS,
|
|
80
|
+
CoreResourceType.SERVICE_ENGAGEMENT_ASSIGNMENTS,
|
|
81
|
+
// A capability grant (#1631) issues ADMINISTRATIVE authority to people outside the organization — the most direct
|
|
82
|
+
// form of the issues-authority hazard above.
|
|
83
|
+
CoreResourceType.SERVICE_PROVIDER_CAPABILITY_GRANTS,
|
|
75
84
|
];
|
|
76
85
|
/** @wildo_source:part:end saas.models.organization-unit-narrowing-containment */
|
|
77
86
|
/**
|