@flowdular/sdk 0.2.4 → 0.3.1
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/.ai/agents/sandbox/business-manager.md +5 -1
- package/.ai/blueprints/author-spec/README.md +1 -1
- package/.ai/blueprints/author-spec/spec-requirements.yaml +44 -0
- package/.ai/blueprints/author-spec/steps.yaml +5 -5
- package/.ai/blueprints/author-spec/templates/module.yaml +99 -3
- package/.ai/blueprints/edit-module/gates.yaml +4 -0
- package/.ai/blueprints/edit-module/required-files.yaml +9 -0
- package/.ai/blueprints/new-module/gates.yaml +4 -0
- package/.ai/blueprints/new-module/spec-requirements.yaml +2 -2
- package/.ai/blueprints/release/gates.yaml +4 -0
- package/.ai/platform-capabilities.md +128 -0
- package/.ai/policies/capabilities.yaml +130 -3
- package/.ai/policies/path-ownership.yaml +5 -2
- package/.ai/policies/task-budgets.yaml +5 -3
- package/.ai/references/catalog/module.json +4 -4
- package/.ai/references/catalog/package.json +2 -2
- package/.ai/references/catalog/spec/module.yaml +5 -3
- package/.ai/references/catalog/src/platform.ts +2 -0
- package/.ai/references/catalog/src/services/catalog-service.ts +89 -1
- package/.ai/references/catalog/src/services/data-classes.ts +47 -0
- package/.ai/references/catalog/src/services/database-repository.ts +98 -1
- package/.ai/references/catalog/src/services/repository.ts +22 -1
- package/.ai/references/catalog/tests/data-classes.test.ts +157 -0
- package/.ai/references/catalog.provenance.json +12 -10
- package/.ai/skills/README.md +10 -0
- package/.ai/skills/agent-tool-design/SKILL.md +1 -2
- package/.ai/skills/auth-security-review/SKILL.md +1 -1
- package/.ai/skills/business-agent-design/SKILL.md +0 -1
- package/.ai/skills/cli-extension/SKILL.md +1 -1
- package/.ai/skills/deploy-operate/SKILL.md +119 -0
- package/.ai/skills/module-new/SKILL.md +29 -3
- package/.ai/skills/module-update/SKILL.md +9 -3
- package/.ai/skills/perf-audit/SKILL.md +0 -1
- package/.ai/skills/release-eject-pr/SKILL.md +0 -1
- package/.ai/skills/spec-interview/SKILL.md +120 -0
- package/.ai/skills/test-hardening/SKILL.md +1 -0
- package/.ai/skills/ux-design/SKILL.md +34 -3
- package/.ai/skills/variables/SKILL.md +0 -2
- package/.ai/skills/workflow-development/SKILL.md +0 -1
- package/AGENTS.md +4 -0
- package/docs/agent-contract.md +2 -2
- package/docs/design-system.md +185 -31
- package/modules/access/migrations/0001_access_core.down.sql +1 -0
- package/modules/access/migrations/0001_access_core.up.sql +28 -0
- package/modules/access/migrations/README.md +3 -0
- package/modules/access/module.json +33 -0
- package/modules/access/package.json +43 -0
- package/modules/access/spec/module.yaml +225 -0
- package/modules/access/src/acl/permissions.ts +6 -0
- package/modules/access/src/api/endpoints.ts +244 -0
- package/modules/access/src/client/ActivityView.tsrx +245 -0
- package/modules/access/src/client/AttestationsView.tsrx +176 -0
- package/modules/access/src/client/ReviewView.tsrx +586 -0
- package/modules/access/src/client/api.ts +132 -0
- package/modules/access/src/client/contribution.tsrx +41 -0
- package/modules/access/src/client/index.ts +41 -0
- package/modules/access/src/client/navigation.ts +57 -0
- package/modules/access/src/client/presentation.ts +69 -0
- package/modules/access/src/client/state.ts +72 -0
- package/modules/access/src/domain/types.ts +189 -0
- package/modules/access/src/index.ts +38 -0
- package/modules/access/src/platform.ts +60 -0
- package/modules/access/src/server/index.ts +42 -0
- package/modules/access/src/server/runtime.ts +105 -0
- package/modules/access/src/services/access-service.ts +298 -0
- package/modules/access/src/services/audit-window.ts +78 -0
- package/modules/access/src/services/auth-directory.ts +72 -0
- package/modules/access/src/services/changes.ts +91 -0
- package/modules/access/src/services/data-classes.ts +28 -0
- package/modules/access/src/services/database-repository.ts +185 -0
- package/modules/access/src/services/directory.ts +102 -0
- package/modules/access/src/services/index.ts +33 -0
- package/modules/access/src/services/list-exports.ts +150 -0
- package/modules/access/src/services/migration.ts +54 -0
- package/modules/access/src/services/repository.ts +30 -0
- package/modules/access/src/services/review.ts +178 -0
- package/modules/access/translations/en.json +155 -0
- package/modules/access/translations/pl.json +155 -0
- package/modules/agents/migrations/0022_credential_rotation_inventory.down.sql +2 -0
- package/modules/agents/migrations/0022_credential_rotation_inventory.up.sql +7 -0
- package/modules/agents/migrations/0023_agents_retention_indexes.down.sql +2 -0
- package/modules/agents/migrations/0023_agents_retention_indexes.up.sql +9 -0
- package/modules/agents/migrations/0024_agent_meter_refusals.down.sql +3 -0
- package/modules/agents/migrations/0024_agent_meter_refusals.up.sql +22 -0
- package/modules/agents/migrations/0025_agent_list_indexes.down.sql +3 -0
- package/modules/agents/migrations/0025_agent_list_indexes.up.sql +11 -0
- package/modules/agents/module.json +30 -4
- package/modules/agents/package.json +2 -1
- package/modules/agents/spec/module.yaml +63 -5
- package/modules/agents/src/api/endpoints.ts +291 -33
- package/modules/agents/src/cli/commands.json +11 -0
- package/modules/agents/src/cli/index.ts +45 -0
- package/modules/agents/src/client/AgentDashboardWidget.tsrx +19 -11
- package/modules/agents/src/client/AgentDefinitionList.tsrx +53 -10
- package/modules/agents/src/client/AgentPlaygroundView.tsrx +4 -4
- package/modules/agents/src/client/AgentProceduresView.tsrx +2 -2
- package/modules/agents/src/client/AgentRunsView.tsrx +143 -40
- package/modules/agents/src/client/AgentsView.tsrx +109 -33
- package/modules/agents/src/client/api.ts +99 -21
- package/modules/agents/src/client/state.ts +97 -0
- package/modules/agents/src/domain/types.ts +44 -4
- package/modules/agents/src/platform.ts +42 -0
- package/modules/agents/src/server/action-execution.ts +201 -106
- package/modules/agents/src/server/runtime.ts +32 -0
- package/modules/agents/src/services/agent-service.ts +158 -30
- package/modules/agents/src/services/credential-rotation.ts +185 -0
- package/modules/agents/src/services/credential-vault.ts +71 -46
- package/modules/agents/src/services/data-classes.ts +176 -0
- package/modules/agents/src/services/database-repository.ts +393 -101
- package/modules/agents/src/services/metering.ts +111 -0
- package/modules/agents/src/services/migration.ts +109 -0
- package/modules/agents/src/services/module-agent-preflight.ts +17 -9
- package/modules/agents/src/services/notifications.ts +98 -0
- package/modules/agents/src/services/provider-repository.ts +9 -18
- package/modules/agents/src/services/provider-service.ts +1 -9
- package/modules/agents/src/services/reports.ts +107 -0
- package/modules/agents/src/services/repository.ts +86 -6
- package/modules/agents/src/services/usage-service.ts +2 -0
- package/modules/agents/src/services/worker.ts +114 -4
- package/modules/agents/src/settings.ts +14 -3
- package/modules/agents/translations/en.json +14 -4
- package/modules/agents/translations/pl.json +14 -4
- package/modules/approvals/migrations/0001_approvals_core.down.sql +3 -0
- package/modules/approvals/migrations/0001_approvals_core.up.sql +78 -0
- package/modules/approvals/migrations/0002_approvals_expiry_routing_role.down.sql +2 -0
- package/modules/approvals/migrations/0002_approvals_expiry_routing_role.up.sql +19 -0
- package/modules/approvals/migrations/0003_approvals_retention_indexes.down.sql +6 -0
- package/modules/approvals/migrations/0003_approvals_retention_indexes.up.sql +14 -0
- package/modules/approvals/migrations/0004_approvals_inbox_keyset_indexes.down.sql +5 -0
- package/modules/approvals/migrations/0004_approvals_inbox_keyset_indexes.up.sql +12 -0
- package/modules/approvals/migrations/0005_approvals_grant_audit.down.sql +4 -0
- package/modules/approvals/migrations/0005_approvals_grant_audit.up.sql +20 -0
- package/modules/approvals/migrations/README.md +3 -0
- package/modules/approvals/module.json +34 -0
- package/modules/approvals/package.json +43 -0
- package/modules/approvals/spec/module.yaml +327 -0
- package/modules/approvals/src/acl/permissions.ts +7 -0
- package/modules/approvals/src/api/endpoints.ts +457 -0
- package/modules/approvals/src/client/ApprovalRequestDrawer.tsrx +138 -0
- package/modules/approvals/src/client/ApprovalsView.tsrx +562 -0
- package/modules/approvals/src/client/PendingCountWidget.tsrx +52 -0
- package/modules/approvals/src/client/api.ts +203 -0
- package/modules/approvals/src/client/approvals.css +51 -0
- package/modules/approvals/src/client/contribution.tsrx +44 -0
- package/modules/approvals/src/client/index.ts +26 -0
- package/modules/approvals/src/client/navigation.ts +39 -0
- package/modules/approvals/src/client/pending-count.ts +26 -0
- package/modules/approvals/src/client/presentation.ts +52 -0
- package/modules/approvals/src/client/state.ts +141 -0
- package/modules/approvals/src/domain/capability.ts +107 -0
- package/modules/approvals/src/domain/grant.ts +69 -0
- package/modules/approvals/src/domain/types.ts +168 -0
- package/modules/approvals/src/index.ts +61 -0
- package/modules/approvals/src/platform.ts +136 -0
- package/modules/approvals/src/server/index.ts +42 -0
- package/modules/approvals/src/server/runtime.ts +185 -0
- package/modules/approvals/src/services/approvals-service.ts +637 -0
- package/modules/approvals/src/services/callbacks.ts +75 -0
- package/modules/approvals/src/services/data-classes.ts +167 -0
- package/modules/approvals/src/services/database-repository.ts +783 -0
- package/modules/approvals/src/services/eligibility.ts +121 -0
- package/modules/approvals/src/services/expiry-runner.ts +81 -0
- package/modules/approvals/src/services/index.ts +31 -0
- package/modules/approvals/src/services/migration.ts +256 -0
- package/modules/approvals/src/services/notifications.ts +95 -0
- package/modules/approvals/src/services/repository.ts +169 -0
- package/modules/approvals/src/services/service-error.ts +70 -0
- package/modules/approvals/src/settings.ts +102 -0
- package/modules/approvals/translations/en.json +104 -0
- package/modules/approvals/translations/pl.json +104 -0
- package/modules/audit/migrations/0001_audit_core.down.sql +8 -0
- package/modules/audit/migrations/0001_audit_core.up.sql +107 -0
- package/modules/audit/migrations/0002_audit_sweep_routing_role.down.sql +2 -0
- package/modules/audit/migrations/0002_audit_sweep_routing_role.up.sql +21 -0
- package/modules/audit/migrations/0003_audit_export_request.down.sql +12 -0
- package/modules/audit/migrations/0003_audit_export_request.up.sql +40 -0
- package/modules/audit/migrations/0004_audit_hold_seal_erasure.down.sql +17 -0
- package/modules/audit/migrations/0004_audit_hold_seal_erasure.up.sql +192 -0
- package/modules/audit/migrations/0005_audit_event_format.down.sql +17 -0
- package/modules/audit/migrations/0005_audit_event_format.up.sql +60 -0
- package/modules/audit/migrations/0006_audit_own_class_walks.down.sql +3 -0
- package/modules/audit/migrations/0006_audit_own_class_walks.up.sql +14 -0
- package/modules/audit/migrations/README.md +3 -0
- package/modules/audit/module.json +32 -0
- package/modules/audit/package.json +49 -0
- package/modules/audit/spec/module.yaml +809 -0
- package/modules/audit/src/acl/permissions.ts +7 -0
- package/modules/audit/src/api/endpoints.ts +315 -0
- package/modules/audit/src/cli/commands.json +95 -0
- package/modules/audit/src/cli/index.ts +658 -0
- package/modules/audit/src/client/DataClassesView.tsrx +420 -0
- package/modules/audit/src/client/ExportsView.tsrx +256 -0
- package/modules/audit/src/client/HoldsView.tsrx +604 -0
- package/modules/audit/src/client/SweepsView.tsrx +251 -0
- package/modules/audit/src/client/api.ts +185 -0
- package/modules/audit/src/client/contribution.tsrx +52 -0
- package/modules/audit/src/client/index.ts +23 -0
- package/modules/audit/src/client/navigation.ts +74 -0
- package/modules/audit/src/client/presentation.ts +105 -0
- package/modules/audit/src/client/state.ts +86 -0
- package/modules/audit/src/domain/data-classes.ts +16 -0
- package/modules/audit/src/domain/types.ts +339 -0
- package/modules/audit/src/index.ts +76 -0
- package/modules/audit/src/platform.ts +44 -0
- package/modules/audit/src/server/index.ts +177 -0
- package/modules/audit/src/server/runtime.ts +303 -0
- package/modules/audit/src/services/anchor-key.ts +143 -0
- package/modules/audit/src/services/anchor-rotation.ts +147 -0
- package/modules/audit/src/services/audit-runners.ts +278 -0
- package/modules/audit/src/services/backup-guard.ts +95 -0
- package/modules/audit/src/services/database-repository.ts +1946 -0
- package/modules/audit/src/services/declared-classes.ts +64 -0
- package/modules/audit/src/services/erasure-port.ts +126 -0
- package/modules/audit/src/services/erasure-service.ts +770 -0
- package/modules/audit/src/services/export-directory.ts +106 -0
- package/modules/audit/src/services/export-service.ts +714 -0
- package/modules/audit/src/services/hold-service.ts +295 -0
- package/modules/audit/src/services/index.ts +17 -0
- package/modules/audit/src/services/migration.ts +658 -0
- package/modules/audit/src/services/own-classes.ts +318 -0
- package/modules/audit/src/services/platform-version.ts +23 -0
- package/modules/audit/src/services/repository.ts +495 -0
- package/modules/audit/src/services/retention-service.ts +191 -0
- package/modules/audit/src/services/seal-service.ts +769 -0
- package/modules/audit/src/services/service-error.ts +61 -0
- package/modules/audit/src/services/subject-keys.ts +90 -0
- package/modules/audit/src/services/sweep-service.ts +298 -0
- package/modules/audit/src/services/zip.ts +217 -0
- package/modules/audit/src/settings.ts +69 -0
- package/modules/audit/translations/en.json +210 -0
- package/modules/audit/translations/pl.json +210 -0
- package/modules/auth/README.md +77 -29
- package/modules/auth/migrations/0016_external_identities.up.sql +16 -0
- package/modules/auth/migrations/0017_mfa_key_id.up.sql +8 -0
- package/modules/auth/migrations/0018_retire_bundled_module_scopes.up.sql +29 -0
- package/modules/auth/migrations/0019_notifications_member_scopes.up.sql +44 -0
- package/modules/auth/migrations/0020_identity_providers.up.sql +61 -0
- package/modules/auth/migrations/0021_membership_status.up.sql +19 -0
- package/modules/auth/migrations/0022_auth_provider_scopes.up.sql +45 -0
- package/modules/auth/migrations/0023_enterprise_module_scopes.down.sql +19 -0
- package/modules/auth/migrations/0023_enterprise_module_scopes.up.sql +71 -0
- package/modules/auth/migrations/0024_approvals_member_scopes.down.sql +22 -0
- package/modules/auth/migrations/0024_approvals_member_scopes.up.sql +48 -0
- package/modules/auth/migrations/0025_audit_holds_owner_scope.down.sql +21 -0
- package/modules/auth/migrations/0025_audit_holds_owner_scope.up.sql +47 -0
- package/modules/auth/migrations/0026_auth_export_keyset_indexes.down.sql +6 -0
- package/modules/auth/migrations/0026_auth_export_keyset_indexes.up.sql +15 -0
- package/modules/auth/migrations/0027_workflow_automation_profile_scopes.down.sql +34 -0
- package/modules/auth/migrations/0027_workflow_automation_profile_scopes.up.sql +72 -0
- package/modules/auth/migrations/0028_auth_member_search_prefix_indexes.down.sql +6 -0
- package/modules/auth/migrations/0028_auth_member_search_prefix_indexes.up.sql +21 -0
- package/modules/auth/migrations/0029_reports_exports_access_scopes.down.sql +22 -0
- package/modules/auth/migrations/0029_reports_exports_access_scopes.up.sql +56 -0
- package/modules/auth/migrations/0030_auth_membership_keyset_index.down.sql +4 -0
- package/modules/auth/migrations/0030_auth_membership_keyset_index.up.sql +10 -0
- package/modules/auth/migrations/0031_membership_scope_backfills_under_rls.down.sql +4 -0
- package/modules/auth/migrations/0031_membership_scope_backfills_under_rls.up.sql +31 -0
- package/modules/auth/migrations/0032_audit_actor_service.down.sql +9 -0
- package/modules/auth/migrations/0032_audit_actor_service.up.sql +10 -0
- package/modules/auth/migrations/0033_auth_account_keyset_indexes.down.sql +5 -0
- package/modules/auth/migrations/0033_auth_account_keyset_indexes.up.sql +23 -0
- package/modules/auth/module.json +3 -3
- package/modules/auth/package.json +2 -1
- package/modules/auth/spec/module.yaml +372 -3
- package/modules/auth/src/acl/scopes.ts +50 -6
- package/modules/auth/src/cli/commands.json +11 -0
- package/modules/auth/src/cli/greenfield.ts +2 -2
- package/modules/auth/src/cli/index.ts +14 -0
- package/modules/auth/src/cli/secrets.ts +114 -0
- package/modules/auth/src/client/AuthenticationCore.tsrx +61 -8
- package/modules/auth/src/client/api.ts +72 -6
- package/modules/auth/src/client/contribution.tsrx +23 -0
- package/modules/auth/src/client/index.ts +6 -0
- package/modules/auth/src/client/providers/IdentityProviderForm.tsrx +191 -0
- package/modules/auth/src/client/providers/IdentityProvidersView.tsrx +358 -0
- package/modules/auth/src/client/providers/api.ts +128 -0
- package/modules/auth/src/client/providers/provider-columns.tsrx +60 -0
- package/modules/auth/src/client/providers/state.ts +35 -0
- package/modules/auth/src/client/security/SecurityView.tsrx +9 -1
- package/modules/auth/src/client/state.ts +15 -1
- package/modules/auth/src/domain/types.ts +55 -0
- package/modules/auth/src/index.ts +11 -1
- package/modules/auth/src/middleware/authentication.ts +4 -0
- package/modules/auth/src/server/endpoints.ts +467 -171
- package/modules/auth/src/server/http.ts +3 -2
- package/modules/auth/src/server/index.ts +22 -1
- package/modules/auth/src/server/membership-endpoints.ts +62 -0
- package/modules/auth/src/server/mfa-enforcement.ts +156 -0
- package/modules/auth/src/server/oidc.ts +389 -0
- package/modules/auth/src/server/provider-endpoints.ts +246 -0
- package/modules/auth/src/server/provider-host.ts +77 -0
- package/modules/auth/src/server/runtime.ts +231 -55
- package/modules/auth/src/services/auth-service-error.ts +7 -2
- package/modules/auth/src/services/auth-service.ts +948 -51
- package/modules/auth/src/services/data-classes.ts +236 -0
- package/modules/auth/src/services/database-repository.ts +853 -71
- package/modules/auth/src/services/identity-provider-service.ts +571 -0
- package/modules/auth/src/services/mail-delivery.ts +16 -16
- package/modules/auth/src/services/mail-message.ts +54 -0
- package/modules/auth/src/services/mail-port.ts +24 -0
- package/modules/auth/src/services/mail-smtp.ts +85 -0
- package/modules/auth/src/services/mfa-rotation.ts +144 -0
- package/modules/auth/src/services/migration.ts +810 -0
- package/modules/auth/src/services/password.ts +14 -0
- package/modules/auth/src/services/provider-secret-rotation.ts +169 -0
- package/modules/auth/src/services/provider-secrets.ts +136 -0
- package/modules/auth/src/services/repository.ts +321 -5
- package/modules/auth/src/services/session-sweep-runner.ts +73 -0
- package/modules/auth/src/services/settings-store.ts +10 -83
- package/modules/auth/src/services/totp.ts +88 -62
- package/modules/auth/src/services/validation.ts +194 -7
- package/modules/auth/src/settings.ts +18 -0
- package/modules/auth/translations/en.json +84 -1
- package/modules/auth/translations/pl.json +84 -1
- package/modules/automations/migrations/0005_secret_rotation_inventory.down.sql +1 -0
- package/modules/automations/migrations/0005_secret_rotation_inventory.up.sql +6 -0
- package/modules/automations/migrations/0006_automations_list_sort_indexes.down.sql +4 -0
- package/modules/automations/migrations/0006_automations_list_sort_indexes.up.sql +11 -0
- package/modules/automations/module.json +24 -6
- package/modules/automations/package.json +4 -1
- package/modules/automations/spec/module.yaml +81 -7
- package/modules/automations/src/api/endpoints.ts +202 -28
- package/modules/automations/src/cli/commands.json +17 -0
- package/modules/automations/src/cli/index.ts +114 -0
- package/modules/automations/src/client/AutomationScheduleForm.tsrx +77 -19
- package/modules/automations/src/client/AutomationSchedulesView.tsrx +144 -40
- package/modules/automations/src/client/AutomationTriggersView.tsrx +131 -32
- package/modules/automations/src/client/api.ts +62 -19
- package/modules/automations/src/client/presentation.ts +20 -2
- package/modules/automations/src/client/state.ts +84 -0
- package/modules/automations/src/domain/cadence.ts +99 -3
- package/modules/automations/src/domain/cron.ts +366 -0
- package/modules/automations/src/domain/time-zone.ts +61 -0
- package/modules/automations/src/platform.ts +38 -4
- package/modules/automations/src/server/index.ts +11 -0
- package/modules/automations/src/server/runtime.ts +46 -22
- package/modules/{automations-workflows-integration/src/server/adapter.ts → automations/src/server/workflow-target.ts} +13 -14
- package/modules/{automations-workflows-integration/src/server/tools.ts → automations/src/server/workflow-tools.ts} +0 -0
- package/modules/automations/src/services/data-classes.ts +62 -0
- package/modules/automations/src/services/database-repository.ts +152 -38
- package/modules/automations/src/services/migration.ts +119 -9
- package/modules/automations/src/services/repository.ts +52 -1
- package/modules/automations/src/services/schedule-runner.ts +84 -0
- package/modules/automations/src/services/schedule-service.ts +152 -26
- package/modules/automations/src/services/secret-rotation.ts +176 -0
- package/modules/automations/src/services/secret-vault.ts +68 -41
- package/modules/automations/src/services/trigger-service.ts +13 -10
- package/modules/automations/translations/en.json +15 -2
- package/modules/automations/translations/pl.json +15 -2
- package/modules/connectors/migrations/0001_connectors_core.down.sql +3 -0
- package/modules/connectors/migrations/0001_connectors_core.up.sql +72 -0
- package/modules/connectors/migrations/0002_connectors_call_keys.down.sql +3 -0
- package/modules/connectors/migrations/0002_connectors_call_keys.up.sql +18 -0
- package/modules/connectors/migrations/0003_connectors_rotation_inventory.down.sql +2 -0
- package/modules/connectors/migrations/0003_connectors_rotation_inventory.up.sql +19 -0
- package/modules/connectors/migrations/README.md +3 -0
- package/modules/connectors/module.json +32 -0
- package/modules/{automations-workflows-integration → connectors}/package.json +28 -26
- package/modules/connectors/spec/module.yaml +448 -0
- package/modules/connectors/src/acl/permissions.ts +6 -0
- package/modules/connectors/src/agent/tools.ts +180 -0
- package/modules/connectors/src/api/endpoints.ts +572 -0
- package/modules/connectors/src/cli/commands.json +17 -0
- package/modules/connectors/src/cli/index.ts +126 -0
- package/modules/connectors/src/client/ConnectorCallsView.tsrx +358 -0
- package/modules/connectors/src/client/ConnectorForm.tsrx +424 -0
- package/modules/connectors/src/client/ConnectorsView.tsrx +711 -0
- package/modules/connectors/src/client/api.ts +281 -0
- package/modules/connectors/src/client/consent.ts +48 -0
- package/modules/connectors/src/client/contribution.tsrx +37 -0
- package/modules/connectors/src/client/index.ts +22 -0
- package/modules/connectors/src/client/navigation.ts +42 -0
- package/modules/connectors/src/client/presentation.ts +38 -0
- package/modules/connectors/src/client/state.ts +175 -0
- package/modules/connectors/src/domain/calls.ts +70 -0
- package/modules/connectors/src/domain/definitions.ts +190 -0
- package/modules/connectors/src/domain/http-json.ts +68 -0
- package/modules/connectors/src/domain/types.ts +185 -0
- package/modules/connectors/src/index.ts +64 -0
- package/modules/connectors/src/platform.ts +56 -0
- package/modules/connectors/src/server/index.ts +66 -0
- package/modules/connectors/src/server/runtime.ts +163 -0
- package/modules/connectors/src/services/call-service.ts +903 -0
- package/modules/connectors/src/services/connectors-service.ts +653 -0
- package/modules/connectors/src/services/credential-rotation.ts +221 -0
- package/modules/connectors/src/services/credential-vault.ts +194 -0
- package/modules/connectors/src/services/data-classes.ts +158 -0
- package/modules/connectors/src/services/database-repository.ts +897 -0
- package/modules/connectors/src/services/egress.ts +261 -0
- package/modules/connectors/src/services/index.ts +19 -0
- package/modules/connectors/src/services/migration.ts +202 -0
- package/modules/connectors/src/services/repository.ts +175 -0
- package/modules/connectors/src/services/service-error.ts +46 -0
- package/modules/connectors/src/settings.ts +69 -0
- package/modules/connectors/translations/en.json +191 -0
- package/modules/connectors/translations/pl.json +191 -0
- package/modules/directory/migrations/0001_directory_core.down.sql +5 -0
- package/modules/directory/migrations/0001_directory_core.up.sql +111 -0
- package/modules/directory/migrations/README.md +3 -0
- package/modules/directory/module.json +27 -0
- package/modules/directory/package.json +46 -0
- package/modules/directory/spec/module.yaml +351 -0
- package/modules/directory/src/acl/permissions.ts +7 -0
- package/modules/directory/src/api/endpoints.ts +478 -0
- package/modules/directory/src/api/scim-endpoints.ts +516 -0
- package/modules/directory/src/client/GroupMappingsView.tsrx +430 -0
- package/modules/directory/src/client/ProvisioningLogView.tsrx +248 -0
- package/modules/directory/src/client/ScimTokensView.tsrx +587 -0
- package/modules/directory/src/client/api.ts +222 -0
- package/modules/directory/src/client/contribution.tsrx +46 -0
- package/modules/directory/src/client/index.ts +22 -0
- package/modules/directory/src/client/navigation.ts +57 -0
- package/modules/directory/src/client/presentation.ts +143 -0
- package/modules/directory/src/client/state.ts +173 -0
- package/modules/directory/src/domain/scim.ts +346 -0
- package/modules/directory/src/domain/types.ts +166 -0
- package/modules/directory/src/index.ts +44 -0
- package/modules/directory/src/platform.ts +43 -0
- package/modules/directory/src/server/index.ts +17 -0
- package/modules/directory/src/server/runtime.ts +124 -0
- package/modules/directory/src/services/auth-port.ts +127 -0
- package/modules/directory/src/services/data-classes.ts +41 -0
- package/modules/directory/src/services/database-repository.ts +1067 -0
- package/modules/directory/src/services/directory-service.ts +311 -0
- package/modules/directory/src/services/index.ts +43 -0
- package/modules/directory/src/services/migration.ts +146 -0
- package/modules/directory/src/services/provisioning-service.ts +1420 -0
- package/modules/directory/src/services/rate-limiter.ts +103 -0
- package/modules/directory/src/services/repository.ts +208 -0
- package/modules/directory/src/services/service-error.ts +42 -0
- package/modules/directory/src/services/token-service.ts +215 -0
- package/modules/directory/src/settings.ts +86 -0
- package/modules/directory/translations/en.json +185 -0
- package/modules/directory/translations/pl.json +185 -0
- package/modules/documents/migrations/0001_documents_core.down.sql +1 -0
- package/modules/documents/migrations/0001_documents_core.up.sql +35 -0
- package/modules/documents/migrations/0002_documents_files_page.down.sql +1 -0
- package/modules/documents/migrations/0002_documents_files_page.up.sql +6 -0
- package/modules/documents/migrations/0003_documents_rotation_inventory.down.sql +2 -0
- package/modules/documents/migrations/0003_documents_rotation_inventory.up.sql +18 -0
- package/modules/documents/migrations/README.md +3 -0
- package/modules/documents/module.json +32 -0
- package/modules/documents/package.json +50 -0
- package/modules/documents/spec/module.yaml +248 -0
- package/modules/documents/src/acl/permissions.ts +6 -0
- package/modules/documents/src/api/endpoints.ts +401 -0
- package/modules/documents/src/cli/commands.json +17 -0
- package/modules/documents/src/cli/index.ts +145 -0
- package/modules/documents/src/client/DocumentUploader.tsrx +148 -0
- package/modules/documents/src/client/DocumentsView.tsrx +540 -0
- package/modules/documents/src/client/api.ts +209 -0
- package/modules/documents/src/client/contribution.tsrx +29 -0
- package/modules/documents/src/client/download.ts +70 -0
- package/modules/documents/src/client/index.ts +22 -0
- package/modules/documents/src/client/navigation.ts +25 -0
- package/modules/documents/src/client/presentation.ts +110 -0
- package/modules/documents/src/client/state.ts +117 -0
- package/modules/documents/src/domain/attachments.ts +84 -0
- package/modules/documents/src/domain/types.ts +80 -0
- package/modules/documents/src/index.ts +46 -0
- package/modules/documents/src/platform.ts +61 -0
- package/modules/documents/src/server/index.ts +30 -0
- package/modules/documents/src/server/runtime.ts +107 -0
- package/modules/documents/src/services/attachments.ts +39 -0
- package/modules/documents/src/services/data-classes.ts +25 -0
- package/modules/documents/src/services/database-repository.ts +270 -0
- package/modules/documents/src/services/documents-service.ts +590 -0
- package/modules/documents/src/services/index.ts +18 -0
- package/modules/documents/src/services/migration.ts +117 -0
- package/modules/documents/src/services/repository.ts +58 -0
- package/modules/documents/src/services/storage-rotation.ts +157 -0
- package/modules/documents/src/settings.ts +107 -0
- package/modules/documents/translations/en.json +111 -0
- package/modules/documents/translations/pl.json +111 -0
- package/modules/exports/migrations/0001_exports_core.down.sql +2 -0
- package/modules/exports/migrations/0001_exports_core.up.sql +28 -0
- package/modules/exports/migrations/0002_exports_job_routing_role.down.sql +4 -0
- package/modules/exports/migrations/0002_exports_job_routing_role.up.sql +21 -0
- package/modules/exports/migrations/0003_exports_rotation_inventory.down.sql +1 -0
- package/modules/exports/migrations/0003_exports_rotation_inventory.up.sql +9 -0
- package/modules/exports/migrations/README.md +3 -0
- package/modules/exports/module.json +32 -0
- package/modules/exports/package.json +45 -0
- package/modules/exports/spec/module.yaml +230 -0
- package/modules/exports/src/acl/permissions.ts +6 -0
- package/modules/exports/src/api/endpoints.ts +211 -0
- package/modules/exports/src/cli/commands.json +17 -0
- package/modules/exports/src/cli/index.ts +145 -0
- package/modules/exports/src/client/ExportsView.tsrx +327 -0
- package/modules/exports/src/client/api.ts +133 -0
- package/modules/exports/src/client/contribution.tsrx +31 -0
- package/modules/exports/src/client/index.ts +20 -0
- package/modules/exports/src/client/navigation.ts +25 -0
- package/modules/exports/src/client/presentation.ts +53 -0
- package/modules/exports/src/client/state.ts +56 -0
- package/modules/exports/src/domain/lists.ts +29 -0
- package/modules/exports/src/domain/types.ts +120 -0
- package/modules/exports/src/index.ts +41 -0
- package/modules/exports/src/platform.ts +80 -0
- package/modules/exports/src/server/index.ts +50 -0
- package/modules/exports/src/server/runtime.ts +160 -0
- package/modules/exports/src/services/data-classes.ts +59 -0
- package/modules/exports/src/services/database-repository.ts +403 -0
- package/modules/exports/src/services/export-runner.ts +123 -0
- package/modules/exports/src/services/export-service.ts +356 -0
- package/modules/exports/src/services/index.ts +6 -0
- package/modules/exports/src/services/list-registry.ts +105 -0
- package/modules/exports/src/services/migration.ts +116 -0
- package/modules/exports/src/services/repository.ts +96 -0
- package/modules/exports/src/services/storage-rotation.ts +138 -0
- package/modules/exports/src/settings.ts +70 -0
- package/modules/exports/translations/en.json +69 -0
- package/modules/exports/translations/pl.json +69 -0
- package/modules/import/migrations/0001_import_core.down.sql +6 -0
- package/modules/import/migrations/0001_import_core.up.sql +61 -0
- package/modules/import/migrations/0002_import_job_routing_role.down.sql +4 -0
- package/modules/import/migrations/0002_import_job_routing_role.up.sql +20 -0
- package/modules/import/migrations/0003_import_jobs_export_index.down.sql +1 -0
- package/modules/import/migrations/0003_import_jobs_export_index.up.sql +7 -0
- package/modules/import/migrations/0004_import_jobs_traceparent.down.sql +1 -0
- package/modules/import/migrations/0004_import_jobs_traceparent.up.sql +7 -0
- package/modules/import/migrations/README.md +3 -0
- package/modules/import/module.json +37 -0
- package/modules/import/package.json +50 -0
- package/modules/import/spec/module.yaml +335 -0
- package/modules/import/src/acl/permissions.ts +6 -0
- package/modules/import/src/api/endpoints.ts +400 -0
- package/modules/import/src/client/ImportJobDrawer.tsrx +229 -0
- package/modules/import/src/client/ImportsView.tsrx +455 -0
- package/modules/import/src/client/NewImportForm.tsrx +274 -0
- package/modules/import/src/client/api.ts +243 -0
- package/modules/import/src/client/contribution.tsrx +29 -0
- package/modules/import/src/client/index.ts +23 -0
- package/modules/import/src/client/navigation.ts +25 -0
- package/modules/import/src/client/presentation.ts +59 -0
- package/modules/import/src/client/state.ts +43 -0
- package/modules/import/src/domain/csv.ts +258 -0
- package/modules/import/src/domain/ports.ts +157 -0
- package/modules/import/src/domain/types.ts +179 -0
- package/modules/import/src/index.ts +58 -0
- package/modules/import/src/platform.ts +60 -0
- package/modules/import/src/server/index.ts +49 -0
- package/modules/import/src/server/runtime.ts +158 -0
- package/modules/import/src/services/csv-source.ts +121 -0
- package/modules/import/src/services/data-classes.ts +63 -0
- package/modules/import/src/services/database-repository.ts +780 -0
- package/modules/import/src/services/import-runner.ts +127 -0
- package/modules/import/src/services/import-service.ts +872 -0
- package/modules/import/src/services/index.ts +6 -0
- package/modules/import/src/services/migration.ts +156 -0
- package/modules/import/src/services/port-registry.ts +158 -0
- package/modules/import/src/services/repository.ts +147 -0
- package/modules/import/src/settings.ts +70 -0
- package/modules/import/translations/en.json +175 -0
- package/modules/import/translations/pl.json +175 -0
- package/modules/metering/migrations/0001_metering_core.down.sql +6 -0
- package/modules/metering/migrations/0001_metering_core.up.sql +119 -0
- package/modules/metering/migrations/0002_metering_bucket_export.down.sql +3 -0
- package/modules/metering/migrations/0002_metering_bucket_export.up.sql +5 -0
- package/modules/metering/migrations/README.md +3 -0
- package/modules/metering/module.json +46 -0
- package/modules/metering/package.json +50 -0
- package/modules/metering/spec/module.yaml +269 -0
- package/modules/metering/src/acl/permissions.ts +5 -0
- package/modules/metering/src/api/endpoints.ts +104 -0
- package/modules/metering/src/cli/commands.json +28 -0
- package/modules/metering/src/cli/index.ts +246 -0
- package/modules/metering/src/client/LimitsView.tsrx +170 -0
- package/modules/metering/src/client/UsageSummaryWidget.tsrx +63 -0
- package/modules/metering/src/client/UsageView.tsrx +205 -0
- package/modules/metering/src/client/api.ts +91 -0
- package/modules/metering/src/client/contribution.tsrx +42 -0
- package/modules/metering/src/client/index.ts +26 -0
- package/modules/metering/src/client/navigation.ts +54 -0
- package/modules/metering/src/client/presentation.ts +63 -0
- package/modules/metering/src/client/state.ts +31 -0
- package/modules/metering/src/domain/meters.ts +100 -0
- package/modules/metering/src/domain/types.ts +71 -0
- package/modules/metering/src/index.ts +51 -0
- package/modules/metering/src/platform.ts +84 -0
- package/modules/metering/src/server/index.ts +40 -0
- package/modules/metering/src/server/runtime.ts +165 -0
- package/modules/metering/src/services/data-classes.ts +34 -0
- package/modules/metering/src/services/database-repository.ts +574 -0
- package/modules/metering/src/services/index.ts +9 -0
- package/modules/metering/src/services/meter-registry.ts +145 -0
- package/modules/metering/src/services/metering-service.ts +441 -0
- package/modules/metering/src/services/migration.ts +183 -0
- package/modules/metering/src/services/notifications.ts +75 -0
- package/modules/metering/src/services/reports.ts +105 -0
- package/modules/metering/src/services/repository.ts +132 -0
- package/modules/metering/src/services/service-error.ts +46 -0
- package/modules/metering/src/settings.ts +47 -0
- package/modules/metering/translations/en.json +68 -0
- package/modules/metering/translations/pl.json +68 -0
- package/modules/notifications/migrations/0001_notifications_core.down.sql +1 -0
- package/modules/notifications/migrations/0001_notifications_core.up.sql +26 -0
- package/modules/notifications/migrations/0002_notifications_preferences.down.sql +1 -0
- package/modules/notifications/migrations/0002_notifications_preferences.up.sql +17 -0
- package/modules/notifications/migrations/0003_notifications_webhook_subscriptions.down.sql +1 -0
- package/modules/notifications/migrations/0003_notifications_webhook_subscriptions.up.sql +30 -0
- package/modules/notifications/migrations/0004_notifications_deliveries.down.sql +1 -0
- package/modules/notifications/migrations/0004_notifications_deliveries.up.sql +35 -0
- package/modules/notifications/migrations/0005_notifications_delivery_routing_role.down.sql +2 -0
- package/modules/notifications/migrations/0005_notifications_delivery_routing_role.up.sql +17 -0
- package/modules/notifications/migrations/0006_notifications_delivery_title.down.sql +1 -0
- package/modules/notifications/migrations/0006_notifications_delivery_title.up.sql +11 -0
- package/modules/notifications/migrations/0007_notifications_secret_rotation_inventory.down.sql +2 -0
- package/modules/notifications/migrations/0007_notifications_secret_rotation_inventory.up.sql +19 -0
- package/modules/notifications/migrations/0008_notifications_delivery_claim.down.sql +8 -0
- package/modules/notifications/migrations/0008_notifications_delivery_claim.up.sql +19 -0
- package/modules/notifications/migrations/0009_notifications_kind_approvals.down.sql +16 -0
- package/modules/notifications/migrations/0009_notifications_kind_approvals.up.sql +18 -0
- package/modules/notifications/migrations/0010_notifications_kind_meter_threshold.down.sql +16 -0
- package/modules/notifications/migrations/0010_notifications_kind_meter_threshold.up.sql +18 -0
- package/modules/notifications/migrations/0011_notifications_retention_keyset.down.sql +5 -0
- package/modules/notifications/migrations/0011_notifications_retention_keyset.up.sql +15 -0
- package/modules/notifications/migrations/0012_notifications_email_channel.down.sql +12 -0
- package/modules/notifications/migrations/0012_notifications_email_channel.up.sql +38 -0
- package/modules/notifications/migrations/0013_notifications_list_pages.down.sql +5 -0
- package/modules/notifications/migrations/0013_notifications_list_pages.up.sql +13 -0
- package/modules/notifications/migrations/README.md +3 -0
- package/modules/notifications/module.json +32 -0
- package/modules/notifications/package.json +49 -0
- package/modules/notifications/spec/module.yaml +718 -0
- package/modules/notifications/src/acl/permissions.ts +11 -0
- package/modules/notifications/src/api/endpoints.ts +814 -0
- package/modules/notifications/src/cli/commands.json +17 -0
- package/modules/notifications/src/cli/index.ts +126 -0
- package/modules/notifications/src/client/DeliveriesView.tsrx +483 -0
- package/modules/notifications/src/client/FactList.tsrx +24 -0
- package/modules/notifications/src/client/NotificationPreferencesView.tsrx +240 -0
- package/modules/notifications/src/client/NotificationsInboxView.tsrx +592 -0
- package/modules/notifications/src/client/UnreadCountWidget.tsrx +62 -0
- package/modules/notifications/src/client/WebhookForm.tsrx +297 -0
- package/modules/notifications/src/client/WebhooksView.tsrx +637 -0
- package/modules/notifications/src/client/api.ts +382 -0
- package/modules/notifications/src/client/contribution.tsrx +83 -0
- package/modules/notifications/src/client/inbox.ts +41 -0
- package/modules/notifications/src/client/index.ts +29 -0
- package/modules/notifications/src/client/navigation.ts +92 -0
- package/modules/notifications/src/client/notifications.css +70 -0
- package/modules/notifications/src/client/presentation.ts +81 -0
- package/modules/notifications/src/client/state.ts +246 -0
- package/modules/notifications/src/client/unread-count.ts +26 -0
- package/modules/notifications/src/domain/locale.ts +47 -0
- package/modules/notifications/src/domain/publish.ts +46 -0
- package/modules/notifications/src/domain/types.ts +186 -0
- package/modules/notifications/src/index.ts +62 -0
- package/modules/notifications/src/platform.ts +85 -0
- package/modules/notifications/src/server/index.ts +82 -0
- package/modules/notifications/src/server/runtime.ts +251 -0
- package/modules/notifications/src/services/data-classes.ts +139 -0
- package/modules/notifications/src/services/database-repository.ts +1334 -0
- package/modules/notifications/src/services/delivery-payload.ts +93 -0
- package/modules/notifications/src/services/delivery-runner.ts +170 -0
- package/modules/notifications/src/services/delivery-service.ts +811 -0
- package/modules/notifications/src/services/egress.ts +239 -0
- package/modules/notifications/src/services/email-channel.ts +93 -0
- package/modules/notifications/src/services/index.ts +23 -0
- package/modules/notifications/src/services/migration.ts +572 -0
- package/modules/notifications/src/services/notifications-service.ts +297 -0
- package/modules/notifications/src/services/paging.ts +60 -0
- package/modules/notifications/src/services/publish-service.ts +133 -0
- package/modules/notifications/src/services/repository.ts +342 -0
- package/modules/notifications/src/services/secret-rotation.ts +177 -0
- package/modules/notifications/src/services/secret-vault.ts +168 -0
- package/modules/notifications/src/services/service-error.ts +67 -0
- package/modules/notifications/src/services/signature.ts +81 -0
- package/modules/notifications/src/services/webhook-service.ts +307 -0
- package/modules/notifications/src/settings.ts +130 -0
- package/modules/notifications/translations/en.json +255 -0
- package/modules/notifications/translations/pl.json +255 -0
- package/modules/profile/module.json +3 -3
- package/modules/profile/package.json +1 -1
- package/modules/profile/spec/module.yaml +3 -3
- package/modules/profile/src/services/database-repository.ts +3 -13
- package/modules/reports/module.json +28 -0
- package/modules/reports/package.json +42 -0
- package/modules/reports/spec/module.yaml +231 -0
- package/modules/reports/src/acl/permissions.ts +5 -0
- package/modules/reports/src/api/endpoints.ts +72 -0
- package/modules/reports/src/client/ReportsSummaryWidget.tsrx +52 -0
- package/modules/reports/src/client/ReportsView.tsrx +246 -0
- package/modules/reports/src/client/api.ts +65 -0
- package/modules/reports/src/client/contribution.tsrx +36 -0
- package/modules/reports/src/client/index.ts +18 -0
- package/modules/reports/src/client/navigation.ts +39 -0
- package/modules/reports/src/client/presentation.ts +123 -0
- package/modules/reports/src/client/state.ts +28 -0
- package/modules/reports/src/domain/providers.ts +115 -0
- package/modules/reports/src/domain/types.ts +44 -0
- package/modules/reports/src/index.ts +47 -0
- package/modules/reports/src/platform.ts +37 -0
- package/modules/reports/src/server/index.ts +21 -0
- package/modules/reports/src/server/runtime.ts +40 -0
- package/modules/reports/src/services/index.ts +17 -0
- package/modules/reports/src/services/provider-registry.ts +144 -0
- package/modules/reports/src/services/range.ts +65 -0
- package/modules/reports/src/services/reports-service.ts +316 -0
- package/modules/reports/src/services/service-error.ts +26 -0
- package/modules/reports/src/settings.ts +49 -0
- package/modules/reports/translations/en.json +35 -0
- package/modules/reports/translations/pl.json +35 -0
- package/modules/sandbox/module.json +4 -4
- package/modules/sandbox/package.json +1 -1
- package/modules/sandbox/spec/module.yaml +3 -3
- package/modules/sandbox/src/services/database-repository.ts +14 -23
- package/modules/sandbox/src/services/directory.ts +16 -0
- package/modules/sandbox/src/services/sandbox-service.ts +13 -11
- package/modules/search/migrations/0001_search_core.down.sql +1 -0
- package/modules/search/migrations/0001_search_core.up.sql +22 -0
- package/modules/search/migrations/0002_search_recent_export.down.sql +3 -0
- package/modules/search/migrations/0002_search_recent_export.up.sql +5 -0
- package/modules/search/migrations/README.md +3 -0
- package/modules/search/module.json +28 -0
- package/modules/search/package.json +43 -0
- package/modules/search/spec/module.yaml +177 -0
- package/modules/search/src/acl/permissions.ts +5 -0
- package/modules/search/src/api/endpoints.ts +221 -0
- package/modules/search/src/client/SearchView.tsrx +346 -0
- package/modules/search/src/client/api.ts +157 -0
- package/modules/search/src/client/contribution.tsrx +31 -0
- package/modules/search/src/client/index.ts +17 -0
- package/modules/search/src/client/navigation.ts +97 -0
- package/modules/search/src/client/search.css +56 -0
- package/modules/search/src/client/state.ts +113 -0
- package/modules/search/src/domain/data-classes.ts +73 -0
- package/modules/search/src/domain/providers.ts +88 -0
- package/modules/search/src/domain/types.ts +56 -0
- package/modules/search/src/index.ts +46 -0
- package/modules/search/src/platform.ts +42 -0
- package/modules/search/src/server/index.ts +25 -0
- package/modules/search/src/server/runtime.ts +123 -0
- package/modules/search/src/services/database-repository.ts +163 -0
- package/modules/search/src/services/index.ts +21 -0
- package/modules/search/src/services/migration.ts +65 -0
- package/modules/search/src/services/provider-registry.ts +137 -0
- package/modules/search/src/services/repository.ts +43 -0
- package/modules/search/src/services/search-service.ts +442 -0
- package/modules/search/src/services/service-error.ts +35 -0
- package/modules/search/src/settings.ts +68 -0
- package/modules/search/translations/en.json +45 -0
- package/modules/search/translations/pl.json +45 -0
- package/modules/system/module.json +2 -2
- package/modules/system/package.json +1 -1
- package/modules/system/spec/module.yaml +30 -3
- package/modules/system/src/client/FlagsPanel.tsrx +127 -0
- package/modules/system/src/client/ModuleSettingRow.tsrx +17 -7
- package/modules/system/src/client/ModuleSettingsSection.tsrx +10 -71
- package/modules/system/src/client/ModulesView.tsrx +91 -65
- package/modules/system/src/client/flags.ts +35 -0
- package/modules/system/src/client/index.ts +8 -0
- package/modules/system/src/client/navigation.ts +8 -0
- package/modules/system/src/client/settings-state.ts +159 -0
- package/modules/system/src/client/state.ts +2 -0
- package/modules/system/src/domain/time-zone.ts +105 -0
- package/modules/system/src/index.ts +12 -0
- package/modules/system/src/platform.ts +5 -1
- package/modules/system/src/server/endpoints.ts +72 -21
- package/modules/system/src/settings.ts +28 -0
- package/modules/system/translations/en.json +17 -0
- package/modules/system/translations/pl.json +17 -0
- package/modules/users/module.json +30 -4
- package/modules/users/package.json +4 -1
- package/modules/users/spec/module.yaml +290 -7
- package/modules/users/src/api/endpoints.ts +228 -15
- package/modules/users/src/client/InviteMemberForm.tsrx +2 -2
- package/modules/users/src/client/MemberDrawer.tsrx +142 -26
- package/modules/users/src/client/UserAccountForm.tsrx +2 -2
- package/modules/users/src/client/UsersView.tsrx +432 -71
- package/modules/users/src/client/api.ts +106 -12
- package/modules/users/src/client/contribution.tsrx +5 -0
- package/modules/users/src/client/member-columns.tsrx +22 -9
- package/modules/users/src/client/state.ts +172 -7
- package/modules/users/src/domain/lists.ts +9 -0
- package/modules/users/src/index.ts +11 -0
- package/modules/users/src/platform.ts +50 -1
- package/modules/users/src/services/member-export.ts +51 -0
- package/modules/users/src/services/member-import.ts +249 -0
- package/modules/users/src/services/member-search.ts +145 -0
- package/modules/users/src/services/users-service.ts +117 -4
- package/modules/users/translations/en.json +57 -8
- package/modules/users/translations/pl.json +57 -8
- package/modules/workflows/migrations/0004_payload_rotation_inventory.up.sql +17 -0
- package/modules/workflows/migrations/0005_workflows_human_approval.up.sql +28 -0
- package/modules/workflows/migrations/0006_workflows_retention_indexes.up.sql +11 -0
- package/modules/workflows/migrations/0007_workflows_erasure_subject_indexes.up.sql +17 -0
- package/modules/workflows/migrations/0008_workflows_subject_account.up.sql +24 -0
- package/modules/workflows/migrations/0009_workflows_definition_list_indexes.up.sql +9 -0
- package/modules/workflows/module.json +34 -6
- package/modules/workflows/package.json +2 -1
- package/modules/workflows/spec/module.yaml +26 -9
- package/modules/workflows/src/api/endpoints.ts +131 -25
- package/modules/workflows/src/cli/commands.json +17 -0
- package/modules/workflows/src/cli/index.ts +114 -0
- package/modules/workflows/src/client/WorkflowExecutionHistory.tsrx +36 -27
- package/modules/workflows/src/client/WorkflowInspector.tsrx +116 -0
- package/modules/workflows/src/client/WorkflowNodePalette.tsrx +1 -0
- package/modules/workflows/src/client/WorkflowsView.tsrx +236 -99
- package/modules/workflows/src/client/api.ts +54 -34
- package/modules/workflows/src/client/canvas-model.ts +12 -0
- package/modules/workflows/src/client/state.ts +95 -0
- package/modules/workflows/src/domain/events.ts +25 -11
- package/modules/workflows/src/domain/graph.ts +135 -1
- package/modules/workflows/src/domain/types.ts +91 -4
- package/modules/workflows/src/platform.ts +12 -0
- package/modules/workflows/src/server/runtime.ts +78 -5
- package/modules/workflows/src/services/approvals.ts +62 -0
- package/modules/workflows/src/services/cursors.ts +37 -0
- package/modules/workflows/src/services/data-classes.ts +232 -0
- package/modules/workflows/src/services/database-repository.ts +660 -171
- package/modules/workflows/src/services/migration.ts +240 -0
- package/modules/workflows/src/services/notifications.ts +98 -0
- package/modules/workflows/src/services/payload-codec.ts +51 -28
- package/modules/workflows/src/services/payload-rotation.ts +171 -0
- package/modules/workflows/src/services/repository.ts +123 -8
- package/modules/workflows/src/services/simulation.ts +7 -0
- package/modules/workflows/src/services/worker.ts +446 -25
- package/modules/workflows/src/services/workflows-service.ts +264 -103
- package/modules/workflows/translations/en.json +12 -4
- package/modules/workflows/translations/pl.json +12 -4
- package/modules.json +48 -4
- package/package.json +64 -6
- package/packages/client/package.json +1 -0
- package/packages/client/src/ApplicationShell.tsrx +43 -0
- package/packages/client/src/contributions.ts +55 -0
- package/packages/client/src/i18n/locales/en.json +5 -0
- package/packages/client/src/i18n/locales/pl.json +5 -0
- package/packages/client/src/index.ts +13 -1
- package/packages/client/src/routing.ts +22 -0
- package/packages/client/src/shell/CommandPalette.tsrx +223 -11
- package/packages/client/src/shell/command-search.ts +126 -0
- package/packages/client/src/shell/command.ts +30 -0
- package/packages/client/src/shell/navigation.ts +12 -0
- package/packages/client/src/shell/palette-keys.ts +27 -0
- package/packages/client/src/shell/shell.css +7 -0
- package/packages/contracts/schemas/module-spec.schema.json +287 -1
- package/packages/contracts/schemas/module.schema.json +25 -0
- package/packages/contracts/src/index.ts +144 -1
- package/packages/database/src/backup.ts +180 -0
- package/packages/database/src/decoders.ts +25 -0
- package/packages/database/src/index.ts +17 -0
- package/packages/database/src/migrations.ts +7 -0
- package/packages/database/src/record-history.ts +5 -14
- package/packages/harness/src/index.ts +2 -0
- package/packages/harness/src/runtime.ts +378 -2
- package/packages/harness/src/tool-adapters.ts +20 -9
- package/packages/kernel/src/acl.ts +179 -0
- package/packages/kernel/src/approval-grant.ts +310 -0
- package/packages/kernel/src/capability-registry.ts +69 -2
- package/packages/kernel/src/data-class-registry.ts +354 -0
- package/packages/kernel/src/index.ts +85 -4
- package/packages/kernel/src/keyring.ts +208 -0
- package/packages/kernel/src/module-compatibility.ts +35 -4
- package/packages/kernel/src/module-registry.ts +49 -2
- package/packages/kernel/src/module-settings.ts +189 -27
- package/packages/server/package.json +2 -1
- package/packages/server/src/composition.ts +38 -0
- package/packages/server/src/endpoint.ts +104 -47
- package/packages/server/src/export/csv.ts +34 -0
- package/packages/server/src/export/definition.ts +346 -0
- package/packages/server/src/export/index.ts +61 -0
- package/packages/server/src/export/run.ts +116 -0
- package/packages/server/src/index.ts +155 -0
- package/packages/server/src/jobs/index.ts +93 -0
- package/packages/server/src/jobs/runner.ts +486 -0
- package/packages/server/src/log.ts +291 -0
- package/packages/server/src/mail/config.ts +184 -0
- package/packages/server/src/mail/contracts.ts +251 -0
- package/packages/server/src/mail/index.ts +31 -0
- package/packages/server/src/mail/port.ts +101 -0
- package/packages/server/src/mail/smtp.ts +191 -0
- package/packages/server/src/mail/template.ts +105 -0
- package/packages/server/src/metrics.ts +447 -0
- package/packages/server/src/pagination.ts +246 -0
- package/packages/server/src/trace/context.ts +103 -0
- package/packages/server/src/trace/egress.ts +66 -0
- package/packages/server/src/trace/error-sink.ts +296 -0
- package/packages/server/src/trace/exporter.ts +295 -0
- package/packages/server/src/trace/index.ts +60 -0
- package/packages/server/src/trace/job-sink.ts +172 -0
- package/packages/server/src/trace/tracer.ts +338 -0
- package/packages/server/src/web.ts +5 -1
- package/packages/storage/package.json +40 -0
- package/packages/storage/src/config.ts +189 -0
- package/packages/storage/src/content-type.ts +124 -0
- package/packages/storage/src/contracts.ts +112 -0
- package/packages/storage/src/envelope.ts +238 -0
- package/packages/storage/src/index.ts +49 -0
- package/packages/storage/src/local.ts +75 -0
- package/packages/storage/src/port.ts +262 -0
- package/packages/storage/src/read-token.ts +130 -0
- package/packages/storage/src/reseal.ts +128 -0
- package/packages/storage/src/s3.ts +144 -0
- package/packages/storage/src/scanner.ts +22 -0
- package/packages/storage/src/sigv4.ts +104 -0
- package/packages/storage/src/store.ts +13 -0
- package/packages/ui/package.json +1 -0
- package/packages/ui/src/components/Button.tsrx +3 -0
- package/packages/ui/src/components/ConfirmDialog.tsrx +13 -2
- package/packages/ui/src/components/DateField.tsrx +92 -0
- package/packages/ui/src/components/DatePicker.tsrx +525 -0
- package/packages/ui/src/components/DateRangeField.tsrx +93 -0
- package/packages/ui/src/components/Drawer.tsrx +10 -1
- package/packages/ui/src/components/FileUpload.tsrx +158 -0
- package/packages/ui/src/components/Pagination.tsrx +130 -0
- package/packages/ui/src/components/Select.tsrx +78 -0
- package/packages/ui/src/components/Table.tsrx +498 -81
- package/packages/ui/src/components/Tabs.tsrx +53 -0
- package/packages/ui/src/components/ToastHost.tsrx +48 -0
- package/packages/ui/src/components/calendar.ts +243 -0
- package/packages/ui/src/components/date-field.ts +62 -0
- package/packages/ui/src/components/file-upload.ts +49 -0
- package/packages/ui/src/components/focus-trap.ts +62 -0
- package/packages/ui/src/components/pagination.ts +68 -0
- package/packages/ui/src/components/table-sorting.ts +49 -0
- package/packages/ui/src/components/tabs.ts +61 -0
- package/packages/ui/src/components/toast-store.ts +116 -0
- package/packages/ui/src/icons/Icon.tsrx +5 -0
- package/packages/ui/src/index.ts +45 -0
- package/packages/ui/src/styles/components.css +598 -0
- package/modules/automations-workflows-integration/module.json +0 -27
- package/modules/automations-workflows-integration/spec/module.yaml +0 -93
- package/modules/automations-workflows-integration/src/index.ts +0 -14
- package/modules/automations-workflows-integration/src/platform.ts +0 -24
- package/modules/automations-workflows-integration/src/server/index.ts +0 -11
- package/modules/automations-workflows-integration/translations/en.json +0 -21
- package/modules/automations-workflows-integration/translations/pl.json +0 -21
- package/modules/workflows/src/services/cursor-codec.ts +0 -62
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import {
|
|
2
|
+
defineModuleSettings,
|
|
3
|
+
PLATFORM_SETTINGS_TENANT,
|
|
4
|
+
type ModuleSettingsRuntime,
|
|
5
|
+
} from '@flowdular/sdk/kernel';
|
|
6
|
+
|
|
7
|
+
export const AUDIT_MODULE_ID = 'audit.core';
|
|
8
|
+
|
|
9
|
+
export const AUDIT_MODULE_SETTINGS = defineModuleSettings({
|
|
10
|
+
moduleId: AUDIT_MODULE_ID,
|
|
11
|
+
settings: {
|
|
12
|
+
sweepIntervalMinutes: {
|
|
13
|
+
type: 'number',
|
|
14
|
+
defaultValue: 60,
|
|
15
|
+
min: 5,
|
|
16
|
+
max: 1_440,
|
|
17
|
+
visibility: 'private',
|
|
18
|
+
client: false,
|
|
19
|
+
scope: 'platform',
|
|
20
|
+
labelKey: 'audit.settings.sweepIntervalMinutes.label',
|
|
21
|
+
label: 'Retention sweep interval (minutes)',
|
|
22
|
+
descriptionKey: 'audit.settings.sweepIntervalMinutes.description',
|
|
23
|
+
/* The loop arms its interval once, in the platform's start hook, so a
|
|
24
|
+
value edited while it runs reaches it at the next start. The
|
|
25
|
+
description says so rather than leaving an operator watching a
|
|
26
|
+
cadence that did not change. */
|
|
27
|
+
description:
|
|
28
|
+
'How often the retention sweep looks for classes whose period has passed. A new value applies the next time the platform starts.',
|
|
29
|
+
},
|
|
30
|
+
sweepBatchSize: {
|
|
31
|
+
type: 'number',
|
|
32
|
+
defaultValue: 500,
|
|
33
|
+
min: 50,
|
|
34
|
+
max: 5_000,
|
|
35
|
+
visibility: 'private',
|
|
36
|
+
client: false,
|
|
37
|
+
scope: 'platform',
|
|
38
|
+
labelKey: 'audit.settings.sweepBatchSize.label',
|
|
39
|
+
label: 'Retention sweep batch size',
|
|
40
|
+
descriptionKey: 'audit.settings.sweepBatchSize.description',
|
|
41
|
+
description:
|
|
42
|
+
'Rows the owning module removes per call, per class, until fewer than this come back.',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
const DEFAULTS = AUDIT_MODULE_SETTINGS.settings;
|
|
48
|
+
|
|
49
|
+
/* A setting read must never take the sweep down, so every accessor falls back
|
|
50
|
+
to the declared default when the runtime has not registered it yet. */
|
|
51
|
+
function value(
|
|
52
|
+
settings: ModuleSettingsRuntime,
|
|
53
|
+
key: keyof typeof DEFAULTS,
|
|
54
|
+
fallback: number,
|
|
55
|
+
): number {
|
|
56
|
+
try {
|
|
57
|
+
return settings.get<number>(PLATFORM_SETTINGS_TENANT, AUDIT_MODULE_ID, key);
|
|
58
|
+
} catch {
|
|
59
|
+
return fallback;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function auditSweepIntervalMs(settings: ModuleSettingsRuntime): number {
|
|
64
|
+
return value(settings, 'sweepIntervalMinutes', 60) * 60_000;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function auditSweepBatchSize(settings: ModuleSettingsRuntime): number {
|
|
68
|
+
return value(settings, 'sweepBatchSize', 500);
|
|
69
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
{
|
|
2
|
+
"module.name": "Audit and Data Lifecycle Core",
|
|
3
|
+
"navigation.dataClasses": "Data classes",
|
|
4
|
+
"navigation.dataClassesDescription": "What this workspace holds and how long each class is kept.",
|
|
5
|
+
"navigation.sweeps": "Retention sweeps",
|
|
6
|
+
"navigation.sweepsDescription": "Every retention pass, what it removed and why it was refused.",
|
|
7
|
+
"navigation.exports": "Exports",
|
|
8
|
+
"navigation.exportsDescription": "The archives an operator took of this workspace.",
|
|
9
|
+
"common.administration": "Administration",
|
|
10
|
+
"common.refresh": "Refresh",
|
|
11
|
+
"common.refreshing": "Refreshing…",
|
|
12
|
+
"common.saving": "Saving…",
|
|
13
|
+
"common.close": "Close",
|
|
14
|
+
"common.actions": "Actions",
|
|
15
|
+
"common.filters": "Filters",
|
|
16
|
+
"common.messages": "Messages",
|
|
17
|
+
"common.accessDenied": "Access denied",
|
|
18
|
+
"common.never": "Never",
|
|
19
|
+
"common.none": "None",
|
|
20
|
+
"common.yes": "Yes",
|
|
21
|
+
"common.no": "No",
|
|
22
|
+
"retention.kept": "Kept until deleted",
|
|
23
|
+
"retention.days": "{days} days",
|
|
24
|
+
"retention.defaultKept": "Default: kept until deleted",
|
|
25
|
+
"retention.defaultDays": "Default: {days} days",
|
|
26
|
+
"retention.mode.default": "Follow the module default",
|
|
27
|
+
"retention.mode.days": "Keep for a number of days",
|
|
28
|
+
"retention.mode.none": "Keep until a person deletes",
|
|
29
|
+
"reason.BACKUP_MANIFEST_MISSING": "No backup manifest is recorded for this deployment.",
|
|
30
|
+
"reason.LEGAL_HOLD": "A legal hold covers this class.",
|
|
31
|
+
"reason.OWNER_SWEEP_FAILED": "The owning module could not remove the rows.",
|
|
32
|
+
"reason.BATCH_CAP_REACHED": "The pass reached its batch limit and continues at the next interval.",
|
|
33
|
+
"dataClasses.title": "Data classes",
|
|
34
|
+
"dataClasses.description": "Every class a composed module declared, the period this workspace keeps it for, and when the sweep last ran.",
|
|
35
|
+
"dataClasses.denied": "You need the audit registry permission to see what this workspace holds.",
|
|
36
|
+
"dataClasses.holdNothing": "These modules hold no data class: {modules}.",
|
|
37
|
+
"dataClasses.note": "Removal happens inside the owning module. audit.core never reads another module's tables.",
|
|
38
|
+
"dataClasses.table.title": "Declared classes",
|
|
39
|
+
"dataClasses.table.caption": "Data classes of this workspace",
|
|
40
|
+
"dataClasses.table.count": "{count} classes",
|
|
41
|
+
"dataClasses.table.loading": "Loading data classes…",
|
|
42
|
+
"dataClasses.column.classId": "Class",
|
|
43
|
+
"dataClasses.column.moduleId": "Module",
|
|
44
|
+
"dataClasses.column.retention": "Retention",
|
|
45
|
+
"dataClasses.column.defaultRetention": "Module default",
|
|
46
|
+
"dataClasses.column.exportable": "Exportable",
|
|
47
|
+
"dataClasses.column.lastSweptAt": "Last swept",
|
|
48
|
+
"dataClasses.search.label": "Search data classes",
|
|
49
|
+
"dataClasses.search.placeholder": "Class id or label",
|
|
50
|
+
"dataClasses.filter.module": "Module",
|
|
51
|
+
"dataClasses.filter.allModules": "All modules",
|
|
52
|
+
"dataClasses.empty.title": "No data classes yet",
|
|
53
|
+
"dataClasses.empty.hint": "Classes appear as soon as a composed module declares them.",
|
|
54
|
+
"dataClasses.emptyFiltered.title": "No class matches",
|
|
55
|
+
"dataClasses.emptyFiltered.hint": "Clear the search or the module filter.",
|
|
56
|
+
"dataClasses.action.setRetention": "Set retention",
|
|
57
|
+
"dataClasses.action.save": "Save period",
|
|
58
|
+
"dataClasses.form.title": "Retention period",
|
|
59
|
+
"dataClasses.form.mode": "Period",
|
|
60
|
+
"dataClasses.form.modeHelp": "The module default applies until this workspace sets its own.",
|
|
61
|
+
"dataClasses.form.notSweepable": "This class declares no sweep operation, so it is kept until a person deletes it.",
|
|
62
|
+
"dataClasses.form.days": "Days",
|
|
63
|
+
"dataClasses.form.daysHelp": "1 to 36500 days. Zero is refused.",
|
|
64
|
+
"dataClasses.form.daysInvalid": "Enter a whole number of days between 1 and 36500.",
|
|
65
|
+
"dataClasses.form.constraint": "Changing a period is recorded in the audit trail.",
|
|
66
|
+
"dataClasses.notice.saved": "Retention period saved.",
|
|
67
|
+
"dataClasses.error.load": "Could not load the data class registry.",
|
|
68
|
+
"dataClasses.error.save": "Could not save the retention period.",
|
|
69
|
+
"sweeps.title": "Retention sweeps",
|
|
70
|
+
"sweeps.description": "One row per retention pass over one class, with the cutoff it used and how many rows the owning module removed.",
|
|
71
|
+
"sweeps.denied": "You need the audit registry permission to see the sweep ledger.",
|
|
72
|
+
"sweeps.note": "A refusal stands until the deployment answers it; the next pass does not repeat it.",
|
|
73
|
+
"sweeps.table.title": "Sweep ledger",
|
|
74
|
+
"sweeps.table.caption": "Retention sweeps of this workspace",
|
|
75
|
+
"sweeps.table.count": "{count} sweeps",
|
|
76
|
+
"sweeps.table.loading": "Loading sweeps…",
|
|
77
|
+
"sweeps.column.occurredAt": "When",
|
|
78
|
+
"sweeps.column.dataClass": "Data class",
|
|
79
|
+
"sweeps.column.cutoff": "Cutoff",
|
|
80
|
+
"sweeps.column.removed": "Removed",
|
|
81
|
+
"sweeps.column.status": "Status",
|
|
82
|
+
"sweeps.column.reason": "Reason",
|
|
83
|
+
"sweeps.status.completed": "Completed",
|
|
84
|
+
"sweeps.status.partial": "Partial",
|
|
85
|
+
"sweeps.status.refused": "Refused",
|
|
86
|
+
"sweeps.search.label": "Search sweeps",
|
|
87
|
+
"sweeps.search.placeholder": "Class id",
|
|
88
|
+
"sweeps.filter.status": "Status",
|
|
89
|
+
"sweeps.filter.allStatuses": "All statuses",
|
|
90
|
+
"sweeps.empty.title": "No sweep has run yet",
|
|
91
|
+
"sweeps.empty.hint": "A pass appears once a class has a period and its first interval passed.",
|
|
92
|
+
"sweeps.emptyFiltered.title": "No sweep matches",
|
|
93
|
+
"sweeps.emptyFiltered.hint": "Clear the search or the status filter.",
|
|
94
|
+
"sweeps.error.load": "Could not load the sweep ledger.",
|
|
95
|
+
"exports.title": "Exports",
|
|
96
|
+
"exports.description": "Every archive an operator took of this workspace, with the digest of the file that was written.",
|
|
97
|
+
"exports.denied": "You need the audit registry permission to see the export history.",
|
|
98
|
+
"exports.note": "An export is produced by the operator command; a download from this screen waits for file storage.",
|
|
99
|
+
"exports.table.title": "Export history",
|
|
100
|
+
"exports.table.caption": "Exports of this workspace",
|
|
101
|
+
"exports.table.count": "{count} exports",
|
|
102
|
+
"exports.table.loading": "Loading exports…",
|
|
103
|
+
"exports.column.startedAt": "Started and finished",
|
|
104
|
+
"exports.column.status": "Status",
|
|
105
|
+
"exports.column.classes": "Classes",
|
|
106
|
+
"exports.column.rows": "Rows",
|
|
107
|
+
"exports.column.archiveDigest": "Archive digest",
|
|
108
|
+
"exports.column.requestedBy": "Requested by",
|
|
109
|
+
"exports.status.started": "Running",
|
|
110
|
+
"exports.status.completed": "Completed",
|
|
111
|
+
"exports.status.failed": "Failed",
|
|
112
|
+
"exports.search.label": "Search exports",
|
|
113
|
+
"exports.search.placeholder": "Operator",
|
|
114
|
+
"exports.filter.status": "Status",
|
|
115
|
+
"exports.filter.allStatuses": "All statuses",
|
|
116
|
+
"exports.empty.title": "No export yet",
|
|
117
|
+
"exports.empty.hint": "An operator takes one with the audit export command.",
|
|
118
|
+
"exports.emptyFiltered.title": "No export matches",
|
|
119
|
+
"exports.emptyFiltered.hint": "Clear the search or the status filter.",
|
|
120
|
+
"exports.error.load": "Could not load the export history.",
|
|
121
|
+
"pagination.label": "Pages",
|
|
122
|
+
"pagination.previous": "Previous",
|
|
123
|
+
"pagination.next": "Next",
|
|
124
|
+
"pagination.size": "Rows per page",
|
|
125
|
+
"pagination.summary": "Page {page} of {pages}, rows {from} to {to} of {total}",
|
|
126
|
+
"settings.sweepIntervalMinutes.label": "Retention sweep interval (minutes)",
|
|
127
|
+
"settings.sweepIntervalMinutes.description": "How often the retention sweep looks for classes whose period has passed. A new value applies the next time the platform starts.",
|
|
128
|
+
"settings.sweepBatchSize.label": "Retention sweep batch size",
|
|
129
|
+
"settings.sweepBatchSize.description": "Rows the owning module removes per call, per class, until fewer than this come back.",
|
|
130
|
+
"error.request": "The audit operation failed.",
|
|
131
|
+
"error.code.DATA_CLASS_NOT_FOUND": "No composed module declares this data class.",
|
|
132
|
+
"error.code.DATA_CLASS_NOT_SWEEPABLE": "This class declares no sweep operation, so it can only be kept until a person deletes it.",
|
|
133
|
+
"error.code.INVALID_INPUT": "The value sent is outside what this field accepts.",
|
|
134
|
+
"error.code.CSRF_REJECTED": "Your session could not be verified. Reload the page and try again.",
|
|
135
|
+
"navigation.holds": "Legal holds",
|
|
136
|
+
"navigation.holdsDescription": "What this workspace may not remove, and why.",
|
|
137
|
+
"reason.HOLD_ACTIVE": "A legal hold covers this class.",
|
|
138
|
+
"reason.SEGMENT_NOT_SEALED": "These events are in no segment file yet; seal the chain before retention may remove them.",
|
|
139
|
+
"holds.title": "Legal holds",
|
|
140
|
+
"holds.description": "Every standing instruction not to remove data, what it covers, who placed it and why.",
|
|
141
|
+
"holds.denied": "You need the audit registry permission to see the legal holds of this workspace.",
|
|
142
|
+
"holds.note": "While a hold stands the retention sweep and erasure refuse for everything it covers, and say so in the ledger.",
|
|
143
|
+
"holds.table.title": "Holds",
|
|
144
|
+
"holds.table.caption": "Legal holds of this workspace",
|
|
145
|
+
"holds.table.count": "{count} holds",
|
|
146
|
+
"holds.table.loading": "Loading legal holds…",
|
|
147
|
+
"holds.column.placedAt": "Placed",
|
|
148
|
+
"holds.column.scope": "Covers",
|
|
149
|
+
"holds.column.reason": "Reason",
|
|
150
|
+
"holds.column.placedBy": "Placed by",
|
|
151
|
+
"holds.column.status": "Status",
|
|
152
|
+
"holds.status.active": "Active",
|
|
153
|
+
"holds.status.lifted": "Lifted",
|
|
154
|
+
"holds.scope.account": "One account",
|
|
155
|
+
"holds.scope.workspace": "The whole workspace",
|
|
156
|
+
"holds.scope.data-class": "One data class",
|
|
157
|
+
"holds.scope.date-range": "A date range",
|
|
158
|
+
"holds.scope.wholeWorkspace": "Everything this workspace holds",
|
|
159
|
+
"holds.search.label": "Search legal holds",
|
|
160
|
+
"holds.search.placeholder": "Reason, account or class",
|
|
161
|
+
"holds.filter.status": "Status",
|
|
162
|
+
"holds.filter.allStatuses": "All statuses",
|
|
163
|
+
"holds.filter.scope": "Scope",
|
|
164
|
+
"holds.filter.allScopes": "All scopes",
|
|
165
|
+
"holds.empty.title": "No legal hold",
|
|
166
|
+
"holds.empty.hint": "Place one when data has to stay while a matter is open.",
|
|
167
|
+
"holds.emptyFiltered.title": "No hold matches",
|
|
168
|
+
"holds.emptyFiltered.hint": "Clear the search or the filters.",
|
|
169
|
+
"holds.action.place": "Place a hold",
|
|
170
|
+
"holds.action.lift": "Lift",
|
|
171
|
+
"holds.form.placeTitle": "Place a legal hold",
|
|
172
|
+
"holds.form.placeSubtitle": "Nothing it covers is removed until it is lifted.",
|
|
173
|
+
"holds.form.liftTitle": "Lift this legal hold",
|
|
174
|
+
"holds.form.scope": "Scope",
|
|
175
|
+
"holds.form.scopeHelp": "Pick what the hold is about; the fields below narrow it further.",
|
|
176
|
+
"holds.form.account": "Account",
|
|
177
|
+
"holds.form.accountHelp": "Required for an account hold; optional as a narrowing on any other.",
|
|
178
|
+
"holds.form.class": "Data class",
|
|
179
|
+
"holds.form.classHelp": "Required for a data class hold, for example agents.core.runs.",
|
|
180
|
+
"holds.form.from": "From",
|
|
181
|
+
"holds.form.to": "To",
|
|
182
|
+
"holds.form.reason": "Reason",
|
|
183
|
+
"holds.form.reasonHelp": "Why the data has to stay. Up to 400 characters, recorded in the audit trail.",
|
|
184
|
+
"holds.form.liftReason": "Reason for lifting",
|
|
185
|
+
"holds.form.liftReasonHelp": "Why the data may be removed again. Recorded in the audit trail.",
|
|
186
|
+
"holds.form.constraint": "Placing a hold is recorded in the audit trail.",
|
|
187
|
+
"holds.form.liftConstraint": "Lifting a hold is recorded in the audit trail.",
|
|
188
|
+
"holds.form.reasonInvalid": "Enter a reason of 1 to 400 characters.",
|
|
189
|
+
"holds.form.accountRequired": "An account hold needs the account it covers.",
|
|
190
|
+
"holds.form.classRequired": "A data class hold needs the class it covers.",
|
|
191
|
+
"holds.form.rangeRequired": "A date range hold needs both ends of the range.",
|
|
192
|
+
"holds.notice.placed": "Legal hold placed.",
|
|
193
|
+
"holds.notice.lifted": "Legal hold lifted.",
|
|
194
|
+
"holds.error.load": "Could not load the legal holds.",
|
|
195
|
+
"holds.error.place": "Could not place the legal hold.",
|
|
196
|
+
"holds.error.lift": "Could not lift the legal hold.",
|
|
197
|
+
"error.code.HOLD_ACTIVE": "A legal hold covers this data, so it cannot be removed.",
|
|
198
|
+
"error.code.HOLD_NOT_FOUND": "This workspace holds no such legal hold.",
|
|
199
|
+
"error.code.HOLD_SCOPE_INVALID": "The scope of the hold is incomplete or contradicts itself.",
|
|
200
|
+
"error.code.HOLD_LIMIT_REACHED": "This workspace already carries the maximum number of active holds.",
|
|
201
|
+
"error.code.SEGMENT_NOT_SEALED": "These audit events are in no segment file yet, so retention may not remove them.",
|
|
202
|
+
"holds.column.accountId": "Account",
|
|
203
|
+
"holds.column.classId": "Data class",
|
|
204
|
+
"reason.ERASURE_REQUEST_EXPIRED": "No running platform answered this erasure request within 24 hours.",
|
|
205
|
+
"error.code.FORBIDDEN": "Your account does not hold the permission this needs.",
|
|
206
|
+
"error.code.UNAUTHENTICATED": "Your session has ended. Sign in again.",
|
|
207
|
+
"error.code.TOKEN_MUTATION_DENIED": "An API token cannot make this change; use a signed-in session.",
|
|
208
|
+
"error.code.SUBJECT_KEY_DESTROYED": "The audit data key of this subject was destroyed, so nothing may name the subject again.",
|
|
209
|
+
"error.code.ERASURE_REQUEST_EXPIRED": "No running platform answered this erasure request within 24 hours."
|
|
210
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
{
|
|
2
|
+
"module.name": "Audyt i cykl życia danych",
|
|
3
|
+
"navigation.dataClasses": "Klasy danych",
|
|
4
|
+
"navigation.dataClassesDescription": "Co przechowuje ten obszar roboczy i jak długo trzymana jest każda klasa.",
|
|
5
|
+
"navigation.sweeps": "Przebiegi retencji",
|
|
6
|
+
"navigation.sweepsDescription": "Każdy przebieg retencji, co usunął i dlaczego został odrzucony.",
|
|
7
|
+
"navigation.exports": "Eksporty",
|
|
8
|
+
"navigation.exportsDescription": "Archiwa tego obszaru roboczego pobrane przez operatora.",
|
|
9
|
+
"common.administration": "Administracja",
|
|
10
|
+
"common.refresh": "Odśwież",
|
|
11
|
+
"common.refreshing": "Odświeżanie…",
|
|
12
|
+
"common.saving": "Zapisywanie…",
|
|
13
|
+
"common.close": "Zamknij",
|
|
14
|
+
"common.actions": "Akcje",
|
|
15
|
+
"common.filters": "Filtry",
|
|
16
|
+
"common.messages": "Komunikaty",
|
|
17
|
+
"common.accessDenied": "Brak dostępu",
|
|
18
|
+
"common.never": "Nigdy",
|
|
19
|
+
"common.none": "Brak",
|
|
20
|
+
"common.yes": "Tak",
|
|
21
|
+
"common.no": "Nie",
|
|
22
|
+
"retention.kept": "Przechowywane do usunięcia",
|
|
23
|
+
"retention.days": "{days} dni",
|
|
24
|
+
"retention.defaultKept": "Domyślnie: przechowywane do usunięcia",
|
|
25
|
+
"retention.defaultDays": "Domyślnie: {days} dni",
|
|
26
|
+
"retention.mode.default": "Zgodnie z domyślną wartością modułu",
|
|
27
|
+
"retention.mode.days": "Przechowuj przez określoną liczbę dni",
|
|
28
|
+
"retention.mode.none": "Przechowuj do usunięcia przez człowieka",
|
|
29
|
+
"reason.BACKUP_MANIFEST_MISSING": "To wdrożenie nie ma zapisanego manifestu kopii zapasowej.",
|
|
30
|
+
"reason.LEGAL_HOLD": "Tę klasę obejmuje blokada prawna.",
|
|
31
|
+
"reason.OWNER_SWEEP_FAILED": "Moduł właściciela nie zdołał usunąć wierszy.",
|
|
32
|
+
"reason.BATCH_CAP_REACHED": "Przebieg osiągnął limit partii i będzie kontynuowany w następnym interwale.",
|
|
33
|
+
"dataClasses.title": "Klasy danych",
|
|
34
|
+
"dataClasses.description": "Każda klasa zadeklarowana przez złożony moduł, okres przechowywania w tym obszarze roboczym i data ostatniego przebiegu.",
|
|
35
|
+
"dataClasses.denied": "Potrzebujesz uprawnienia do rejestru audytu, aby zobaczyć, co przechowuje ten obszar roboczy.",
|
|
36
|
+
"dataClasses.holdNothing": "Te moduły nie przechowują żadnej klasy danych: {modules}.",
|
|
37
|
+
"dataClasses.note": "Usuwanie odbywa się wewnątrz modułu właściciela. audit.core nigdy nie czyta tabel innego modułu.",
|
|
38
|
+
"dataClasses.table.title": "Zadeklarowane klasy",
|
|
39
|
+
"dataClasses.table.caption": "Klasy danych tego obszaru roboczego",
|
|
40
|
+
"dataClasses.table.count": "Liczba klas: {count}",
|
|
41
|
+
"dataClasses.table.loading": "Wczytywanie klas danych…",
|
|
42
|
+
"dataClasses.column.classId": "Klasa",
|
|
43
|
+
"dataClasses.column.moduleId": "Moduł",
|
|
44
|
+
"dataClasses.column.retention": "Retencja",
|
|
45
|
+
"dataClasses.column.defaultRetention": "Domyślna modułu",
|
|
46
|
+
"dataClasses.column.exportable": "Eksportowalna",
|
|
47
|
+
"dataClasses.column.lastSweptAt": "Ostatni przebieg",
|
|
48
|
+
"dataClasses.search.label": "Szukaj klas danych",
|
|
49
|
+
"dataClasses.search.placeholder": "Identyfikator lub nazwa klasy",
|
|
50
|
+
"dataClasses.filter.module": "Moduł",
|
|
51
|
+
"dataClasses.filter.allModules": "Wszystkie moduły",
|
|
52
|
+
"dataClasses.empty.title": "Brak klas danych",
|
|
53
|
+
"dataClasses.empty.hint": "Klasy pojawią się, gdy złożony moduł je zadeklaruje.",
|
|
54
|
+
"dataClasses.emptyFiltered.title": "Brak pasujących klas",
|
|
55
|
+
"dataClasses.emptyFiltered.hint": "Wyczyść wyszukiwanie lub filtr modułu.",
|
|
56
|
+
"dataClasses.action.setRetention": "Ustaw retencję",
|
|
57
|
+
"dataClasses.action.save": "Zapisz okres",
|
|
58
|
+
"dataClasses.form.title": "Okres retencji",
|
|
59
|
+
"dataClasses.form.mode": "Okres",
|
|
60
|
+
"dataClasses.form.modeHelp": "Domyślna wartość modułu obowiązuje, dopóki obszar roboczy nie ustawi własnej.",
|
|
61
|
+
"dataClasses.form.notSweepable": "Ta klasa nie deklaruje operacji czyszczenia, więc jest przechowywana do usunięcia przez człowieka.",
|
|
62
|
+
"dataClasses.form.days": "Dni",
|
|
63
|
+
"dataClasses.form.daysHelp": "Od 1 do 36500 dni. Zero jest odrzucane.",
|
|
64
|
+
"dataClasses.form.daysInvalid": "Podaj całkowitą liczbę dni od 1 do 36500.",
|
|
65
|
+
"dataClasses.form.constraint": "Zmiana okresu jest zapisywana w rejestrze audytu.",
|
|
66
|
+
"dataClasses.notice.saved": "Okres retencji zapisany.",
|
|
67
|
+
"dataClasses.error.load": "Nie udało się wczytać rejestru klas danych.",
|
|
68
|
+
"dataClasses.error.save": "Nie udało się zapisać okresu retencji.",
|
|
69
|
+
"sweeps.title": "Przebiegi retencji",
|
|
70
|
+
"sweeps.description": "Jeden wiersz na przebieg retencji jednej klasy, z użytą granicą czasu i liczbą wierszy usuniętych przez moduł właściciela.",
|
|
71
|
+
"sweeps.denied": "Potrzebujesz uprawnienia do rejestru audytu, aby zobaczyć rejestr przebiegów.",
|
|
72
|
+
"sweeps.note": "Odrzucenie obowiązuje, dopóki wdrożenie go nie rozwiąże; następny przebieg go nie powtarza.",
|
|
73
|
+
"sweeps.table.title": "Rejestr przebiegów",
|
|
74
|
+
"sweeps.table.caption": "Przebiegi retencji tego obszaru roboczego",
|
|
75
|
+
"sweeps.table.count": "Liczba przebiegów: {count}",
|
|
76
|
+
"sweeps.table.loading": "Wczytywanie przebiegów…",
|
|
77
|
+
"sweeps.column.occurredAt": "Kiedy",
|
|
78
|
+
"sweeps.column.dataClass": "Klasa danych",
|
|
79
|
+
"sweeps.column.cutoff": "Granica czasu",
|
|
80
|
+
"sweeps.column.removed": "Usunięto",
|
|
81
|
+
"sweeps.column.status": "Status",
|
|
82
|
+
"sweeps.column.reason": "Powód",
|
|
83
|
+
"sweeps.status.completed": "Zakończony",
|
|
84
|
+
"sweeps.status.partial": "Częściowy",
|
|
85
|
+
"sweeps.status.refused": "Odrzucony",
|
|
86
|
+
"sweeps.search.label": "Szukaj przebiegów",
|
|
87
|
+
"sweeps.search.placeholder": "Identyfikator klasy",
|
|
88
|
+
"sweeps.filter.status": "Status",
|
|
89
|
+
"sweeps.filter.allStatuses": "Wszystkie statusy",
|
|
90
|
+
"sweeps.empty.title": "Żaden przebieg jeszcze nie ruszył",
|
|
91
|
+
"sweeps.empty.hint": "Przebieg pojawi się, gdy klasa ma okres i minie jej pierwszy interwał.",
|
|
92
|
+
"sweeps.emptyFiltered.title": "Brak pasujących przebiegów",
|
|
93
|
+
"sweeps.emptyFiltered.hint": "Wyczyść wyszukiwanie lub filtr statusu.",
|
|
94
|
+
"sweeps.error.load": "Nie udało się wczytać rejestru przebiegów.",
|
|
95
|
+
"exports.title": "Eksporty",
|
|
96
|
+
"exports.description": "Każde archiwum tego obszaru roboczego pobrane przez operatora, wraz ze skrótem zapisanego pliku.",
|
|
97
|
+
"exports.denied": "Potrzebujesz uprawnienia do rejestru audytu, aby zobaczyć historię eksportów.",
|
|
98
|
+
"exports.note": "Eksport powstaje przez polecenie operatora; pobieranie z tego ekranu czeka na magazyn plików.",
|
|
99
|
+
"exports.table.title": "Historia eksportów",
|
|
100
|
+
"exports.table.caption": "Eksporty tego obszaru roboczego",
|
|
101
|
+
"exports.table.count": "Liczba eksportów: {count}",
|
|
102
|
+
"exports.table.loading": "Wczytywanie eksportów…",
|
|
103
|
+
"exports.column.startedAt": "Rozpoczęcie i zakończenie",
|
|
104
|
+
"exports.column.status": "Status",
|
|
105
|
+
"exports.column.classes": "Klasy",
|
|
106
|
+
"exports.column.rows": "Wiersze",
|
|
107
|
+
"exports.column.archiveDigest": "Skrót archiwum",
|
|
108
|
+
"exports.column.requestedBy": "Zlecone przez",
|
|
109
|
+
"exports.status.started": "W toku",
|
|
110
|
+
"exports.status.completed": "Zakończony",
|
|
111
|
+
"exports.status.failed": "Nieudany",
|
|
112
|
+
"exports.search.label": "Szukaj eksportów",
|
|
113
|
+
"exports.search.placeholder": "Operator",
|
|
114
|
+
"exports.filter.status": "Status",
|
|
115
|
+
"exports.filter.allStatuses": "Wszystkie statusy",
|
|
116
|
+
"exports.empty.title": "Brak eksportów",
|
|
117
|
+
"exports.empty.hint": "Operator wykonuje eksport poleceniem audit export.",
|
|
118
|
+
"exports.emptyFiltered.title": "Brak pasujących eksportów",
|
|
119
|
+
"exports.emptyFiltered.hint": "Wyczyść wyszukiwanie lub filtr statusu.",
|
|
120
|
+
"exports.error.load": "Nie udało się wczytać historii eksportów.",
|
|
121
|
+
"pagination.label": "Strony",
|
|
122
|
+
"pagination.previous": "Poprzednia",
|
|
123
|
+
"pagination.next": "Następna",
|
|
124
|
+
"pagination.size": "Wierszy na stronę",
|
|
125
|
+
"pagination.summary": "Strona {page} z {pages}, wiersze od {from} do {to} z {total}",
|
|
126
|
+
"settings.sweepIntervalMinutes.label": "Interwał przebiegu retencji (minuty)",
|
|
127
|
+
"settings.sweepIntervalMinutes.description": "Jak często czyszczenie retencyjne szuka klas, których okres minął. Nowa wartość obowiązuje przy następnym starcie platformy.",
|
|
128
|
+
"settings.sweepBatchSize.label": "Rozmiar partii przebiegu retencji",
|
|
129
|
+
"settings.sweepBatchSize.description": "Liczba wierszy usuwanych przez moduł właściciela w jednym wywołaniu, na klasę, aż wróci mniej niż tyle.",
|
|
130
|
+
"error.request": "Operacja audytu nie powiodła się.",
|
|
131
|
+
"error.code.DATA_CLASS_NOT_FOUND": "Żaden złożony moduł nie deklaruje tej klasy danych.",
|
|
132
|
+
"error.code.DATA_CLASS_NOT_SWEEPABLE": "Ta klasa nie deklaruje operacji czyszczenia, więc może być tylko przechowywana do usunięcia przez człowieka.",
|
|
133
|
+
"error.code.INVALID_INPUT": "Przesłana wartość wykracza poza to, co przyjmuje to pole.",
|
|
134
|
+
"error.code.CSRF_REJECTED": "Nie udało się zweryfikować sesji. Odśwież stronę i spróbuj ponownie.",
|
|
135
|
+
"navigation.holds": "Blokady prawne",
|
|
136
|
+
"navigation.holdsDescription": "Czego ten obszar roboczy nie może usunąć i dlaczego.",
|
|
137
|
+
"reason.HOLD_ACTIVE": "Tę klasę obejmuje blokada prawna.",
|
|
138
|
+
"reason.SEGMENT_NOT_SEALED": "Te zdarzenia nie trafiły jeszcze do żadnego pliku segmentu; zapieczętuj łańcuch, zanim retencja będzie mogła je usunąć.",
|
|
139
|
+
"holds.title": "Blokady prawne",
|
|
140
|
+
"holds.description": "Każde trwałe polecenie nieusuwania danych, jego zakres, kto je nałożył i dlaczego.",
|
|
141
|
+
"holds.denied": "Aby zobaczyć blokady prawne tego obszaru roboczego, potrzebujesz uprawnienia do rejestru audytu.",
|
|
142
|
+
"holds.note": "Dopóki blokada obowiązuje, przebieg retencji i usunięcie danych są odmawiane dla wszystkiego, co obejmuje, i zapisują to w rejestrze.",
|
|
143
|
+
"holds.table.title": "Blokady",
|
|
144
|
+
"holds.table.caption": "Blokady prawne tego obszaru roboczego",
|
|
145
|
+
"holds.table.count": "Blokady: {count}",
|
|
146
|
+
"holds.table.loading": "Wczytywanie blokad prawnych…",
|
|
147
|
+
"holds.column.placedAt": "Nałożono",
|
|
148
|
+
"holds.column.scope": "Obejmuje",
|
|
149
|
+
"holds.column.reason": "Powód",
|
|
150
|
+
"holds.column.placedBy": "Nałożył",
|
|
151
|
+
"holds.column.status": "Status",
|
|
152
|
+
"holds.status.active": "Aktywna",
|
|
153
|
+
"holds.status.lifted": "Zdjęta",
|
|
154
|
+
"holds.scope.account": "Jedno konto",
|
|
155
|
+
"holds.scope.workspace": "Cały obszar roboczy",
|
|
156
|
+
"holds.scope.data-class": "Jedna klasa danych",
|
|
157
|
+
"holds.scope.date-range": "Zakres dat",
|
|
158
|
+
"holds.scope.wholeWorkspace": "Wszystko, co przechowuje ten obszar roboczy",
|
|
159
|
+
"holds.search.label": "Szukaj blokad prawnych",
|
|
160
|
+
"holds.search.placeholder": "Powód, konto lub klasa",
|
|
161
|
+
"holds.filter.status": "Status",
|
|
162
|
+
"holds.filter.allStatuses": "Wszystkie statusy",
|
|
163
|
+
"holds.filter.scope": "Zakres",
|
|
164
|
+
"holds.filter.allScopes": "Wszystkie zakresy",
|
|
165
|
+
"holds.empty.title": "Brak blokad prawnych",
|
|
166
|
+
"holds.empty.hint": "Nałóż blokadę, gdy dane muszą pozostać na czas trwania sprawy.",
|
|
167
|
+
"holds.emptyFiltered.title": "Żadna blokada nie pasuje",
|
|
168
|
+
"holds.emptyFiltered.hint": "Wyczyść wyszukiwanie lub filtry.",
|
|
169
|
+
"holds.action.place": "Nałóż blokadę",
|
|
170
|
+
"holds.action.lift": "Zdejmij",
|
|
171
|
+
"holds.form.placeTitle": "Nałóż blokadę prawną",
|
|
172
|
+
"holds.form.placeSubtitle": "Nic, co obejmuje, nie zostanie usunięte, dopóki jej nie zdejmiesz.",
|
|
173
|
+
"holds.form.liftTitle": "Zdejmij tę blokadę prawną",
|
|
174
|
+
"holds.form.scope": "Zakres",
|
|
175
|
+
"holds.form.scopeHelp": "Wybierz, czego dotyczy blokada; pola poniżej zawężają ją dalej.",
|
|
176
|
+
"holds.form.account": "Konto",
|
|
177
|
+
"holds.form.accountHelp": "Wymagane dla blokady konta; opcjonalne jako zawężenie każdej innej.",
|
|
178
|
+
"holds.form.class": "Klasa danych",
|
|
179
|
+
"holds.form.classHelp": "Wymagane dla blokady klasy danych, na przykład agents.core.runs.",
|
|
180
|
+
"holds.form.from": "Od",
|
|
181
|
+
"holds.form.to": "Do",
|
|
182
|
+
"holds.form.reason": "Powód",
|
|
183
|
+
"holds.form.reasonHelp": "Dlaczego dane muszą pozostać. Do 400 znaków, zapisywane w dzienniku audytu.",
|
|
184
|
+
"holds.form.liftReason": "Powód zdjęcia",
|
|
185
|
+
"holds.form.liftReasonHelp": "Dlaczego dane mogą znów być usuwane. Zapisywane w dzienniku audytu.",
|
|
186
|
+
"holds.form.constraint": "Nałożenie blokady jest zapisywane w dzienniku audytu.",
|
|
187
|
+
"holds.form.liftConstraint": "Zdjęcie blokady jest zapisywane w dzienniku audytu.",
|
|
188
|
+
"holds.form.reasonInvalid": "Podaj powód o długości od 1 do 400 znaków.",
|
|
189
|
+
"holds.form.accountRequired": "Blokada konta wymaga wskazania konta, które obejmuje.",
|
|
190
|
+
"holds.form.classRequired": "Blokada klasy danych wymaga wskazania klasy, którą obejmuje.",
|
|
191
|
+
"holds.form.rangeRequired": "Blokada zakresu dat wymaga obu końców zakresu.",
|
|
192
|
+
"holds.notice.placed": "Blokada prawna nałożona.",
|
|
193
|
+
"holds.notice.lifted": "Blokada prawna zdjęta.",
|
|
194
|
+
"holds.error.load": "Nie udało się wczytać blokad prawnych.",
|
|
195
|
+
"holds.error.place": "Nie udało się nałożyć blokady prawnej.",
|
|
196
|
+
"holds.error.lift": "Nie udało się zdjąć blokady prawnej.",
|
|
197
|
+
"error.code.HOLD_ACTIVE": "Te dane obejmuje blokada prawna, więc nie można ich usunąć.",
|
|
198
|
+
"error.code.HOLD_NOT_FOUND": "Ten obszar roboczy nie ma takiej blokady prawnej.",
|
|
199
|
+
"error.code.HOLD_SCOPE_INVALID": "Zakres blokady jest niepełny albo wewnętrznie sprzeczny.",
|
|
200
|
+
"error.code.HOLD_LIMIT_REACHED": "Ten obszar roboczy osiągnął już maksymalną liczbę aktywnych blokad.",
|
|
201
|
+
"error.code.SEGMENT_NOT_SEALED": "Te zdarzenia audytu nie trafiły jeszcze do pliku segmentu, więc retencja nie może ich usunąć.",
|
|
202
|
+
"holds.column.accountId": "Konto",
|
|
203
|
+
"holds.column.classId": "Klasa danych",
|
|
204
|
+
"reason.ERASURE_REQUEST_EXPIRED": "Żadna działająca platforma nie odpowiedziała na to żądanie usunięcia w ciągu 24 godzin.",
|
|
205
|
+
"error.code.FORBIDDEN": "Twoje konto nie ma uprawnienia wymaganego do tej operacji.",
|
|
206
|
+
"error.code.UNAUTHENTICATED": "Sesja wygasła. Zaloguj się ponownie.",
|
|
207
|
+
"error.code.TOKEN_MUTATION_DENIED": "Token API nie może wykonać tej zmiany; użyj zalogowanej sesji.",
|
|
208
|
+
"error.code.SUBJECT_KEY_DESTROYED": "Klucz danych audytu tego podmiotu został zniszczony, więc nic nie może go ponownie nazwać.",
|
|
209
|
+
"error.code.ERASURE_REQUEST_EXPIRED": "Żadna działająca platforma nie odpowiedziała na to żądanie usunięcia w ciągu 24 godzin."
|
|
210
|
+
}
|
package/modules/auth/README.md
CHANGED
|
@@ -15,26 +15,34 @@
|
|
|
15
15
|
|
|
16
16
|
## Routes
|
|
17
17
|
|
|
18
|
-
| Method | Route
|
|
19
|
-
| ------ |
|
|
20
|
-
| GET | `/api/auth/config`
|
|
21
|
-
| GET | `/api/auth/session`
|
|
22
|
-
| POST | `/api/auth/sign-up`
|
|
23
|
-
| POST | `/api/auth/sign-in`
|
|
24
|
-
| POST | `/api/auth/switch-tenant`
|
|
25
|
-
| POST | `/api/auth/sign-out`
|
|
26
|
-
| POST | `/api/auth/password`
|
|
27
|
-
| POST | `/api/auth/workspace`
|
|
28
|
-
| GET | `/api/auth/api-tokens`
|
|
29
|
-
| POST | `/api/auth/api-tokens`
|
|
30
|
-
| POST | `/api/auth/api-tokens/revoke`
|
|
31
|
-
| GET | `/api/auth/roles`
|
|
32
|
-
| POST | `/api/auth/roles`
|
|
33
|
-
| POST | `/api/auth/roles/update`
|
|
34
|
-
| POST | `/api/auth/roles/delete`
|
|
35
|
-
| GET | `/api/auth/audit`
|
|
36
|
-
| GET | `/api/auth/sessions`
|
|
37
|
-
| POST | `/api/auth/sessions/revoke`
|
|
18
|
+
| Method | Route | Purpose |
|
|
19
|
+
| ------ | ----------------------------------- | ----------------------------------------- |
|
|
20
|
+
| GET | `/api/auth/config` | Public sign-in configuration |
|
|
21
|
+
| GET | `/api/auth/session` | Resolve the current session |
|
|
22
|
+
| POST | `/api/auth/sign-up` | Create a tenant owner account |
|
|
23
|
+
| POST | `/api/auth/sign-in` | Create a new session |
|
|
24
|
+
| POST | `/api/auth/switch-tenant` | Rotate into another membership |
|
|
25
|
+
| POST | `/api/auth/sign-out` | Revoke the current session |
|
|
26
|
+
| POST | `/api/auth/password` | Change the own password |
|
|
27
|
+
| POST | `/api/auth/workspace` | Rename the active workspace |
|
|
28
|
+
| GET | `/api/auth/api-tokens` | List tenant API tokens |
|
|
29
|
+
| POST | `/api/auth/api-tokens` | Issue an API token |
|
|
30
|
+
| POST | `/api/auth/api-tokens/revoke` | Revoke an API token |
|
|
31
|
+
| GET | `/api/auth/roles` | Tenant roles and grantable scopes |
|
|
32
|
+
| POST | `/api/auth/roles` | Create a custom role |
|
|
33
|
+
| POST | `/api/auth/roles/update` | Change a custom role |
|
|
34
|
+
| POST | `/api/auth/roles/delete` | Delete an unused custom role |
|
|
35
|
+
| GET | `/api/auth/audit` | Page through the tenant audit trail |
|
|
36
|
+
| GET | `/api/auth/sessions` | List the own sessions |
|
|
37
|
+
| POST | `/api/auth/sessions/revoke` | End an own session, or all of a member's |
|
|
38
|
+
| GET | `/api/auth/providers` | Workspace and platform identity providers |
|
|
39
|
+
| POST | `/api/auth/providers` | Create a workspace identity provider |
|
|
40
|
+
| POST | `/api/auth/providers/update` | Change a workspace identity provider |
|
|
41
|
+
| POST | `/api/auth/providers/enable` | Offer it on the sign-in screen |
|
|
42
|
+
| POST | `/api/auth/providers/disable` | Stop offering it |
|
|
43
|
+
| POST | `/api/auth/providers/rotate-secret` | Replace its client secret |
|
|
44
|
+
| POST | `/api/auth/providers/delete` | Delete a disabled provider |
|
|
45
|
+
| POST | `/api/auth/memberships/status` | Disable or re-enable one membership |
|
|
38
46
|
|
|
39
47
|
`GET /api/settings` and `POST /api/settings/update` are served by system.core;
|
|
40
48
|
auth.core owns the store and appends the `settings.updated` audit row through
|
|
@@ -48,6 +56,42 @@ API tokens are machine credentials for clients that cannot hold a browser sessio
|
|
|
48
56
|
|
|
49
57
|
A client presents it as `Authorization: Bearer clat_...`. The authentication middleware resolves it only when no session cookie is present, and the effective scopes are the intersection of the token's recorded scopes with the membership's current scopes. Session-guarded mutations reject tokens with `TOKEN_MUTATION_DENIED`, so a token can read platform data and prove sandbox authority but cannot drive CSRF-protected writes. Revocation, expiry, and scope removal take effect on the next request.
|
|
50
58
|
|
|
59
|
+
## Identity providers
|
|
60
|
+
|
|
61
|
+
A workspace adds OIDC providers of its own in Administration, Identity
|
|
62
|
+
providers, behind `auth.providers.read` and `auth.providers.manage`. The issuer
|
|
63
|
+
is verified through its discovery document when it is saved, the endpoints that
|
|
64
|
+
document publishes are stored with it, and the client secret is sealed with the
|
|
65
|
+
deployment authentication key (`FD_AUTH_MFA_KEY`) under a provider-specific
|
|
66
|
+
context. Nothing returns the secret afterwards: administrators see its
|
|
67
|
+
fingerprint, and `pnpm flowdular auth secrets-rotate` re-seals provider secrets
|
|
68
|
+
beside the enrolled TOTP factors.
|
|
69
|
+
|
|
70
|
+
Sign-in is routed by workspace. `GET /api/auth/config?workspace=<slug>` answers
|
|
71
|
+
with the password form, that workspace's enabled providers and the platform
|
|
72
|
+
providers from `FD_AUTH_OIDC_PROVIDERS`. A workspace provider starts at
|
|
73
|
+
`/api/auth/oidc/<workspace>/<key>/start`; the signed state cookie binds both,
|
|
74
|
+
and a callback whose state names another workspace is refused. A platform
|
|
75
|
+
provider keeps its own `/api/auth/oidc/<id>/start` route and keeps binding
|
|
76
|
+
identities without a workspace.
|
|
77
|
+
|
|
78
|
+
Just-in-time provisioning is off per provider. Turned on, it takes a non-empty
|
|
79
|
+
list of allowed e-mail domains and the role a new member receives (`member` by
|
|
80
|
+
default). A verified address inside those domains creates or reuses the account,
|
|
81
|
+
creates an active membership with the role's scopes and an `auth.member.provisioned`
|
|
82
|
+
audit row. Without it, an external sign-in needs an existing membership; an
|
|
83
|
+
address outside the domains is refused before anything is written.
|
|
84
|
+
|
|
85
|
+
## Membership status
|
|
86
|
+
|
|
87
|
+
Every membership carries its own status. `POST /api/auth/memberships/status`
|
|
88
|
+
(`users.members.manage`, session and CSRF required) disables or re-enables the
|
|
89
|
+
membership of the acting workspace: disabling revokes that workspace's sessions
|
|
90
|
+
and API tokens for the account, refuses its sign-in and tenant switch, and
|
|
91
|
+
leaves the person's other workspaces untouched. Re-enabling restores sign-in;
|
|
92
|
+
the revoked tokens stay revoked. The account status column stays what it was,
|
|
93
|
+
the deployment operator's platform-level block.
|
|
94
|
+
|
|
51
95
|
## Configuration
|
|
52
96
|
|
|
53
97
|
| Variable | Default |
|
|
@@ -158,10 +202,10 @@ The command mints that token itself rather than going through
|
|
|
158
202
|
`requestPasswordReset` or `createTenantInvitation`. Both of those hand their
|
|
159
203
|
token to the injected `AuthMailDelivery` adapter and to nobody else:
|
|
160
204
|
`createTenantInvitation` refuses with `MAIL_NOT_CONFIGURED` when none is
|
|
161
|
-
composed, and `requestPasswordReset`
|
|
162
|
-
|
|
163
|
-
standing at a shell on the server
|
|
164
|
-
the one channel that always exists.
|
|
205
|
+
composed, and `requestPasswordReset` answers generically while the server logs
|
|
206
|
+
that the message was not delivered. A deployment that configures no transport
|
|
207
|
+
still has an operator standing at a shell on the server as its delivery channel,
|
|
208
|
+
and the terminal is the one channel that always exists.
|
|
165
209
|
|
|
166
210
|
`--password-env` takes the **name** of an environment variable, never the
|
|
167
211
|
password. A password passed as a flag value lands in shell history and in the
|
|
@@ -196,8 +240,8 @@ pnpm flowdular setup quick --apply --confirm reset-local-auth
|
|
|
196
240
|
|
|
197
241
|
The command resets only the workspace's local embedded database, and refuses to run when a PostgreSQL server is configured. It creates:
|
|
198
242
|
|
|
199
|
-
- `admin@example.com` / `
|
|
200
|
-
- `user@example.com` / `
|
|
243
|
+
- `admin@example.com` / `Owner!23456789`, an owner of Operations Demo and Finance Demo.
|
|
244
|
+
- `user@example.com` / `Member!2345678`, a reduced-scope member of Operations Demo.
|
|
201
245
|
|
|
202
246
|
The application shell exposes the active tenant selector. Switching it rotates the session cookie and reloads the target membership's role and scopes. All seed values are public development defaults. The command refuses a configured PostgreSQL server and non-development environments. `auth greenfield` remains the module-owned equivalent of `setup quick`.
|
|
203
247
|
|
|
@@ -210,6 +254,10 @@ tenant invitations, TOTP MFA, and OIDC use injected deployment configuration:
|
|
|
210
254
|
`FD_AUTH_MFA_KEY` is a 32-byte AES key encoded as 64 hexadecimal characters
|
|
211
255
|
or base64url, `FD_AUTH_PUBLIC_ORIGIN` is the public HTTPS origin, and
|
|
212
256
|
`FD_AUTH_OIDC_PROVIDERS` is a JSON list of configured OIDC endpoints and
|
|
213
|
-
credentials
|
|
214
|
-
|
|
215
|
-
|
|
257
|
+
credentials, which every workspace is offered read-only. Email delivery is
|
|
258
|
+
injected through `AuthMailDelivery` and selected
|
|
259
|
+
by `FD_AUTH_MAIL_TRANSPORT`: `smtp` relays through `FD_AUTH_SMTP_URL` and
|
|
260
|
+
`FD_AUTH_MAIL_FROM`, while `development` (also reached by the older
|
|
261
|
+
`FD_AUTH_DEVELOPMENT_MAIL=true`) keeps messages in memory and is refused in
|
|
262
|
+
production. No transport logs or exposes a raw token, an address, or the relay
|
|
263
|
+
credentials.
|