@defai.digital/contracts 13.0.3
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/LICENSE +214 -0
- package/dist/ability/v1/index.d.ts +5 -0
- package/dist/ability/v1/index.d.ts.map +1 -0
- package/dist/ability/v1/index.js +5 -0
- package/dist/ability/v1/index.js.map +1 -0
- package/dist/ability/v1/schema.d.ts +288 -0
- package/dist/ability/v1/schema.d.ts.map +1 -0
- package/dist/ability/v1/schema.js +138 -0
- package/dist/ability/v1/schema.js.map +1 -0
- package/dist/agent/v1/index.d.ts +8 -0
- package/dist/agent/v1/index.d.ts.map +1 -0
- package/dist/agent/v1/index.js +31 -0
- package/dist/agent/v1/index.js.map +1 -0
- package/dist/agent/v1/schema.d.ts +4055 -0
- package/dist/agent/v1/schema.d.ts.map +1 -0
- package/dist/agent/v1/schema.js +970 -0
- package/dist/agent/v1/schema.js.map +1 -0
- package/dist/agent/v1/storage-port.d.ts +172 -0
- package/dist/agent/v1/storage-port.d.ts.map +1 -0
- package/dist/agent/v1/storage-port.js +10 -0
- package/dist/agent/v1/storage-port.js.map +1 -0
- package/dist/analysis/v1/index.d.ts +7 -0
- package/dist/analysis/v1/index.d.ts.map +1 -0
- package/dist/analysis/v1/index.js +21 -0
- package/dist/analysis/v1/index.js.map +1 -0
- package/dist/analysis/v1/schema.d.ts +348 -0
- package/dist/analysis/v1/schema.d.ts.map +1 -0
- package/dist/analysis/v1/schema.js +252 -0
- package/dist/analysis/v1/schema.js.map +1 -0
- package/dist/cli/v1/index.d.ts +8 -0
- package/dist/cli/v1/index.d.ts.map +1 -0
- package/dist/cli/v1/index.js +46 -0
- package/dist/cli/v1/index.js.map +1 -0
- package/dist/cli/v1/output.d.ts +347 -0
- package/dist/cli/v1/output.d.ts.map +1 -0
- package/dist/cli/v1/output.js +288 -0
- package/dist/cli/v1/output.js.map +1 -0
- package/dist/cli/v1/schema.d.ts +494 -0
- package/dist/cli/v1/schema.d.ts.map +1 -0
- package/dist/cli/v1/schema.js +342 -0
- package/dist/cli/v1/schema.js.map +1 -0
- package/dist/config/v1/config.d.ts +887 -0
- package/dist/config/v1/config.d.ts.map +1 -0
- package/dist/config/v1/config.js +348 -0
- package/dist/config/v1/config.js.map +1 -0
- package/dist/config/v1/errors.d.ts +84 -0
- package/dist/config/v1/errors.d.ts.map +1 -0
- package/dist/config/v1/errors.js +150 -0
- package/dist/config/v1/errors.js.map +1 -0
- package/dist/config/v1/events.d.ts +416 -0
- package/dist/config/v1/events.d.ts.map +1 -0
- package/dist/config/v1/events.js +204 -0
- package/dist/config/v1/events.js.map +1 -0
- package/dist/config/v1/index.d.ts +11 -0
- package/dist/config/v1/index.d.ts.map +1 -0
- package/dist/config/v1/index.js +49 -0
- package/dist/config/v1/index.js.map +1 -0
- package/dist/config/v1/operations.d.ts +293 -0
- package/dist/config/v1/operations.d.ts.map +1 -0
- package/dist/config/v1/operations.js +172 -0
- package/dist/config/v1/operations.js.map +1 -0
- package/dist/config/v1/provider-config.d.ts +124 -0
- package/dist/config/v1/provider-config.d.ts.map +1 -0
- package/dist/config/v1/provider-config.js +123 -0
- package/dist/config/v1/provider-config.js.map +1 -0
- package/dist/constants.d.ts +292 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +370 -0
- package/dist/constants.js.map +1 -0
- package/dist/context/v1/index.d.ts +5 -0
- package/dist/context/v1/index.d.ts.map +1 -0
- package/dist/context/v1/index.js +13 -0
- package/dist/context/v1/index.js.map +1 -0
- package/dist/context/v1/schema.d.ts +289 -0
- package/dist/context/v1/schema.d.ts.map +1 -0
- package/dist/context/v1/schema.js +145 -0
- package/dist/context/v1/schema.js.map +1 -0
- package/dist/cross-cutting/v1/dead-letter.d.ts +305 -0
- package/dist/cross-cutting/v1/dead-letter.d.ts.map +1 -0
- package/dist/cross-cutting/v1/dead-letter.js +172 -0
- package/dist/cross-cutting/v1/dead-letter.js.map +1 -0
- package/dist/cross-cutting/v1/idempotency.d.ts +222 -0
- package/dist/cross-cutting/v1/idempotency.d.ts.map +1 -0
- package/dist/cross-cutting/v1/idempotency.js +170 -0
- package/dist/cross-cutting/v1/idempotency.js.map +1 -0
- package/dist/cross-cutting/v1/index.d.ts +14 -0
- package/dist/cross-cutting/v1/index.d.ts.map +1 -0
- package/dist/cross-cutting/v1/index.js +18 -0
- package/dist/cross-cutting/v1/index.js.map +1 -0
- package/dist/cross-cutting/v1/retention.d.ts +347 -0
- package/dist/cross-cutting/v1/retention.d.ts.map +1 -0
- package/dist/cross-cutting/v1/retention.js +178 -0
- package/dist/cross-cutting/v1/retention.js.map +1 -0
- package/dist/cross-cutting/v1/saga.d.ts +358 -0
- package/dist/cross-cutting/v1/saga.d.ts.map +1 -0
- package/dist/cross-cutting/v1/saga.js +219 -0
- package/dist/cross-cutting/v1/saga.js.map +1 -0
- package/dist/design/v1/index.d.ts +5 -0
- package/dist/design/v1/index.d.ts.map +1 -0
- package/dist/design/v1/index.js +5 -0
- package/dist/design/v1/index.js.map +1 -0
- package/dist/design/v1/schema.d.ts +748 -0
- package/dist/design/v1/schema.d.ts.map +1 -0
- package/dist/design/v1/schema.js +316 -0
- package/dist/design/v1/schema.js.map +1 -0
- package/dist/discussion/v1/index.d.ts +10 -0
- package/dist/discussion/v1/index.d.ts.map +1 -0
- package/dist/discussion/v1/index.js +21 -0
- package/dist/discussion/v1/index.js.map +1 -0
- package/dist/discussion/v1/schema.d.ts +1186 -0
- package/dist/discussion/v1/schema.d.ts.map +1 -0
- package/dist/discussion/v1/schema.js +560 -0
- package/dist/discussion/v1/schema.js.map +1 -0
- package/dist/file-system/v1/index.d.ts +7 -0
- package/dist/file-system/v1/index.d.ts.map +1 -0
- package/dist/file-system/v1/index.js +7 -0
- package/dist/file-system/v1/index.js.map +1 -0
- package/dist/file-system/v1/schema.d.ts +644 -0
- package/dist/file-system/v1/schema.d.ts.map +1 -0
- package/dist/file-system/v1/schema.js +278 -0
- package/dist/file-system/v1/schema.js.map +1 -0
- package/dist/guard/v1/index.d.ts +9 -0
- package/dist/guard/v1/index.d.ts.map +1 -0
- package/dist/guard/v1/index.js +10 -0
- package/dist/guard/v1/index.js.map +1 -0
- package/dist/guard/v1/schema.d.ts +308 -0
- package/dist/guard/v1/schema.d.ts.map +1 -0
- package/dist/guard/v1/schema.js +267 -0
- package/dist/guard/v1/schema.js.map +1 -0
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +117 -0
- package/dist/index.js.map +1 -0
- package/dist/iterate/v1/index.d.ts +5 -0
- package/dist/iterate/v1/index.d.ts.map +1 -0
- package/dist/iterate/v1/index.js +13 -0
- package/dist/iterate/v1/index.js.map +1 -0
- package/dist/iterate/v1/schema.d.ts +693 -0
- package/dist/iterate/v1/schema.d.ts.map +1 -0
- package/dist/iterate/v1/schema.js +244 -0
- package/dist/iterate/v1/schema.js.map +1 -0
- package/dist/mcp/v1/index.d.ts +8 -0
- package/dist/mcp/v1/index.d.ts.map +1 -0
- package/dist/mcp/v1/index.js +20 -0
- package/dist/mcp/v1/index.js.map +1 -0
- package/dist/mcp/v1/prompts/index.d.ts +5 -0
- package/dist/mcp/v1/prompts/index.d.ts.map +1 -0
- package/dist/mcp/v1/prompts/index.js +5 -0
- package/dist/mcp/v1/prompts/index.js.map +1 -0
- package/dist/mcp/v1/prompts/schema.d.ts +266 -0
- package/dist/mcp/v1/prompts/schema.d.ts.map +1 -0
- package/dist/mcp/v1/prompts/schema.js +138 -0
- package/dist/mcp/v1/prompts/schema.js.map +1 -0
- package/dist/mcp/v1/rate-limit.schema.d.ts +175 -0
- package/dist/mcp/v1/rate-limit.schema.d.ts.map +1 -0
- package/dist/mcp/v1/rate-limit.schema.js +164 -0
- package/dist/mcp/v1/rate-limit.schema.js.map +1 -0
- package/dist/mcp/v1/resources/index.d.ts +5 -0
- package/dist/mcp/v1/resources/index.d.ts.map +1 -0
- package/dist/mcp/v1/resources/index.js +5 -0
- package/dist/mcp/v1/resources/index.js.map +1 -0
- package/dist/mcp/v1/resources/schema.d.ts +169 -0
- package/dist/mcp/v1/resources/schema.d.ts.map +1 -0
- package/dist/mcp/v1/resources/schema.js +118 -0
- package/dist/mcp/v1/resources/schema.js.map +1 -0
- package/dist/mcp/v1/runtime/cache.d.ts +204 -0
- package/dist/mcp/v1/runtime/cache.d.ts.map +1 -0
- package/dist/mcp/v1/runtime/cache.js +92 -0
- package/dist/mcp/v1/runtime/cache.js.map +1 -0
- package/dist/mcp/v1/runtime/index.d.ts +5 -0
- package/dist/mcp/v1/runtime/index.d.ts.map +1 -0
- package/dist/mcp/v1/runtime/index.js +9 -0
- package/dist/mcp/v1/runtime/index.js.map +1 -0
- package/dist/mcp/v1/runtime/limits.d.ts +113 -0
- package/dist/mcp/v1/runtime/limits.d.ts.map +1 -0
- package/dist/mcp/v1/runtime/limits.js +95 -0
- package/dist/mcp/v1/runtime/limits.js.map +1 -0
- package/dist/mcp/v1/runtime/response.d.ts +467 -0
- package/dist/mcp/v1/runtime/response.d.ts.map +1 -0
- package/dist/mcp/v1/runtime/response.js +130 -0
- package/dist/mcp/v1/runtime/response.js.map +1 -0
- package/dist/mcp/v1/runtime/timeout.d.ts +116 -0
- package/dist/mcp/v1/runtime/timeout.d.ts.map +1 -0
- package/dist/mcp/v1/runtime/timeout.js +116 -0
- package/dist/mcp/v1/runtime/timeout.js.map +1 -0
- package/dist/mcp/v1/schema.d.ts +171 -0
- package/dist/mcp/v1/schema.d.ts.map +1 -0
- package/dist/mcp/v1/schema.js +97 -0
- package/dist/mcp/v1/schema.js.map +1 -0
- package/dist/mcp/v1/tools/agent.d.ts +485 -0
- package/dist/mcp/v1/tools/agent.d.ts.map +1 -0
- package/dist/mcp/v1/tools/agent.js +264 -0
- package/dist/mcp/v1/tools/agent.js.map +1 -0
- package/dist/mcp/v1/tools/guard.d.ts +243 -0
- package/dist/mcp/v1/tools/guard.d.ts.map +1 -0
- package/dist/mcp/v1/tools/guard.js +136 -0
- package/dist/mcp/v1/tools/guard.js.map +1 -0
- package/dist/mcp/v1/tools/index.d.ts +15 -0
- package/dist/mcp/v1/tools/index.d.ts.map +1 -0
- package/dist/mcp/v1/tools/index.js +22 -0
- package/dist/mcp/v1/tools/index.js.map +1 -0
- package/dist/mcp/v1/tools/memory.d.ts +569 -0
- package/dist/mcp/v1/tools/memory.d.ts.map +1 -0
- package/dist/mcp/v1/tools/memory.js +319 -0
- package/dist/mcp/v1/tools/memory.js.map +1 -0
- package/dist/mcp/v1/tools/session.d.ts +545 -0
- package/dist/mcp/v1/tools/session.d.ts.map +1 -0
- package/dist/mcp/v1/tools/session.js +309 -0
- package/dist/mcp/v1/tools/session.js.map +1 -0
- package/dist/mcp/v1/tools/tool-list-schemas.d.ts +354 -0
- package/dist/mcp/v1/tools/tool-list-schemas.d.ts.map +1 -0
- package/dist/mcp/v1/tools/tool-list-schemas.js +140 -0
- package/dist/mcp/v1/tools/tool-list-schemas.js.map +1 -0
- package/dist/mcp/v1/tools/trace.d.ts +282 -0
- package/dist/mcp/v1/tools/trace.d.ts.map +1 -0
- package/dist/mcp/v1/tools/trace.js +94 -0
- package/dist/mcp/v1/tools/trace.js.map +1 -0
- package/dist/mcp/v1/tools/workflow.d.ts +146 -0
- package/dist/mcp/v1/tools/workflow.d.ts.map +1 -0
- package/dist/mcp/v1/tools/workflow.js +68 -0
- package/dist/mcp/v1/tools/workflow.js.map +1 -0
- package/dist/mcp/v1/trace/index.d.ts +5 -0
- package/dist/mcp/v1/trace/index.d.ts.map +1 -0
- package/dist/mcp/v1/trace/index.js +5 -0
- package/dist/mcp/v1/trace/index.js.map +1 -0
- package/dist/mcp/v1/trace/tool-trace.d.ts +107 -0
- package/dist/mcp/v1/trace/tool-trace.d.ts.map +1 -0
- package/dist/mcp/v1/trace/tool-trace.js +91 -0
- package/dist/mcp/v1/trace/tool-trace.js.map +1 -0
- package/dist/memory/v1/index.d.ts +2 -0
- package/dist/memory/v1/index.d.ts.map +1 -0
- package/dist/memory/v1/index.js +2 -0
- package/dist/memory/v1/index.js.map +1 -0
- package/dist/memory/v1/schema.d.ts +188 -0
- package/dist/memory/v1/schema.d.ts.map +1 -0
- package/dist/memory/v1/schema.js +108 -0
- package/dist/memory/v1/schema.js.map +1 -0
- package/dist/ml-lifecycle/v1/index.d.ts +12 -0
- package/dist/ml-lifecycle/v1/index.d.ts.map +1 -0
- package/dist/ml-lifecycle/v1/index.js +12 -0
- package/dist/ml-lifecycle/v1/index.js.map +1 -0
- package/dist/ml-lifecycle/v1/schema.d.ts +1207 -0
- package/dist/ml-lifecycle/v1/schema.d.ts.map +1 -0
- package/dist/ml-lifecycle/v1/schema.js +481 -0
- package/dist/ml-lifecycle/v1/schema.js.map +1 -0
- package/dist/orchestration/v1/index.d.ts +5 -0
- package/dist/orchestration/v1/index.d.ts.map +1 -0
- package/dist/orchestration/v1/index.js +23 -0
- package/dist/orchestration/v1/index.js.map +1 -0
- package/dist/orchestration/v1/schema.d.ts +1384 -0
- package/dist/orchestration/v1/schema.d.ts.map +1 -0
- package/dist/orchestration/v1/schema.js +394 -0
- package/dist/orchestration/v1/schema.js.map +1 -0
- package/dist/provider/v1/circuit-breaker.d.ts +151 -0
- package/dist/provider/v1/circuit-breaker.d.ts.map +1 -0
- package/dist/provider/v1/circuit-breaker.js +119 -0
- package/dist/provider/v1/circuit-breaker.js.map +1 -0
- package/dist/provider/v1/health.d.ts +246 -0
- package/dist/provider/v1/health.d.ts.map +1 -0
- package/dist/provider/v1/health.js +190 -0
- package/dist/provider/v1/health.js.map +1 -0
- package/dist/provider/v1/index.d.ts +13 -0
- package/dist/provider/v1/index.d.ts.map +1 -0
- package/dist/provider/v1/index.js +17 -0
- package/dist/provider/v1/index.js.map +1 -0
- package/dist/provider/v1/port.d.ts +237 -0
- package/dist/provider/v1/port.d.ts.map +1 -0
- package/dist/provider/v1/port.js +113 -0
- package/dist/provider/v1/port.js.map +1 -0
- package/dist/provider/v1/rate-limit.d.ts +214 -0
- package/dist/provider/v1/rate-limit.d.ts.map +1 -0
- package/dist/provider/v1/rate-limit.js +165 -0
- package/dist/provider/v1/rate-limit.js.map +1 -0
- package/dist/resilience/v1/circuit-breaker.d.ts +135 -0
- package/dist/resilience/v1/circuit-breaker.d.ts.map +1 -0
- package/dist/resilience/v1/circuit-breaker.js +105 -0
- package/dist/resilience/v1/circuit-breaker.js.map +1 -0
- package/dist/resilience/v1/index.d.ts +17 -0
- package/dist/resilience/v1/index.d.ts.map +1 -0
- package/dist/resilience/v1/index.js +17 -0
- package/dist/resilience/v1/index.js.map +1 -0
- package/dist/resilience/v1/loop-guard.d.ts +123 -0
- package/dist/resilience/v1/loop-guard.d.ts.map +1 -0
- package/dist/resilience/v1/loop-guard.js +96 -0
- package/dist/resilience/v1/loop-guard.js.map +1 -0
- package/dist/resilience/v1/metrics.d.ts +323 -0
- package/dist/resilience/v1/metrics.d.ts.map +1 -0
- package/dist/resilience/v1/metrics.js +183 -0
- package/dist/resilience/v1/metrics.js.map +1 -0
- package/dist/resilience/v1/rate-limiter.d.ts +122 -0
- package/dist/resilience/v1/rate-limiter.d.ts.map +1 -0
- package/dist/resilience/v1/rate-limiter.js +119 -0
- package/dist/resilience/v1/rate-limiter.js.map +1 -0
- package/dist/resilience/v1/resource-limits.d.ts +146 -0
- package/dist/resilience/v1/resource-limits.d.ts.map +1 -0
- package/dist/resilience/v1/resource-limits.js +130 -0
- package/dist/resilience/v1/resource-limits.js.map +1 -0
- package/dist/review/v1/index.d.ts +7 -0
- package/dist/review/v1/index.d.ts.map +1 -0
- package/dist/review/v1/index.js +23 -0
- package/dist/review/v1/index.js.map +1 -0
- package/dist/review/v1/schema.d.ts +1284 -0
- package/dist/review/v1/schema.d.ts.map +1 -0
- package/dist/review/v1/schema.js +423 -0
- package/dist/review/v1/schema.js.map +1 -0
- package/dist/routing/v1/index.d.ts +2 -0
- package/dist/routing/v1/index.d.ts.map +1 -0
- package/dist/routing/v1/index.js +2 -0
- package/dist/routing/v1/index.js.map +1 -0
- package/dist/routing/v1/schema.d.ts +315 -0
- package/dist/routing/v1/schema.d.ts.map +1 -0
- package/dist/routing/v1/schema.js +103 -0
- package/dist/routing/v1/schema.js.map +1 -0
- package/dist/scaffold/v1/index.d.ts +7 -0
- package/dist/scaffold/v1/index.d.ts.map +1 -0
- package/dist/scaffold/v1/index.js +7 -0
- package/dist/scaffold/v1/index.js.map +1 -0
- package/dist/scaffold/v1/schema.d.ts +351 -0
- package/dist/scaffold/v1/schema.d.ts.map +1 -0
- package/dist/scaffold/v1/schema.js +238 -0
- package/dist/scaffold/v1/schema.js.map +1 -0
- package/dist/session/v1/index.d.ts +7 -0
- package/dist/session/v1/index.d.ts.map +1 -0
- package/dist/session/v1/index.js +23 -0
- package/dist/session/v1/index.js.map +1 -0
- package/dist/session/v1/schema.d.ts +1156 -0
- package/dist/session/v1/schema.d.ts.map +1 -0
- package/dist/session/v1/schema.js +315 -0
- package/dist/session/v1/schema.js.map +1 -0
- package/dist/storage/v1/index.d.ts +9 -0
- package/dist/storage/v1/index.d.ts.map +1 -0
- package/dist/storage/v1/index.js +21 -0
- package/dist/storage/v1/index.js.map +1 -0
- package/dist/storage/v1/schema.d.ts +411 -0
- package/dist/storage/v1/schema.d.ts.map +1 -0
- package/dist/storage/v1/schema.js +167 -0
- package/dist/storage/v1/schema.js.map +1 -0
- package/dist/telemetry/v1/index.d.ts +5 -0
- package/dist/telemetry/v1/index.d.ts.map +1 -0
- package/dist/telemetry/v1/index.js +5 -0
- package/dist/telemetry/v1/index.js.map +1 -0
- package/dist/telemetry/v1/schema.d.ts +747 -0
- package/dist/telemetry/v1/schema.d.ts.map +1 -0
- package/dist/telemetry/v1/schema.js +300 -0
- package/dist/telemetry/v1/schema.js.map +1 -0
- package/dist/token-budget/v1/index.d.ts +7 -0
- package/dist/token-budget/v1/index.d.ts.map +1 -0
- package/dist/token-budget/v1/index.js +25 -0
- package/dist/token-budget/v1/index.js.map +1 -0
- package/dist/token-budget/v1/schema.d.ts +588 -0
- package/dist/token-budget/v1/schema.d.ts.map +1 -0
- package/dist/token-budget/v1/schema.js +239 -0
- package/dist/token-budget/v1/schema.js.map +1 -0
- package/dist/trace/v1/index.d.ts +2 -0
- package/dist/trace/v1/index.d.ts.map +1 -0
- package/dist/trace/v1/index.js +4 -0
- package/dist/trace/v1/index.js.map +1 -0
- package/dist/trace/v1/schema.d.ts +531 -0
- package/dist/trace/v1/schema.d.ts.map +1 -0
- package/dist/trace/v1/schema.js +243 -0
- package/dist/trace/v1/schema.js.map +1 -0
- package/dist/workflow/v1/index.d.ts +3 -0
- package/dist/workflow/v1/index.d.ts.map +1 -0
- package/dist/workflow/v1/index.js +8 -0
- package/dist/workflow/v1/index.js.map +1 -0
- package/dist/workflow/v1/schema.d.ts +267 -0
- package/dist/workflow/v1/schema.d.ts.map +1 -0
- package/dist/workflow/v1/schema.js +95 -0
- package/dist/workflow/v1/schema.js.map +1 -0
- package/dist/workflow/v1/step-guard.d.ts +571 -0
- package/dist/workflow/v1/step-guard.d.ts.map +1 -0
- package/dist/workflow/v1/step-guard.js +305 -0
- package/dist/workflow/v1/step-guard.js.map +1 -0
- package/dist/workflow-templates/v1/index.d.ts +8 -0
- package/dist/workflow-templates/v1/index.d.ts.map +1 -0
- package/dist/workflow-templates/v1/index.js +8 -0
- package/dist/workflow-templates/v1/index.js.map +1 -0
- package/dist/workflow-templates/v1/schema.d.ts +714 -0
- package/dist/workflow-templates/v1/schema.d.ts.map +1 -0
- package/dist/workflow-templates/v1/schema.js +168 -0
- package/dist/workflow-templates/v1/schema.js.map +1 -0
- package/package.json +142 -0
- package/src/guard/v1/policy.schema.json +56 -0
- package/src/mcp/v1/tools.schema.json +108 -0
- package/src/memory/v1/event.schema.json +136 -0
- package/src/routing/v1/decision.schema.json +155 -0
- package/src/trace/v1/event.schema.json +197 -0
- package/src/workflow/v1/workflow.schema.json +142 -0
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data Retention Contract V1
|
|
3
|
+
*
|
|
4
|
+
* Provides contracts for automatic data cleanup based on configurable policies.
|
|
5
|
+
* Enables compliant data management and storage optimization.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-RT-001: Retention policies applied per data type
|
|
9
|
+
* - INV-RT-002: Archive before delete when configured
|
|
10
|
+
* - INV-RT-003: Conditions respected during cleanup
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
/**
|
|
14
|
+
* Data types subject to retention policies
|
|
15
|
+
*/
|
|
16
|
+
export declare const RetentionDataTypeSchema: z.ZodEnum<["traces", "sessions", "memory", "checkpoints", "dlq", "audit", "metrics"]>;
|
|
17
|
+
export type RetentionDataType = z.infer<typeof RetentionDataTypeSchema>;
|
|
18
|
+
/**
|
|
19
|
+
* Retention conditions
|
|
20
|
+
*/
|
|
21
|
+
export declare const RetentionConditionsSchema: z.ZodObject<{
|
|
22
|
+
/** Only delete entries with these statuses */
|
|
23
|
+
status: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
24
|
+
/** Don't delete entries with these tags */
|
|
25
|
+
excludeTags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
26
|
+
/** Only delete entries with these tags */
|
|
27
|
+
includeTags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
28
|
+
/** Minimum age before eligible for deletion (hours) */
|
|
29
|
+
minAgeHours: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
/** Don't delete if accessed within N hours */
|
|
31
|
+
keepIfAccessedWithinHours: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
status?: string[] | undefined;
|
|
34
|
+
excludeTags?: string[] | undefined;
|
|
35
|
+
includeTags?: string[] | undefined;
|
|
36
|
+
minAgeHours?: number | undefined;
|
|
37
|
+
keepIfAccessedWithinHours?: number | undefined;
|
|
38
|
+
}, {
|
|
39
|
+
status?: string[] | undefined;
|
|
40
|
+
excludeTags?: string[] | undefined;
|
|
41
|
+
includeTags?: string[] | undefined;
|
|
42
|
+
minAgeHours?: number | undefined;
|
|
43
|
+
keepIfAccessedWithinHours?: number | undefined;
|
|
44
|
+
}>;
|
|
45
|
+
export type RetentionConditions = z.infer<typeof RetentionConditionsSchema>;
|
|
46
|
+
/**
|
|
47
|
+
* Retention policy schema
|
|
48
|
+
*/
|
|
49
|
+
export declare const RetentionPolicySchema: z.ZodObject<{
|
|
50
|
+
/** Policy identifier */
|
|
51
|
+
policyId: z.ZodString;
|
|
52
|
+
/** Data type this policy applies to (INV-RT-001) */
|
|
53
|
+
dataType: z.ZodEnum<["traces", "sessions", "memory", "checkpoints", "dlq", "audit", "metrics"]>;
|
|
54
|
+
/** Retention period in days */
|
|
55
|
+
retentionDays: z.ZodNumber;
|
|
56
|
+
/** Archive before delete (INV-RT-002) */
|
|
57
|
+
archiveBeforeDelete: z.ZodDefault<z.ZodBoolean>;
|
|
58
|
+
/** Archive path (required if archiving) */
|
|
59
|
+
archivePath: z.ZodOptional<z.ZodString>;
|
|
60
|
+
/** Archive format */
|
|
61
|
+
archiveFormat: z.ZodDefault<z.ZodEnum<["json", "csv", "parquet"]>>;
|
|
62
|
+
/** Conditions for retention (INV-RT-003) */
|
|
63
|
+
conditions: z.ZodOptional<z.ZodObject<{
|
|
64
|
+
/** Only delete entries with these statuses */
|
|
65
|
+
status: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
66
|
+
/** Don't delete entries with these tags */
|
|
67
|
+
excludeTags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
68
|
+
/** Only delete entries with these tags */
|
|
69
|
+
includeTags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
70
|
+
/** Minimum age before eligible for deletion (hours) */
|
|
71
|
+
minAgeHours: z.ZodOptional<z.ZodNumber>;
|
|
72
|
+
/** Don't delete if accessed within N hours */
|
|
73
|
+
keepIfAccessedWithinHours: z.ZodOptional<z.ZodNumber>;
|
|
74
|
+
}, "strip", z.ZodTypeAny, {
|
|
75
|
+
status?: string[] | undefined;
|
|
76
|
+
excludeTags?: string[] | undefined;
|
|
77
|
+
includeTags?: string[] | undefined;
|
|
78
|
+
minAgeHours?: number | undefined;
|
|
79
|
+
keepIfAccessedWithinHours?: number | undefined;
|
|
80
|
+
}, {
|
|
81
|
+
status?: string[] | undefined;
|
|
82
|
+
excludeTags?: string[] | undefined;
|
|
83
|
+
includeTags?: string[] | undefined;
|
|
84
|
+
minAgeHours?: number | undefined;
|
|
85
|
+
keepIfAccessedWithinHours?: number | undefined;
|
|
86
|
+
}>>;
|
|
87
|
+
/** Cron schedule for policy execution */
|
|
88
|
+
schedule: z.ZodDefault<z.ZodString>;
|
|
89
|
+
/** Policy enabled flag */
|
|
90
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
91
|
+
/** Policy priority (higher runs first) */
|
|
92
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
93
|
+
/** Description */
|
|
94
|
+
description: z.ZodOptional<z.ZodString>;
|
|
95
|
+
}, "strip", z.ZodTypeAny, {
|
|
96
|
+
enabled: boolean;
|
|
97
|
+
policyId: string;
|
|
98
|
+
priority: number;
|
|
99
|
+
retentionDays: number;
|
|
100
|
+
dataType: "memory" | "sessions" | "traces" | "metrics" | "checkpoints" | "dlq" | "audit";
|
|
101
|
+
archiveBeforeDelete: boolean;
|
|
102
|
+
archiveFormat: "json" | "csv" | "parquet";
|
|
103
|
+
schedule: string;
|
|
104
|
+
description?: string | undefined;
|
|
105
|
+
archivePath?: string | undefined;
|
|
106
|
+
conditions?: {
|
|
107
|
+
status?: string[] | undefined;
|
|
108
|
+
excludeTags?: string[] | undefined;
|
|
109
|
+
includeTags?: string[] | undefined;
|
|
110
|
+
minAgeHours?: number | undefined;
|
|
111
|
+
keepIfAccessedWithinHours?: number | undefined;
|
|
112
|
+
} | undefined;
|
|
113
|
+
}, {
|
|
114
|
+
policyId: string;
|
|
115
|
+
retentionDays: number;
|
|
116
|
+
dataType: "memory" | "sessions" | "traces" | "metrics" | "checkpoints" | "dlq" | "audit";
|
|
117
|
+
description?: string | undefined;
|
|
118
|
+
enabled?: boolean | undefined;
|
|
119
|
+
priority?: number | undefined;
|
|
120
|
+
archiveBeforeDelete?: boolean | undefined;
|
|
121
|
+
archivePath?: string | undefined;
|
|
122
|
+
archiveFormat?: "json" | "csv" | "parquet" | undefined;
|
|
123
|
+
conditions?: {
|
|
124
|
+
status?: string[] | undefined;
|
|
125
|
+
excludeTags?: string[] | undefined;
|
|
126
|
+
includeTags?: string[] | undefined;
|
|
127
|
+
minAgeHours?: number | undefined;
|
|
128
|
+
keepIfAccessedWithinHours?: number | undefined;
|
|
129
|
+
} | undefined;
|
|
130
|
+
schedule?: string | undefined;
|
|
131
|
+
}>;
|
|
132
|
+
export type RetentionPolicy = z.infer<typeof RetentionPolicySchema>;
|
|
133
|
+
/**
|
|
134
|
+
* Retention run result
|
|
135
|
+
*/
|
|
136
|
+
export declare const RetentionRunResultSchema: z.ZodObject<{
|
|
137
|
+
/** Unique run identifier */
|
|
138
|
+
runId: z.ZodString;
|
|
139
|
+
/** Policy that was executed */
|
|
140
|
+
policyId: z.ZodString;
|
|
141
|
+
/** Run start time */
|
|
142
|
+
startedAt: z.ZodString;
|
|
143
|
+
/** Run end time */
|
|
144
|
+
completedAt: z.ZodString;
|
|
145
|
+
/** Entries evaluated */
|
|
146
|
+
entriesProcessed: z.ZodNumber;
|
|
147
|
+
/** Entries deleted */
|
|
148
|
+
entriesDeleted: z.ZodNumber;
|
|
149
|
+
/** Entries archived */
|
|
150
|
+
entriesArchived: z.ZodNumber;
|
|
151
|
+
/** Entries skipped (didn't match conditions) */
|
|
152
|
+
entriesSkipped: z.ZodNumber;
|
|
153
|
+
/** Errors encountered */
|
|
154
|
+
errors: z.ZodArray<z.ZodString, "many">;
|
|
155
|
+
/** Whether run was successful */
|
|
156
|
+
success: z.ZodBoolean;
|
|
157
|
+
/** Storage reclaimed in bytes */
|
|
158
|
+
storageReclaimedBytes: z.ZodOptional<z.ZodNumber>;
|
|
159
|
+
}, "strip", z.ZodTypeAny, {
|
|
160
|
+
policyId: string;
|
|
161
|
+
success: boolean;
|
|
162
|
+
completedAt: string;
|
|
163
|
+
errors: string[];
|
|
164
|
+
startedAt: string;
|
|
165
|
+
runId: string;
|
|
166
|
+
entriesProcessed: number;
|
|
167
|
+
entriesDeleted: number;
|
|
168
|
+
entriesArchived: number;
|
|
169
|
+
entriesSkipped: number;
|
|
170
|
+
storageReclaimedBytes?: number | undefined;
|
|
171
|
+
}, {
|
|
172
|
+
policyId: string;
|
|
173
|
+
success: boolean;
|
|
174
|
+
completedAt: string;
|
|
175
|
+
errors: string[];
|
|
176
|
+
startedAt: string;
|
|
177
|
+
runId: string;
|
|
178
|
+
entriesProcessed: number;
|
|
179
|
+
entriesDeleted: number;
|
|
180
|
+
entriesArchived: number;
|
|
181
|
+
entriesSkipped: number;
|
|
182
|
+
storageReclaimedBytes?: number | undefined;
|
|
183
|
+
}>;
|
|
184
|
+
export type RetentionRunResult = z.infer<typeof RetentionRunResultSchema>;
|
|
185
|
+
/**
|
|
186
|
+
* Retention summary across all policies
|
|
187
|
+
*/
|
|
188
|
+
export declare const RetentionSummarySchema: z.ZodObject<{
|
|
189
|
+
/** Total policies */
|
|
190
|
+
totalPolicies: z.ZodNumber;
|
|
191
|
+
/** Enabled policies */
|
|
192
|
+
enabledPolicies: z.ZodNumber;
|
|
193
|
+
/** Last run results by policy */
|
|
194
|
+
lastRuns: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
195
|
+
/** Unique run identifier */
|
|
196
|
+
runId: z.ZodString;
|
|
197
|
+
/** Policy that was executed */
|
|
198
|
+
policyId: z.ZodString;
|
|
199
|
+
/** Run start time */
|
|
200
|
+
startedAt: z.ZodString;
|
|
201
|
+
/** Run end time */
|
|
202
|
+
completedAt: z.ZodString;
|
|
203
|
+
/** Entries evaluated */
|
|
204
|
+
entriesProcessed: z.ZodNumber;
|
|
205
|
+
/** Entries deleted */
|
|
206
|
+
entriesDeleted: z.ZodNumber;
|
|
207
|
+
/** Entries archived */
|
|
208
|
+
entriesArchived: z.ZodNumber;
|
|
209
|
+
/** Entries skipped (didn't match conditions) */
|
|
210
|
+
entriesSkipped: z.ZodNumber;
|
|
211
|
+
/** Errors encountered */
|
|
212
|
+
errors: z.ZodArray<z.ZodString, "many">;
|
|
213
|
+
/** Whether run was successful */
|
|
214
|
+
success: z.ZodBoolean;
|
|
215
|
+
/** Storage reclaimed in bytes */
|
|
216
|
+
storageReclaimedBytes: z.ZodOptional<z.ZodNumber>;
|
|
217
|
+
}, "strip", z.ZodTypeAny, {
|
|
218
|
+
policyId: string;
|
|
219
|
+
success: boolean;
|
|
220
|
+
completedAt: string;
|
|
221
|
+
errors: string[];
|
|
222
|
+
startedAt: string;
|
|
223
|
+
runId: string;
|
|
224
|
+
entriesProcessed: number;
|
|
225
|
+
entriesDeleted: number;
|
|
226
|
+
entriesArchived: number;
|
|
227
|
+
entriesSkipped: number;
|
|
228
|
+
storageReclaimedBytes?: number | undefined;
|
|
229
|
+
}, {
|
|
230
|
+
policyId: string;
|
|
231
|
+
success: boolean;
|
|
232
|
+
completedAt: string;
|
|
233
|
+
errors: string[];
|
|
234
|
+
startedAt: string;
|
|
235
|
+
runId: string;
|
|
236
|
+
entriesProcessed: number;
|
|
237
|
+
entriesDeleted: number;
|
|
238
|
+
entriesArchived: number;
|
|
239
|
+
entriesSkipped: number;
|
|
240
|
+
storageReclaimedBytes?: number | undefined;
|
|
241
|
+
}>>;
|
|
242
|
+
/** Next scheduled run time */
|
|
243
|
+
nextRunAt: z.ZodOptional<z.ZodString>;
|
|
244
|
+
/** Total storage reclaimed */
|
|
245
|
+
totalStorageReclaimedBytes: z.ZodNumber;
|
|
246
|
+
/** Total entries deleted */
|
|
247
|
+
totalEntriesDeleted: z.ZodNumber;
|
|
248
|
+
}, "strip", z.ZodTypeAny, {
|
|
249
|
+
totalPolicies: number;
|
|
250
|
+
enabledPolicies: number;
|
|
251
|
+
lastRuns: Record<string, {
|
|
252
|
+
policyId: string;
|
|
253
|
+
success: boolean;
|
|
254
|
+
completedAt: string;
|
|
255
|
+
errors: string[];
|
|
256
|
+
startedAt: string;
|
|
257
|
+
runId: string;
|
|
258
|
+
entriesProcessed: number;
|
|
259
|
+
entriesDeleted: number;
|
|
260
|
+
entriesArchived: number;
|
|
261
|
+
entriesSkipped: number;
|
|
262
|
+
storageReclaimedBytes?: number | undefined;
|
|
263
|
+
}>;
|
|
264
|
+
totalStorageReclaimedBytes: number;
|
|
265
|
+
totalEntriesDeleted: number;
|
|
266
|
+
nextRunAt?: string | undefined;
|
|
267
|
+
}, {
|
|
268
|
+
totalPolicies: number;
|
|
269
|
+
enabledPolicies: number;
|
|
270
|
+
lastRuns: Record<string, {
|
|
271
|
+
policyId: string;
|
|
272
|
+
success: boolean;
|
|
273
|
+
completedAt: string;
|
|
274
|
+
errors: string[];
|
|
275
|
+
startedAt: string;
|
|
276
|
+
runId: string;
|
|
277
|
+
entriesProcessed: number;
|
|
278
|
+
entriesDeleted: number;
|
|
279
|
+
entriesArchived: number;
|
|
280
|
+
entriesSkipped: number;
|
|
281
|
+
storageReclaimedBytes?: number | undefined;
|
|
282
|
+
}>;
|
|
283
|
+
totalStorageReclaimedBytes: number;
|
|
284
|
+
totalEntriesDeleted: number;
|
|
285
|
+
nextRunAt?: string | undefined;
|
|
286
|
+
}>;
|
|
287
|
+
export type RetentionSummary = z.infer<typeof RetentionSummarySchema>;
|
|
288
|
+
/**
|
|
289
|
+
* Archive entry metadata
|
|
290
|
+
*/
|
|
291
|
+
export declare const ArchiveEntrySchema: z.ZodObject<{
|
|
292
|
+
/** Original entry ID */
|
|
293
|
+
originalId: z.ZodString;
|
|
294
|
+
/** Data type */
|
|
295
|
+
dataType: z.ZodEnum<["traces", "sessions", "memory", "checkpoints", "dlq", "audit", "metrics"]>;
|
|
296
|
+
/** Archive timestamp */
|
|
297
|
+
archivedAt: z.ZodString;
|
|
298
|
+
/** Policy that archived this entry */
|
|
299
|
+
policyId: z.ZodString;
|
|
300
|
+
/** Archive file path */
|
|
301
|
+
archivePath: z.ZodString;
|
|
302
|
+
/** Entry size in bytes */
|
|
303
|
+
sizeBytes: z.ZodNumber;
|
|
304
|
+
}, "strip", z.ZodTypeAny, {
|
|
305
|
+
policyId: string;
|
|
306
|
+
sizeBytes: number;
|
|
307
|
+
dataType: "memory" | "sessions" | "traces" | "metrics" | "checkpoints" | "dlq" | "audit";
|
|
308
|
+
archivePath: string;
|
|
309
|
+
originalId: string;
|
|
310
|
+
archivedAt: string;
|
|
311
|
+
}, {
|
|
312
|
+
policyId: string;
|
|
313
|
+
sizeBytes: number;
|
|
314
|
+
dataType: "memory" | "sessions" | "traces" | "metrics" | "checkpoints" | "dlq" | "audit";
|
|
315
|
+
archivePath: string;
|
|
316
|
+
originalId: string;
|
|
317
|
+
archivedAt: string;
|
|
318
|
+
}>;
|
|
319
|
+
export type ArchiveEntry = z.infer<typeof ArchiveEntrySchema>;
|
|
320
|
+
/**
|
|
321
|
+
* Retention error codes
|
|
322
|
+
*/
|
|
323
|
+
export declare const RetentionErrorCodes: {
|
|
324
|
+
readonly POLICY_NOT_FOUND: "RETENTION_POLICY_NOT_FOUND";
|
|
325
|
+
readonly ARCHIVE_FAILED: "RETENTION_ARCHIVE_FAILED";
|
|
326
|
+
readonly DELETE_FAILED: "RETENTION_DELETE_FAILED";
|
|
327
|
+
readonly INVALID_SCHEDULE: "RETENTION_INVALID_SCHEDULE";
|
|
328
|
+
readonly ARCHIVE_PATH_REQUIRED: "RETENTION_ARCHIVE_PATH_REQUIRED";
|
|
329
|
+
};
|
|
330
|
+
export type RetentionErrorCode = (typeof RetentionErrorCodes)[keyof typeof RetentionErrorCodes];
|
|
331
|
+
/**
|
|
332
|
+
* Validates retention policy
|
|
333
|
+
*/
|
|
334
|
+
export declare function validateRetentionPolicy(data: unknown): RetentionPolicy;
|
|
335
|
+
/**
|
|
336
|
+
* Validates retention run result
|
|
337
|
+
*/
|
|
338
|
+
export declare function validateRetentionRunResult(data: unknown): RetentionRunResult;
|
|
339
|
+
/**
|
|
340
|
+
* Creates default retention policy
|
|
341
|
+
*/
|
|
342
|
+
export declare function createDefaultRetentionPolicy(policyId: string, dataType: RetentionDataType): RetentionPolicy;
|
|
343
|
+
/**
|
|
344
|
+
* Calculates cutoff date for retention
|
|
345
|
+
*/
|
|
346
|
+
export declare function calculateRetentionCutoff(retentionDays: number): Date;
|
|
347
|
+
//# sourceMappingURL=retention.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../../src/cross-cutting/v1/retention.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data Retention Contract V1
|
|
3
|
+
*
|
|
4
|
+
* Provides contracts for automatic data cleanup based on configurable policies.
|
|
5
|
+
* Enables compliant data management and storage optimization.
|
|
6
|
+
*
|
|
7
|
+
* Invariants:
|
|
8
|
+
* - INV-RT-001: Retention policies applied per data type
|
|
9
|
+
* - INV-RT-002: Archive before delete when configured
|
|
10
|
+
* - INV-RT-003: Conditions respected during cleanup
|
|
11
|
+
*/
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
/**
|
|
14
|
+
* Data types subject to retention policies
|
|
15
|
+
*/
|
|
16
|
+
export const RetentionDataTypeSchema = z.enum([
|
|
17
|
+
'traces', // Execution traces
|
|
18
|
+
'sessions', // Session records
|
|
19
|
+
'memory', // Memory entries
|
|
20
|
+
'checkpoints', // Agent checkpoints
|
|
21
|
+
'dlq', // Dead letter queue entries
|
|
22
|
+
'audit', // Audit logs
|
|
23
|
+
'metrics', // Metrics data
|
|
24
|
+
]);
|
|
25
|
+
/**
|
|
26
|
+
* Retention conditions
|
|
27
|
+
*/
|
|
28
|
+
export const RetentionConditionsSchema = z.object({
|
|
29
|
+
/** Only delete entries with these statuses */
|
|
30
|
+
status: z.array(z.string()).optional(),
|
|
31
|
+
/** Don't delete entries with these tags */
|
|
32
|
+
excludeTags: z.array(z.string()).optional(),
|
|
33
|
+
/** Only delete entries with these tags */
|
|
34
|
+
includeTags: z.array(z.string()).optional(),
|
|
35
|
+
/** Minimum age before eligible for deletion (hours) */
|
|
36
|
+
minAgeHours: z.number().int().min(0).optional(),
|
|
37
|
+
/** Don't delete if accessed within N hours */
|
|
38
|
+
keepIfAccessedWithinHours: z.number().int().min(0).optional(),
|
|
39
|
+
});
|
|
40
|
+
/**
|
|
41
|
+
* Retention policy schema
|
|
42
|
+
*/
|
|
43
|
+
export const RetentionPolicySchema = z.object({
|
|
44
|
+
/** Policy identifier */
|
|
45
|
+
policyId: z.string(),
|
|
46
|
+
/** Data type this policy applies to (INV-RT-001) */
|
|
47
|
+
dataType: RetentionDataTypeSchema,
|
|
48
|
+
/** Retention period in days */
|
|
49
|
+
retentionDays: z.number().int().min(1).max(365),
|
|
50
|
+
/** Archive before delete (INV-RT-002) */
|
|
51
|
+
archiveBeforeDelete: z.boolean().default(false),
|
|
52
|
+
/** Archive path (required if archiving) */
|
|
53
|
+
archivePath: z.string().optional(),
|
|
54
|
+
/** Archive format */
|
|
55
|
+
archiveFormat: z.enum(['json', 'csv', 'parquet']).default('json'),
|
|
56
|
+
/** Conditions for retention (INV-RT-003) */
|
|
57
|
+
conditions: RetentionConditionsSchema.optional(),
|
|
58
|
+
/** Cron schedule for policy execution */
|
|
59
|
+
schedule: z.string().default('0 3 * * *'),
|
|
60
|
+
/** Policy enabled flag */
|
|
61
|
+
enabled: z.boolean().default(true),
|
|
62
|
+
/** Policy priority (higher runs first) */
|
|
63
|
+
priority: z.number().int().min(0).max(100).default(50),
|
|
64
|
+
/** Description */
|
|
65
|
+
description: z.string().optional(),
|
|
66
|
+
});
|
|
67
|
+
/**
|
|
68
|
+
* Retention run result
|
|
69
|
+
*/
|
|
70
|
+
export const RetentionRunResultSchema = z.object({
|
|
71
|
+
/** Unique run identifier */
|
|
72
|
+
runId: z.string().uuid(),
|
|
73
|
+
/** Policy that was executed */
|
|
74
|
+
policyId: z.string(),
|
|
75
|
+
/** Run start time */
|
|
76
|
+
startedAt: z.string().datetime(),
|
|
77
|
+
/** Run end time */
|
|
78
|
+
completedAt: z.string().datetime(),
|
|
79
|
+
/** Entries evaluated */
|
|
80
|
+
entriesProcessed: z.number().int().min(0),
|
|
81
|
+
/** Entries deleted */
|
|
82
|
+
entriesDeleted: z.number().int().min(0),
|
|
83
|
+
/** Entries archived */
|
|
84
|
+
entriesArchived: z.number().int().min(0),
|
|
85
|
+
/** Entries skipped (didn't match conditions) */
|
|
86
|
+
entriesSkipped: z.number().int().min(0),
|
|
87
|
+
/** Errors encountered */
|
|
88
|
+
errors: z.array(z.string()),
|
|
89
|
+
/** Whether run was successful */
|
|
90
|
+
success: z.boolean(),
|
|
91
|
+
/** Storage reclaimed in bytes */
|
|
92
|
+
storageReclaimedBytes: z.number().int().min(0).optional(),
|
|
93
|
+
});
|
|
94
|
+
/**
|
|
95
|
+
* Retention summary across all policies
|
|
96
|
+
*/
|
|
97
|
+
export const RetentionSummarySchema = z.object({
|
|
98
|
+
/** Total policies */
|
|
99
|
+
totalPolicies: z.number().int().min(0),
|
|
100
|
+
/** Enabled policies */
|
|
101
|
+
enabledPolicies: z.number().int().min(0),
|
|
102
|
+
/** Last run results by policy */
|
|
103
|
+
lastRuns: z.record(z.string(), RetentionRunResultSchema),
|
|
104
|
+
/** Next scheduled run time */
|
|
105
|
+
nextRunAt: z.string().datetime().optional(),
|
|
106
|
+
/** Total storage reclaimed */
|
|
107
|
+
totalStorageReclaimedBytes: z.number().int().min(0),
|
|
108
|
+
/** Total entries deleted */
|
|
109
|
+
totalEntriesDeleted: z.number().int().min(0),
|
|
110
|
+
});
|
|
111
|
+
/**
|
|
112
|
+
* Archive entry metadata
|
|
113
|
+
*/
|
|
114
|
+
export const ArchiveEntrySchema = z.object({
|
|
115
|
+
/** Original entry ID */
|
|
116
|
+
originalId: z.string(),
|
|
117
|
+
/** Data type */
|
|
118
|
+
dataType: RetentionDataTypeSchema,
|
|
119
|
+
/** Archive timestamp */
|
|
120
|
+
archivedAt: z.string().datetime(),
|
|
121
|
+
/** Policy that archived this entry */
|
|
122
|
+
policyId: z.string(),
|
|
123
|
+
/** Archive file path */
|
|
124
|
+
archivePath: z.string(),
|
|
125
|
+
/** Entry size in bytes */
|
|
126
|
+
sizeBytes: z.number().int().min(0),
|
|
127
|
+
});
|
|
128
|
+
/**
|
|
129
|
+
* Retention error codes
|
|
130
|
+
*/
|
|
131
|
+
export const RetentionErrorCodes = {
|
|
132
|
+
POLICY_NOT_FOUND: 'RETENTION_POLICY_NOT_FOUND',
|
|
133
|
+
ARCHIVE_FAILED: 'RETENTION_ARCHIVE_FAILED',
|
|
134
|
+
DELETE_FAILED: 'RETENTION_DELETE_FAILED',
|
|
135
|
+
INVALID_SCHEDULE: 'RETENTION_INVALID_SCHEDULE',
|
|
136
|
+
ARCHIVE_PATH_REQUIRED: 'RETENTION_ARCHIVE_PATH_REQUIRED',
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Validates retention policy
|
|
140
|
+
*/
|
|
141
|
+
export function validateRetentionPolicy(data) {
|
|
142
|
+
const policy = RetentionPolicySchema.parse(data);
|
|
143
|
+
// Validate archive path if archiving enabled
|
|
144
|
+
if (policy.archiveBeforeDelete && !policy.archivePath) {
|
|
145
|
+
throw new Error('archivePath required when archiveBeforeDelete is true');
|
|
146
|
+
}
|
|
147
|
+
return policy;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Validates retention run result
|
|
151
|
+
*/
|
|
152
|
+
export function validateRetentionRunResult(data) {
|
|
153
|
+
return RetentionRunResultSchema.parse(data);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Creates default retention policy
|
|
157
|
+
*/
|
|
158
|
+
export function createDefaultRetentionPolicy(policyId, dataType) {
|
|
159
|
+
return {
|
|
160
|
+
policyId,
|
|
161
|
+
dataType,
|
|
162
|
+
retentionDays: 30,
|
|
163
|
+
archiveBeforeDelete: false,
|
|
164
|
+
archiveFormat: 'json',
|
|
165
|
+
schedule: '0 3 * * *',
|
|
166
|
+
enabled: true,
|
|
167
|
+
priority: 50,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Calculates cutoff date for retention
|
|
172
|
+
*/
|
|
173
|
+
export function calculateRetentionCutoff(retentionDays) {
|
|
174
|
+
const cutoff = new Date();
|
|
175
|
+
cutoff.setDate(cutoff.getDate() - retentionDays);
|
|
176
|
+
return cutoff;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=retention.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retention.js","sourceRoot":"","sources":["../../../src/cross-cutting/v1/retention.ts"],"names":[],"mappings":"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"}
|