@evolith/core-domain 1.0.1 → 1.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/README.md +102 -0
- package/dist/domain/services/default-workflow-definition.js +4 -1
- package/dist/domain/services/default-workflow-definition.js.map +1 -1
- package/dist/gates/decision/gate-decision.js.map +1 -1
- package/package.json +1 -2
- package/rulesets/README.es.md +0 -170
- package/rulesets/README.md +0 -170
- package/rulesets/acl/README.es.md +0 -41
- package/rulesets/acl/README.md +0 -41
- package/rulesets/acl/anti-corruption-layer.rules.es.json +0 -99
- package/rulesets/acl/anti-corruption-layer.rules.json +0 -99
- package/rulesets/adr/ADR_COVERAGE.es.md +0 -133
- package/rulesets/adr/ADR_COVERAGE.md +0 -133
- package/rulesets/adr/README.es.md +0 -17
- package/rulesets/adr/README.md +0 -17
- package/rulesets/adr/adr-0002-hexagonal-architecture.rules.json +0 -103
- package/rulesets/adr/adr-0005-cicd-quality-gates.rules.json +0 -102
- package/rulesets/adr/adr-0010-multi-tenancy.rules.json +0 -129
- package/rulesets/adr/adr-0018-testing-pyramid.rules.json +0 -115
- package/rulesets/adr/adr-0032-protocol-selection.rules.json +0 -134
- package/rulesets/adr/adr-0040-multi-runtime.rules.json +0 -131
- package/rulesets/adr/adr-0050-gitflow-branching.rules.json +0 -176
- package/rulesets/adr/generated/adr-0001-monorepo-orchestration-principle.rules.json +0 -29
- package/rulesets/adr/generated/adr-0006-microservices-transition-via-sidecar-pattern.rules.json +0 -29
- package/rulesets/adr/generated/adr-0009-strict-dependency-pinning-and-automated-vulnerability-manage.rules.json +0 -29
- package/rulesets/adr/generated/adr-0011-fault-tolerance-and-resiliency-patterns.rules.json +0 -29
- package/rulesets/adr/generated/adr-0013-cloud-infrastructure-topology-and-disaster-recovery-dr.rules.json +0 -28
- package/rulesets/adr/generated/adr-0014-multi-layer-distributed-caching-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0015-event-driven-architecture-eda-for-intra-domain-communication.rules.json +0 -29
- package/rulesets/adr/generated/adr-0016-immutable-business-audit-trail-and-change-tracking.rules.json +0 -29
- package/rulesets/adr/generated/adr-0017-feature-flagging-strategy-for-progressive-delivery.rules.json +0 -28
- package/rulesets/adr/generated/adr-0019-tactical-design-patterns-for-future-proofing.rules.json +0 -29
- package/rulesets/adr/generated/adr-0020-identity-provider-abstraction-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0024-centralized-configuration-feature-platform.rules.json +0 -28
- package/rulesets/adr/generated/adr-0025-feature-flag-provider-abstraction-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0028-self-hosted-open-source-hybrid-infrastructure.rules.json +0 -29
- package/rulesets/adr/generated/adr-0030-two-tier-distributed-gateway-model.rules.json +0 -28
- package/rulesets/adr/generated/adr-0031-schema-per-bounded-context-and-domain-event-catalog.rules.json +0 -29
- package/rulesets/adr/generated/adr-0033-transactional-outbox-pattern-for-async-messaging.rules.json +0 -28
- package/rulesets/adr/generated/adr-0034-cqrs-pattern-application-matrix.rules.json +0 -29
- package/rulesets/adr/generated/adr-0035-distributed-saga-pattern-implementation-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0036-message-bus-delivery-flow-control-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0037-enterprise-performance-concurrency-chaos-verification-strate.rules.json +0 -28
- package/rulesets/adr/generated/adr-0039-deployment-topology-abstraction-environment-switcher.rules.json +0 -29
- package/rulesets/adr/generated/adr-0041-dual-engine-policy-evaluation-native-opa.rules.json +0 -28
- package/rulesets/adr/generated/adr-0044-configurable-security-persistence-strategy-agnosticism-vs-na.rules.json +0 -29
- package/rulesets/adr/generated/adr-0045-microservice-extraction-readiness-criteria.rules.json +0 -29
- package/rulesets/adr/generated/adr-0046-unified-traceability-via-w3c-tracecontext.rules.json +0 -29
- package/rulesets/adr/generated/adr-0047-progressive-architecture-evolution-framework-modular-monolit.rules.json +0 -29
- package/rulesets/adr/generated/adr-0048-enterprise-taxonomy-standardization-and-reference-layout.rules.json +0 -28
- package/rulesets/adr/generated/adr-0049-naming-semantics-clean-code-policy-e2e-and-global.rules.json +0 -29
- package/rulesets/adr/generated/adr-0051-enterprise-database-engine-selection-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0052-unit-testing-isolation-strategy-mocks-vs-stubs.rules.json +0 -29
- package/rulesets/adr/generated/adr-0053-integration-and-e2e-testing-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0054-database-design-and-normalization-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-0055-microfrontends-architecture-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0056-enterprise-naming-design-conventions-multi-language-multi-pl.rules.json +0 -29
- package/rulesets/adr/generated/adr-0057-architecture-intelligence-catalog.rules.json +0 -27
- package/rulesets/adr/generated/adr-0058-ai-consumable-architecture-knowledge.rules.json +0 -27
- package/rulesets/adr/generated/adr-0067-modular-monolith-persistence-boundaries.rules.json +0 -28
- package/rulesets/adr/generated/adr-0068-documentation-release-gitflow.rules.json +0 -29
- package/rulesets/adr/generated/adr-0069-ai-agent-context-protocol-integration.rules.json +0 -28
- package/rulesets/adr/generated/adr-0070-lean-root-repository-taxonomy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0071-domain-layer-base-class-and-inheritance-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0072-utc-date-storage-browser-timezone-detection-and-language-res.rules.json +0 -29
- package/rulesets/adr/generated/adr-0073-unified-cli-mcp-output-contract-and-gate-evidence-schema.rules.json +0 -29
- package/rulesets/adr/generated/adr-0074-evolith-core-api-native-exposure-layer.rules.json +0 -29
- package/rulesets/adr/generated/adr-0075-core-api-authentication-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-0076-domain-oriented-microservice-architecture-doma.rules.json +0 -28
- package/rulesets/adr/generated/adr-0077-masstransit-v9-commercial-pivot-stay-on-v8-monitor-opentrans.rules.json +0 -28
- package/rulesets/adr/generated/adr-0078-domain-financial-separation-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0079-multi-topology-reference-corpus-and-topology-manifest-contra.rules.json +0 -29
- package/rulesets/adr/generated/adr-0080-remote-repository-reference-contract.rules.json +0 -29
- package/rulesets/adr/generated/adr-0081-agentic-ai-sandbox-isolation-boundary.rules.json +0 -29
- package/rulesets/adr/generated/adr-0082-agentic-ai-prompt-context-and-tool-trust-boundary.rules.json +0 -28
- package/rulesets/adr/generated/adr-0083-agentic-ai-action-authorization-and-audit.rules.json +0 -29
- package/rulesets/adr/generated/adr-0084-data-mesh-and-data-as-a-product.rules.json +0 -29
- package/rulesets/adr/generated/adr-0085-agnostic-opa-wasm-distribution-architecture.rules.json +0 -28
- package/rulesets/adr/generated/adr-0086-agentic-ai-telemetry-cost-control-standard.rules.json +0 -27
- package/rulesets/adr/generated/adr-0087-attribute-based-access-control-abac-for-agentic-tool-executi.rules.json +0 -29
- package/rulesets/adr/generated/adr-0088-sovereign-identity-for-agentic-ai.rules.json +0 -29
- package/rulesets/adr/generated/adr-0089-event-driven-agentic-workflow-pattern.rules.json +0 -28
- package/rulesets/adr/generated/adr-0090-rag-knowledge-governance-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0091-workload-identity-token-rotation-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0092-agent-infinite-loop-prevention-and-circuit-breaker-rules.rules.json +0 -29
- package/rulesets/adr/generated/adr-0093-concurrency-control-and-resource-locking-standard-for-mcp-to.rules.json +0 -29
- package/rulesets/adr/generated/adr-0094-multi-agent-handoff-and-task-delegation-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-0095-serverless-architecture-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0096-edge-computing-architecture-governance.rules.json +0 -29
- package/rulesets/adr/generated/adr-0097-knowledge-lifecycle-governance-standard.rules.json +0 -29
- package/rulesets/adr/generated/adr-0098-rest-uri-versioning-and-deprecation-policy.rules.json +0 -29
- package/rulesets/adr/generated/adr-0099-opa-bundle-distribution-via-s3-minio.rules.json +0 -27
- package/rulesets/adr/generated/adr-ai-augmented-0001-harness-engineering-for-ai-augmented-development.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0002-mcp-integration-protocol-for-agent-tool-invocation.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0003-model-selection-governance-for-ai-augmented-workflows.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0004-agents-md-as-mandatory-repository-artifact.rules.json +0 -29
- package/rulesets/adr/generated/adr-ai-augmented-0005-human-in-the-loop-policy-for-autonomous-agent-operations.rules.json +0 -29
- package/rulesets/adr/generated/adr-android-0042-canonical-android-native-mobile-architecture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0041-canonical-net-c-backend-architecture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0060-net-multi-tenancy-dual-layer-strategy-ef-core-sql-server.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0061-transactional-event-lifecycle-in-ef-core.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0062-net-immutable-audit-trail-via-ddl-triggers-delta-capture.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0063-b2b-request-idempotency-middleware-in-asp-net-core.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0064-net-request-scope-observability-context-propagation.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0065-net-pii-safe-structured-logging-pipeline-serilog.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0066-net-lightweight-http-idempotency-via-imemorycache-idistribut.rules.json +0 -28
- package/rulesets/adr/generated/adr-dotnet-0069-net-grpc-service-setup-protobuf-contracts.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0070-net-api-endpoint-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-dotnet-0071-net-data-access-strategy-ef-core-as-default-orm-dapper-for-o.rules.json +0 -27
- package/rulesets/adr/generated/adr-dotnet-0072-net-aop-cross-cutting-concern-strategy-dispatchproxy-over-pi.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0003-strict-typescript-standards.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0004-frontend-offline-resilience.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0007-observability-with-opentelemetry-loki-and-jaeger.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0008-progressive-multi-module-evolution-with-api-gateway-and-bff-.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0012-advanced-authorization-rbac-abac-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0021-high-performance-authentication-graph-compilation.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0022-contextual-authentication-and-pluggable-output-projections.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0023-centralized-authorization-core-strategy.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0026-adaptive-mfa-and-passwordless-platform.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0027-dual-protocol-api-strategy-rest-grpc.rules.json +0 -28
- package/rulesets/adr/generated/adr-nodejs-0029-adoption-of-tactical-ddd-primitives-library.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0038-enterprise-error-handling-result-pattern-strategy.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0043-data-access-and-orm-strategy-for-node-js.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0044-frontend-clean-architecture-layer-boundaries-react.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0045-frontend-state-management-zustand-tanstack-query-dual-strate.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0046-prohibition-of-raw-technical-identifiers-in-user-interfaces.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0047-actionable-user-error-contract-and-correlated-diagnostics.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0048-feature-flag-system-scope-and-structured-criteria-model.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0074-monorepo-orchestration-with-nx.rules.json +0 -29
- package/rulesets/adr/generated/adr-nodejs-0075-application-gateway-bff-with-nestjs.rules.json +0 -29
- package/rulesets/architecture/README.es.md +0 -21
- package/rulesets/architecture/README.md +0 -21
- package/rulesets/architecture/opa/progressive-axis.rego +0 -50
- package/rulesets/cli/README.es.md +0 -17
- package/rulesets/cli/README.md +0 -17
- package/rulesets/cli/core-parity.rules.json +0 -61
- package/rulesets/cli/release-readiness.rules.json +0 -77
- package/rulesets/compliance-baseline/README.es.md +0 -26
- package/rulesets/compliance-baseline/README.md +0 -26
- package/rulesets/compliance-baseline/compliance-baseline.rules.json +0 -81
- package/rulesets/contracts/README.es.md +0 -19
- package/rulesets/contracts/README.md +0 -19
- package/rulesets/contracts/evolith-machine-contracts.json +0 -29
- package/rulesets/contracts/fixtures/gate-evidence.success.json +0 -10
- package/rulesets/contracts/fixtures/output-envelope.success.json +0 -23
- package/rulesets/cross-cutting/README.es.md +0 -14
- package/rulesets/cross-cutting/README.md +0 -14
- package/rulesets/cross-cutting/compliance-baseline.rules.json +0 -81
- package/rulesets/cross-cutting/definition-of-done.rules.json +0 -135
- package/rulesets/cross-cutting/engineering-manifesto.rules.json +0 -145
- package/rulesets/cross-cutting/repository-taxonomy.rules.json +0 -172
- package/rulesets/definition-of-done/README.es.md +0 -26
- package/rulesets/definition-of-done/README.md +0 -26
- package/rulesets/definition-of-done/definition-of-done.rules.json +0 -135
- package/rulesets/engineering-manifesto/README.es.md +0 -26
- package/rulesets/engineering-manifesto/README.md +0 -26
- package/rulesets/engineering-manifesto/engineering-manifesto.rules.json +0 -145
- package/rulesets/evidence/README.es.md +0 -12
- package/rulesets/evidence/README.md +0 -12
- package/rulesets/evidence/evidence-manifest.rules.json +0 -48
- package/rulesets/executive-scorecards/executive-scorecards.rules.es.json +0 -213
- package/rulesets/executive-scorecards/executive-scorecards.rules.json +0 -213
- package/rulesets/governance/README.es.md +0 -13
- package/rulesets/governance/README.md +0 -13
- package/rulesets/governance/abac-mcp-access.rules.es.json +0 -41
- package/rulesets/governance/abac-mcp-access.rules.json +0 -41
- package/rulesets/governance/executive-scorecards.rules.es.json +0 -213
- package/rulesets/governance/executive-scorecards.rules.json +0 -213
- package/rulesets/governance/inheritance.rules.json +0 -115
- package/rulesets/governance/knowledge-intake.rules.json +0 -18
- package/rulesets/governance/open-core-boundary.rules.es.json +0 -148
- package/rulesets/governance/open-core-boundary.rules.json +0 -148
- package/rulesets/governance/satellite-contracts.rules.json +0 -183
- package/rulesets/infrastructure/helm-enforcement.rules.json +0 -21
- package/rulesets/infrastructure/opa/helm-enforcement.rego +0 -25
- package/rulesets/infrastructure/opa/helm-enforcement.test.rego +0 -31
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.rego +0 -115
- package/rulesets/infrastructure/opa/opa-sidecar-bundle.test.rego +0 -66
- package/rulesets/infrastructure/opa-sidecar-bundle.rules.json +0 -18
- package/rulesets/mcp/README.es.md +0 -12
- package/rulesets/mcp/README.md +0 -12
- package/rulesets/mcp/protocol-compliance.rules.json +0 -57
- package/rulesets/observability/README.es.md +0 -12
- package/rulesets/observability/README.md +0 -12
- package/rulesets/observability/telemetry-evidence.rules.json +0 -48
- package/rulesets/opa/README.es.md +0 -22
- package/rulesets/opa/README.md +0 -22
- package/rulesets/opa/abac-mcp-tool-access.rego +0 -122
- package/rulesets/opa/abac-mcp-tool-access.test.rego +0 -33
- package/rulesets/opa/anti-corruption-layer.rego +0 -39
- package/rulesets/opa/anti-corruption-layer.test.rego +0 -118
- package/rulesets/opa/ci-cd.rego +0 -41
- package/rulesets/opa/ci-cd.test.rego +0 -23
- package/rulesets/opa/cicd-quality-gates.rego +0 -29
- package/rulesets/opa/cicd-quality-gates.test.rego +0 -54
- package/rulesets/opa/cli-core-parity.rego +0 -17
- package/rulesets/opa/cli-core-parity.test.rego +0 -39
- package/rulesets/opa/cli-readiness.rego +0 -32
- package/rulesets/opa/cli-readiness.test.rego +0 -23
- package/rulesets/opa/cli-release-readiness.rego +0 -21
- package/rulesets/opa/cli-release-readiness.test.rego +0 -46
- package/rulesets/opa/compliance-baseline.rego +0 -95
- package/rulesets/opa/compliance-baseline.test.rego +0 -89
- package/rulesets/opa/dod.rego +0 -42
- package/rulesets/opa/dod.test.rego +0 -250
- package/rulesets/opa/engineering-manifesto.rego +0 -78
- package/rulesets/opa/engineering-manifesto.test.rego +0 -133
- package/rulesets/opa/evidence.rego +0 -64
- package/rulesets/opa/evidence.test.rego +0 -23
- package/rulesets/opa/executive-scorecards.rego +0 -41
- package/rulesets/opa/executive-scorecards.test.rego +0 -60
- package/rulesets/opa/gitflow-branching.rego +0 -41
- package/rulesets/opa/gitflow-branching.test.rego +0 -60
- package/rulesets/opa/governance.rego +0 -39
- package/rulesets/opa/governance.test.rego +0 -23
- package/rulesets/opa/hexagonal-architecture.rego +0 -33
- package/rulesets/opa/hexagonal-architecture.test.rego +0 -57
- package/rulesets/opa/infrastructure/helm-enforcement.rego +0 -33
- package/rulesets/opa/infrastructure/opa-sidecar-bundle.rego +0 -42
- package/rulesets/opa/knowledge-intake.rego +0 -98
- package/rulesets/opa/knowledge-intake.test.rego +0 -50
- package/rulesets/opa/main.rego +0 -147
- package/rulesets/opa/main_test.rego +0 -149
- package/rulesets/opa/mcp.rego +0 -61
- package/rulesets/opa/mcp.test.rego +0 -27
- package/rulesets/opa/multi-runtime.rego +0 -33
- package/rulesets/opa/multi-runtime.test.rego +0 -53
- package/rulesets/opa/multi-tenancy.rego +0 -33
- package/rulesets/opa/multi-tenancy.test.rego +0 -53
- package/rulesets/opa/open-core-boundary.rego +0 -33
- package/rulesets/opa/open-core-boundary.test.rego +0 -60
- package/rulesets/opa/protocol-selection.rego +0 -29
- package/rulesets/opa/protocol-selection.test.rego +0 -46
- package/rulesets/opa/rbac/gate-role-enforcement.rego +0 -112
- package/rulesets/opa/repository-taxonomy.rego +0 -98
- package/rulesets/opa/repository-taxonomy.test.rego +0 -91
- package/rulesets/opa/satellite-contracts.rego +0 -42
- package/rulesets/opa/satellite-contracts.test.rego +0 -70
- package/rulesets/opa/schemas/abac-mcp-tool-access.input.schema.json +0 -21
- package/rulesets/opa/schemas/anti-corruption-layer.input.schema.json +0 -25
- package/rulesets/opa/schemas/ci-cd.input.schema.json +0 -27
- package/rulesets/opa/schemas/cicd-quality-gates.input.schema.json +0 -33
- package/rulesets/opa/schemas/cli-core-parity.input.schema.json +0 -30
- package/rulesets/opa/schemas/cli-readiness.input.schema.json +0 -28
- package/rulesets/opa/schemas/cli-release-readiness.input.schema.json +0 -26
- package/rulesets/opa/schemas/compliance-baseline.input.schema.json +0 -25
- package/rulesets/opa/schemas/dod.input.schema.json +0 -38
- package/rulesets/opa/schemas/engineering-manifesto.input.schema.json +0 -24
- package/rulesets/opa/schemas/evidence.input.schema.json +0 -35
- package/rulesets/opa/schemas/executive-scorecards.input.schema.json +0 -36
- package/rulesets/opa/schemas/gitflow-branching.input.schema.json +0 -36
- package/rulesets/opa/schemas/governance.input.schema.json +0 -19
- package/rulesets/opa/schemas/hexagonal-architecture.input.schema.json +0 -46
- package/rulesets/opa/schemas/knowledge-intake.input.schema.json +0 -57
- package/rulesets/opa/schemas/mcp.input.schema.json +0 -38
- package/rulesets/opa/schemas/multi-runtime.input.schema.json +0 -27
- package/rulesets/opa/schemas/multi-tenancy.input.schema.json +0 -27
- package/rulesets/opa/schemas/open-core-boundary.input.schema.json +0 -36
- package/rulesets/opa/schemas/protocol-selection.input.schema.json +0 -26
- package/rulesets/opa/schemas/repository-taxonomy.input.schema.json +0 -18
- package/rulesets/opa/schemas/satellite-contracts.input.schema.json +0 -38
- package/rulesets/opa/schemas/taxonomy.input.schema.json +0 -27
- package/rulesets/opa/schemas/testing-pyramid.input.schema.json +0 -42
- package/rulesets/opa/schemas/version-pinning.input.schema.json +0 -39
- package/rulesets/opa/sdlc/coverage.rego +0 -49
- package/rulesets/opa/sdlc/coverage.test.rego +0 -29
- package/rulesets/opa/sdlc/pyramid-distribution.rego +0 -31
- package/rulesets/opa/sdlc/pyramid-distribution.test.rego +0 -33
- package/rulesets/opa/taxonomy.rego +0 -51
- package/rulesets/opa/taxonomy.test.rego +0 -28
- package/rulesets/opa/telemetry-evidence.rego +0 -102
- package/rulesets/opa/testing-pyramid.rego +0 -49
- package/rulesets/opa/testing-pyramid.test.rego +0 -81
- package/rulesets/opa/version-pinning.rego +0 -99
- package/rulesets/opa/version-pinning.test.rego +0 -28
- package/rulesets/phase-gates/README.es.md +0 -28
- package/rulesets/phase-gates/README.md +0 -28
- package/rulesets/phase-gates/phase-gates.rules.json +0 -297
- package/rulesets/quality-thresholds/README.es.md +0 -28
- package/rulesets/quality-thresholds/README.md +0 -28
- package/rulesets/quality-thresholds/quality-thresholds.rules.json +0 -96
- package/rulesets/repository-taxonomy/README.es.md +0 -26
- package/rulesets/repository-taxonomy/README.md +0 -26
- package/rulesets/repository-taxonomy/repository-taxonomy.rules.json +0 -172
- package/rulesets/satellite-contracts/README.es.md +0 -27
- package/rulesets/satellite-contracts/README.md +0 -27
- package/rulesets/satellite-contracts/satellite-contracts.rules.json +0 -183
- package/rulesets/schema/README.es.md +0 -39
- package/rulesets/schema/README.md +0 -39
- package/rulesets/schema/adr.schema.json +0 -138
- package/rulesets/schema/agile-backlog.schema.json +0 -91
- package/rulesets/schema/ballpark-estimation.schema.json +0 -109
- package/rulesets/schema/build-vs-compose.schema.json +0 -98
- package/rulesets/schema/cli-impact-analysis.schema.json +0 -114
- package/rulesets/schema/discovery-canvas.schema.json +0 -92
- package/rulesets/schema/evolith-user-story.schema.json +0 -105
- package/rulesets/schema/evolith-yaml.schema.json +0 -191
- package/rulesets/schema/functional-story.schema.json +0 -111
- package/rulesets/schema/gate-evidence.schema.json +0 -85
- package/rulesets/schema/integration-evidence.schema.json +0 -47
- package/rulesets/schema/knowledge-intake.schema.json +0 -67
- package/rulesets/schema/knowledge-projection.schema.json +0 -24
- package/rulesets/schema/maturity-evidence.schema.json +0 -59
- package/rulesets/schema/observability-validation.schema.json +0 -85
- package/rulesets/schema/on-call-handoff.schema.json +0 -91
- package/rulesets/schema/output-envelope.schema.json +0 -102
- package/rulesets/schema/prd.schema.json +0 -117
- package/rulesets/schema/release-notes.schema.json +0 -138
- package/rulesets/schema/rollback-rehearsal.schema.json +0 -73
- package/rulesets/schema/ruleset-sdlc.schema.json +0 -59
- package/rulesets/schema/ruleset-standard.schema.json +0 -73
- package/rulesets/schema/security-scan-report.schema.json +0 -79
- package/rulesets/schema/source-registry.schema.json +0 -51
- package/rulesets/schema/technical-feasibility.schema.json +0 -66
- package/rulesets/schema/technical-story.schema.json +0 -112
- package/rulesets/schema/test-summary-report.schema.json +0 -158
- package/rulesets/schema/topology-composition.schema.json +0 -43
- package/rulesets/schema/topology-manifest.schema.json +0 -421
- package/rulesets/sdlc/README.es.md +0 -12
- package/rulesets/sdlc/README.md +0 -12
- package/rulesets/sdlc/default-workflow.yaml +0 -73
- package/rulesets/sdlc/dependency-pinning.rules.json +0 -183
- package/rulesets/sdlc/phase-gates.rules.json +0 -297
- package/rulesets/sdlc/quality-thresholds.rules.json +0 -96
- package/rulesets/topologies/README.es.md +0 -42
- package/rulesets/topologies/README.md +0 -42
- package/rulesets/topologies/agentic-ai/README.es.md +0 -142
- package/rulesets/topologies/agentic-ai/README.md +0 -142
- package/rulesets/topologies/agentic-ai/adoption.es.md +0 -37
- package/rulesets/topologies/agentic-ai/adoption.md +0 -37
- package/rulesets/topologies/agentic-ai/agent.config.schema.json +0 -100
- package/rulesets/topologies/agentic-ai/agentic-ai.rego +0 -46
- package/rulesets/topologies/agentic-ai/agentic-ai.rules.json +0 -109
- package/rulesets/topologies/agentic-ai/agentic-ai.test.rego +0 -68
- package/rulesets/topologies/agentic-ai/agentic-ai.wasm +0 -0
- package/rulesets/topologies/agentic-ai/cli/cli-flows.es.md +0 -35
- package/rulesets/topologies/agentic-ai/cli/cli-flows.md +0 -45
- package/rulesets/topologies/agentic-ai/evidence.es.md +0 -25
- package/rulesets/topologies/agentic-ai/evidence.md +0 -25
- package/rulesets/topologies/agentic-ai/evolution.es.md +0 -26
- package/rulesets/topologies/agentic-ai/evolution.md +0 -26
- package/rulesets/topologies/agentic-ai/fixtures/invalid-agent.config.json +0 -48
- package/rulesets/topologies/agentic-ai/fixtures/valid-agent.config.json +0 -48
- package/rulesets/topologies/agentic-ai/maturity.es.md +0 -33
- package/rulesets/topologies/agentic-ai/maturity.md +0 -33
- package/rulesets/topologies/agentic-ai/mcp/mcp-manifest.json +0 -100
- package/rulesets/topologies/agentic-ai/openapi/openapi.yaml +0 -187
- package/rulesets/topologies/agentic-ai/operations.es.md +0 -32
- package/rulesets/topologies/agentic-ai/operations.md +0 -32
- package/rulesets/topologies/agentic-ai/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/agentic-ai/parity-fixtures/violation.json +0 -22
- package/rulesets/topologies/agentic-ai/patterns.es.md +0 -32
- package/rulesets/topologies/agentic-ai/patterns.md +0 -32
- package/rulesets/topologies/agentic-ai/resilience.es.md +0 -26
- package/rulesets/topologies/agentic-ai/resilience.md +0 -26
- package/rulesets/topologies/agentic-ai/runbooks.es.md +0 -48
- package/rulesets/topologies/agentic-ai/runbooks.md +0 -48
- package/rulesets/topologies/agentic-ai/security.es.md +0 -26
- package/rulesets/topologies/agentic-ai/security.md +0 -26
- package/rulesets/topologies/agentic-ai/topology.manifest.json +0 -127
- package/rulesets/topologies/data-mesh/README.es.md +0 -69
- package/rulesets/topologies/data-mesh/README.md +0 -69
- package/rulesets/topologies/data-mesh/adoption.es.md +0 -95
- package/rulesets/topologies/data-mesh/adoption.md +0 -95
- package/rulesets/topologies/data-mesh/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/data-mesh/cli/cli-flows.md +0 -53
- package/rulesets/topologies/data-mesh/data-mesh.rego +0 -11
- package/rulesets/topologies/data-mesh/data-mesh.rules.json +0 -100
- package/rulesets/topologies/data-mesh/data-mesh.test.rego +0 -107
- package/rulesets/topologies/data-mesh/data-mesh.wasm +0 -0
- package/rulesets/topologies/data-mesh/evidence.es.md +0 -111
- package/rulesets/topologies/data-mesh/evidence.md +0 -111
- package/rulesets/topologies/data-mesh/evolution.es.md +0 -67
- package/rulesets/topologies/data-mesh/evolution.md +0 -67
- package/rulesets/topologies/data-mesh/fixtures/invalid.topology.config.json +0 -12
- package/rulesets/topologies/data-mesh/fixtures/valid.topology.config.json +0 -12
- package/rulesets/topologies/data-mesh/maturity.es.md +0 -36
- package/rulesets/topologies/data-mesh/maturity.md +0 -36
- package/rulesets/topologies/data-mesh/mcp/mcp-manifest.json +0 -68
- package/rulesets/topologies/data-mesh/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/data-mesh/operations.es.md +0 -63
- package/rulesets/topologies/data-mesh/operations.md +0 -63
- package/rulesets/topologies/data-mesh/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/data-mesh/parity-fixtures/violation.json +0 -21
- package/rulesets/topologies/data-mesh/patterns.es.md +0 -67
- package/rulesets/topologies/data-mesh/patterns.md +0 -67
- package/rulesets/topologies/data-mesh/resilience.es.md +0 -64
- package/rulesets/topologies/data-mesh/resilience.md +0 -64
- package/rulesets/topologies/data-mesh/runbooks.es.md +0 -147
- package/rulesets/topologies/data-mesh/runbooks.md +0 -147
- package/rulesets/topologies/data-mesh/security.es.md +0 -66
- package/rulesets/topologies/data-mesh/security.md +0 -66
- package/rulesets/topologies/data-mesh/topology.config.schema.json +0 -30
- package/rulesets/topologies/data-mesh/topology.manifest.json +0 -107
- package/rulesets/topologies/edge-computing/README.es.md +0 -81
- package/rulesets/topologies/edge-computing/README.md +0 -81
- package/rulesets/topologies/edge-computing/adoption.es.md +0 -268
- package/rulesets/topologies/edge-computing/adoption.md +0 -268
- package/rulesets/topologies/edge-computing/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/edge-computing/cli/cli-flows.md +0 -53
- package/rulesets/topologies/edge-computing/edge-computing.rego +0 -41
- package/rulesets/topologies/edge-computing/edge-computing.rules.json +0 -50
- package/rulesets/topologies/edge-computing/edge-computing.test.rego +0 -33
- package/rulesets/topologies/edge-computing/edge-computing.wasm +0 -0
- package/rulesets/topologies/edge-computing/evidence.es.md +0 -263
- package/rulesets/topologies/edge-computing/evidence.md +0 -263
- package/rulesets/topologies/edge-computing/evolution.es.md +0 -257
- package/rulesets/topologies/edge-computing/evolution.md +0 -257
- package/rulesets/topologies/edge-computing/fixtures/invalid.topology.config.json +0 -6
- package/rulesets/topologies/edge-computing/fixtures/valid.topology.config.json +0 -6
- package/rulesets/topologies/edge-computing/maturity.es.md +0 -36
- package/rulesets/topologies/edge-computing/maturity.md +0 -36
- package/rulesets/topologies/edge-computing/mcp/mcp-manifest.json +0 -72
- package/rulesets/topologies/edge-computing/openapi/openapi.yaml +0 -187
- package/rulesets/topologies/edge-computing/operations.es.md +0 -148
- package/rulesets/topologies/edge-computing/operations.md +0 -148
- package/rulesets/topologies/edge-computing/parity-fixtures/compliant.json +0 -12
- package/rulesets/topologies/edge-computing/parity-fixtures/violation.json +0 -13
- package/rulesets/topologies/edge-computing/patterns.es.md +0 -291
- package/rulesets/topologies/edge-computing/patterns.md +0 -290
- package/rulesets/topologies/edge-computing/resilience.es.md +0 -232
- package/rulesets/topologies/edge-computing/resilience.md +0 -229
- package/rulesets/topologies/edge-computing/runbooks.es.md +0 -405
- package/rulesets/topologies/edge-computing/runbooks.md +0 -405
- package/rulesets/topologies/edge-computing/security.es.md +0 -218
- package/rulesets/topologies/edge-computing/security.md +0 -218
- package/rulesets/topologies/edge-computing/topology.config.schema.json +0 -13
- package/rulesets/topologies/edge-computing/topology.manifest.json +0 -113
- package/rulesets/topologies/event-driven/README.es.md +0 -71
- package/rulesets/topologies/event-driven/README.md +0 -71
- package/rulesets/topologies/event-driven/adoption.es.md +0 -67
- package/rulesets/topologies/event-driven/adoption.md +0 -67
- package/rulesets/topologies/event-driven/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/event-driven/cli/cli-flows.md +0 -53
- package/rulesets/topologies/event-driven/event-driven.rego +0 -11
- package/rulesets/topologies/event-driven/event-driven.rules.json +0 -100
- package/rulesets/topologies/event-driven/event-driven.test.rego +0 -107
- package/rulesets/topologies/event-driven/event-driven.wasm +0 -0
- package/rulesets/topologies/event-driven/evidence.es.md +0 -69
- package/rulesets/topologies/event-driven/evidence.md +0 -69
- package/rulesets/topologies/event-driven/evolution.es.md +0 -59
- package/rulesets/topologies/event-driven/evolution.md +0 -59
- package/rulesets/topologies/event-driven/fixtures/invalid.topology.config.json +0 -12
- package/rulesets/topologies/event-driven/fixtures/valid.topology.config.json +0 -12
- package/rulesets/topologies/event-driven/maturity.es.md +0 -36
- package/rulesets/topologies/event-driven/maturity.md +0 -36
- package/rulesets/topologies/event-driven/mcp/mcp-manifest.json +0 -68
- package/rulesets/topologies/event-driven/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/event-driven/operations.es.md +0 -67
- package/rulesets/topologies/event-driven/operations.md +0 -67
- package/rulesets/topologies/event-driven/parity-fixtures/compliant.json +0 -18
- package/rulesets/topologies/event-driven/parity-fixtures/violation.json +0 -21
- package/rulesets/topologies/event-driven/patterns.es.md +0 -68
- package/rulesets/topologies/event-driven/patterns.md +0 -68
- package/rulesets/topologies/event-driven/resilience.es.md +0 -65
- package/rulesets/topologies/event-driven/resilience.md +0 -65
- package/rulesets/topologies/event-driven/runbooks.es.md +0 -79
- package/rulesets/topologies/event-driven/runbooks.md +0 -79
- package/rulesets/topologies/event-driven/security.es.md +0 -59
- package/rulesets/topologies/event-driven/security.md +0 -59
- package/rulesets/topologies/event-driven/topology.config.schema.json +0 -30
- package/rulesets/topologies/event-driven/topology.manifest.json +0 -109
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.es.json +0 -111
- package/rulesets/topologies/progressive-axis/distributed-modules/distributed-modules.rules.json +0 -111
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.es.json +0 -106
- package/rulesets/topologies/progressive-axis/microservices/microservices.rules.json +0 -106
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.es.json +0 -148
- package/rulesets/topologies/progressive-axis/modular-monolith/modular-monolith.rules.json +0 -148
- package/rulesets/topologies/serverless/README.es.md +0 -74
- package/rulesets/topologies/serverless/README.md +0 -74
- package/rulesets/topologies/serverless/adoption.es.md +0 -50
- package/rulesets/topologies/serverless/adoption.md +0 -50
- package/rulesets/topologies/serverless/cli/cli-flows.es.md +0 -41
- package/rulesets/topologies/serverless/cli/cli-flows.md +0 -53
- package/rulesets/topologies/serverless/evidence.es.md +0 -66
- package/rulesets/topologies/serverless/evidence.md +0 -66
- package/rulesets/topologies/serverless/evolution.es.md +0 -36
- package/rulesets/topologies/serverless/evolution.md +0 -36
- package/rulesets/topologies/serverless/fixtures/invalid.topology.config.json +0 -6
- package/rulesets/topologies/serverless/fixtures/valid.topology.config.json +0 -6
- package/rulesets/topologies/serverless/maturity.es.md +0 -36
- package/rulesets/topologies/serverless/maturity.md +0 -36
- package/rulesets/topologies/serverless/mcp/mcp-manifest.json +0 -72
- package/rulesets/topologies/serverless/openapi/openapi.yaml +0 -186
- package/rulesets/topologies/serverless/operations.es.md +0 -36
- package/rulesets/topologies/serverless/operations.md +0 -36
- package/rulesets/topologies/serverless/parity-fixtures/compliant.json +0 -13
- package/rulesets/topologies/serverless/parity-fixtures/violation.json +0 -15
- package/rulesets/topologies/serverless/patterns.es.md +0 -36
- package/rulesets/topologies/serverless/patterns.md +0 -36
- package/rulesets/topologies/serverless/resilience.es.md +0 -36
- package/rulesets/topologies/serverless/resilience.md +0 -36
- package/rulesets/topologies/serverless/runbooks.es.md +0 -68
- package/rulesets/topologies/serverless/runbooks.md +0 -68
- package/rulesets/topologies/serverless/security.es.md +0 -36
- package/rulesets/topologies/serverless/security.md +0 -36
- package/rulesets/topologies/serverless/serverless.rego +0 -32
- package/rulesets/topologies/serverless/serverless.rules.json +0 -33
- package/rulesets/topologies/serverless/serverless.test.rego +0 -28
- package/rulesets/topologies/serverless/serverless.wasm +0 -0
- package/rulesets/topologies/serverless/topology.config.schema.json +0 -28
- package/rulesets/topologies/serverless/topology.manifest.json +0 -114
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
# Guía de Libretas de Operaciones de Malla de Datos
|
|
2
|
-
|
|
3
|
-
> **Navegación Bilingüe:** [English](./runbooks.md) | [Español](./runbooks.es.md)
|
|
4
|
-
|
|
5
|
-
**Propietario:** Arquitectura de Datos
|
|
6
|
-
**Topología:** Malla de Datos
|
|
7
|
-
**Reglas Relacionadas:** DAM-R02, DAM-R07, DAM-R08
|
|
8
|
-
|
|
9
|
-
## Propósito
|
|
10
|
-
|
|
11
|
-
Esta guía proporciona libretas de operaciones para escenarios comunes de malla de datos. Cada libreta define procedimientos paso a paso para una tarea operativa específica, incluyendo puntos de decisión, pasos de reversión y comandos de validación.
|
|
12
|
-
|
|
13
|
-
## Libreta 1 — Despliegue de Producto de Datos
|
|
14
|
-
|
|
15
|
-
### Disparador
|
|
16
|
-
El equipo de dominio ha completado el diseño del producto y está listo para publicar.
|
|
17
|
-
|
|
18
|
-
### Procedimiento
|
|
19
|
-
1. Validar esquema contra reglas de compatibilidad backward según DAM-R08.
|
|
20
|
-
2. Verificar que los SLAs de calidad estén declarados y dentro de umbrales de la plataforma.
|
|
21
|
-
3. Confirmar que las políticas de acceso estén publicadas y ejecutables.
|
|
22
|
-
4. Registrar producto en índice de descubrimiento según DAM-R09.
|
|
23
|
-
5. Ejecutar validación de plataforma: `node .harness/scripts/ci/01-validate-docs.mjs --target data-mesh`
|
|
24
|
-
6. Publicar producto y verificar actualización del índice de descubrimiento.
|
|
25
|
-
7. Notificar a consumidores registrados de la disponibilidad.
|
|
26
|
-
|
|
27
|
-
### Reversión
|
|
28
|
-
Si la publicación falla: eliminar producto del índice de descubrimiento, revertir metadatos de la plataforma, notificar a partes interesadas.
|
|
29
|
-
|
|
30
|
-
### Validación
|
|
31
|
-
- Producto visible en catálogo de descubrimiento
|
|
32
|
-
- Versión de esquema coincide con versión registrada
|
|
33
|
-
- Políticas de acceso ejecutadas en tiempo de consulta
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Libreta 2 — Evolución de Esquemas
|
|
38
|
-
|
|
39
|
-
### Disparador
|
|
40
|
-
El equipo de dominio necesita modificar el esquema de un producto publicado.
|
|
41
|
-
|
|
42
|
-
### Procedimiento
|
|
43
|
-
1. Clasificar el cambio: aditivo (no rupturante) o eliminación/renombrado (rupturante).
|
|
44
|
-
2. Para cambios aditivos: actualizar esquema, registrar nueva versión, mantener compatibilidad backward según DAM-R08.
|
|
45
|
-
3. Para cambios rupturantes: crear plan de deprecación con cronograma de notificación a consumidores.
|
|
46
|
-
4. Actualizar metadatos del producto con nueva versión de esquema.
|
|
47
|
-
5. Ejecutar validación: `node .harness/scripts/ci/01-validate-docs.mjs --target data-mesh`
|
|
48
|
-
6. Publicar esquema actualizado y notificar a consumidores.
|
|
49
|
-
7. Monitorear progreso de migración de consumidores.
|
|
50
|
-
|
|
51
|
-
### Reversión
|
|
52
|
-
Revertir a versión de esquema anterior. Notificar a consumidores de la reversión. Investigar causa raíz.
|
|
53
|
-
|
|
54
|
-
### Validación
|
|
55
|
-
- Versión anterior de esquema accesible durante ventana de deprecación
|
|
56
|
-
- Contratos de consumidor actualizados o migración completa
|
|
57
|
-
- Sin fallos de consulta contra nuevo esquema
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## Libreta 3 — Respuesta a Incidentes de Calidad
|
|
62
|
-
|
|
63
|
-
### Disparador
|
|
64
|
-
Una verificación de salud automatizada falla o un consumidor reporta un problema de calidad.
|
|
65
|
-
|
|
66
|
-
### Procedimiento
|
|
67
|
-
1. Acknowledger incidente en sistema de monitoreo de la plataforma.
|
|
68
|
-
2. Identificar productos afectados y consumidores downstream.
|
|
69
|
-
3. Evaluar severidad: crítico (SLA de consumidor impactado), estándar (calidad degradada), bajo (problema cosmético).
|
|
70
|
-
4. Para incidentes críticos: activar estrategias de respaldo según contratos de consumidor.
|
|
71
|
-
5. Investigar causa raíz: fallo de flujo, deriva de esquema, corrupción de datos fuente.
|
|
72
|
-
6. Implementar corrección: reinicio de flujo, corrección de datos, reversión de esquema.
|
|
73
|
-
7. Validar corrección: re-ejecutar verificaciones de salud, verificar completitud y frescura de datos.
|
|
74
|
-
8. Documentar incidente y post-mortem.
|
|
75
|
-
|
|
76
|
-
### Reversión
|
|
77
|
-
Si la corrección introduce nuevos problemas: revertir cambios, restaurar desde backup, re-activar respaldos de consumidor.
|
|
78
|
-
|
|
79
|
-
### Validación
|
|
80
|
-
- Verificación de salud vuelve a estado de aprobación
|
|
81
|
-
- SLAs de consumidor restaurados
|
|
82
|
-
- Incidente documentado con causa raíz
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Libreta 4 — Migración de Contrato de Consumidor
|
|
87
|
-
|
|
88
|
-
### Disparador
|
|
89
|
-
Un consumidor necesita migrar a una nueva versión de esquema o producto.
|
|
90
|
-
|
|
91
|
-
### Procedimiento
|
|
92
|
-
1. Identificar versión actual del contrato del consumidor y dependencias.
|
|
93
|
-
2. Revisar guía de migración publicada por el dominio productor.
|
|
94
|
-
3. Actualizar aplicación del consumidor para soportar nueva versión de esquema.
|
|
95
|
-
4. Probar con consultas de validación contra versiones antigua y nueva.
|
|
96
|
-
5. Actualizar registro de contrato de consumo en plataforma.
|
|
97
|
-
6. Monitorear consultas del consumidor por errores durante transición.
|
|
98
|
-
7. Descontinuar uso de versión antigua después de ventana de migración.
|
|
99
|
-
|
|
100
|
-
### Reversión
|
|
101
|
-
Revertir aplicación del consumidor a versión anterior de esquema. Restaurar contrato de consumo anterior.
|
|
102
|
-
|
|
103
|
-
### Validación
|
|
104
|
-
- Consultas del consumidor exitosas contra nuevo esquema
|
|
105
|
-
- Sin regresiones de calidad de datos
|
|
106
|
-
- Contrato de consumo actualizado en plataforma
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Libreta 5 — Remediación de Vacíos de Linaje
|
|
111
|
-
|
|
112
|
-
### Disparador
|
|
113
|
-
La validación de linaje descubre documentación faltante aguas arriba o abajo.
|
|
114
|
-
|
|
115
|
-
### Procedimiento
|
|
116
|
-
1. Identificar el vacío de linaje: fuente aguas arriba faltante, consumidor aguas abajo faltante o transformación no documentada.
|
|
117
|
-
2. Contactar equipos de dominio para información de linaje faltante.
|
|
118
|
-
3. Actualizar metadatos de linaje en la plataforma.
|
|
119
|
-
4. Validar completitud del linaje: `node .harness/scripts/ci/01-validate-docs.mjs --target data-mesh`
|
|
120
|
-
5. Verificar que el linaje refleje el flujo real de datos.
|
|
121
|
-
6. Documentar excepciones o limitaciones del linaje.
|
|
122
|
-
|
|
123
|
-
### Reversión
|
|
124
|
-
Revertir metadatos de linaje a estado anterior si las actualizaciones introducen errores.
|
|
125
|
-
|
|
126
|
-
### Validación
|
|
127
|
-
- Gráfico de linaje completo para productos afectados
|
|
128
|
-
- Sin flujos de datos huérfanos
|
|
129
|
-
- Metadatos de linaje coinciden con topología real de flujos
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## Comandos de Validación
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
# Validar procedimientos de libretas
|
|
137
|
-
node .harness/scripts/ci/01-validate-docs.mjs --target data-mesh
|
|
138
|
-
|
|
139
|
-
# Verificar paridad bilingüe
|
|
140
|
-
node .harness/scripts/ci/04-check-bilingual-parity.mjs
|
|
141
|
-
|
|
142
|
-
# Ejecutar panel de cobertura
|
|
143
|
-
node .harness/scripts/coverage-dashboard.mjs --area data-mesh
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
[Volver al Perfil de Malla de Datos](./README.es.md)
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
# Data Mesh — Runbooks Guide
|
|
2
|
-
|
|
3
|
-
> **Bilingual Navigation:** [English](./runbooks.md) | [Español](./runbooks.es.md)
|
|
4
|
-
|
|
5
|
-
**Owner:** Data Architecture
|
|
6
|
-
**Topology:** Data Mesh
|
|
7
|
-
**Related Rules:** DAM-R02, DAM-R07, DAM-R08
|
|
8
|
-
|
|
9
|
-
## Purpose
|
|
10
|
-
|
|
11
|
-
This guide provides operational runbooks for common data mesh scenarios. Each runbook defines step-by-step procedures for a specific operational task, including decision points, rollback steps, and validation commands.
|
|
12
|
-
|
|
13
|
-
## Runbook 1 — Data Product Deployment
|
|
14
|
-
|
|
15
|
-
### Trigger
|
|
16
|
-
Domain team has completed product design and is ready to publish.
|
|
17
|
-
|
|
18
|
-
### Procedure
|
|
19
|
-
1. Validate schema against backward-compatibility rules per DAM-R08.
|
|
20
|
-
2. Verify quality SLOs are declared and within platform thresholds.
|
|
21
|
-
3. Confirm access policies are published and enforceable.
|
|
22
|
-
4. Register product in discovery index per DAM-R09.
|
|
23
|
-
5. Run platform validation: `node .harness/scripts/ci/01-validate-docs.mjs --target data-mesh`
|
|
24
|
-
6. Publish product and verify discovery index update.
|
|
25
|
-
7. Notify registered consumers of availability.
|
|
26
|
-
|
|
27
|
-
### Rollback
|
|
28
|
-
If publication fails: remove product from discovery index, revert platform metadata, notify stakeholders.
|
|
29
|
-
|
|
30
|
-
### Validation
|
|
31
|
-
- Product visible in discovery catalog
|
|
32
|
-
- Schema version matches registered version
|
|
33
|
-
- Access policies enforced at query time
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Runbook 2 — Schema Evolution
|
|
38
|
-
|
|
39
|
-
### Trigger
|
|
40
|
-
Domain team needs to modify a published product schema.
|
|
41
|
-
|
|
42
|
-
### Procedure
|
|
43
|
-
1. Classify the change: additive (non-breaking) or removal/rename (breaking).
|
|
44
|
-
2. For additive changes: update schema, register new version, maintain backward compatibility per DAM-R08.
|
|
45
|
-
3. For breaking changes: create deprecation plan with consumer notification timeline.
|
|
46
|
-
4. Update product metadata with new schema version.
|
|
47
|
-
5. Run validation: `node .harness/scripts/ci/01-validate-docs.mjs --target data-mesh`
|
|
48
|
-
6. Publish updated schema and notify consumers.
|
|
49
|
-
7. Monitor consumer migration progress.
|
|
50
|
-
|
|
51
|
-
### Rollback
|
|
52
|
-
Revert to previous schema version. Notify consumers of rollback. Investigate root cause.
|
|
53
|
-
|
|
54
|
-
### Validation
|
|
55
|
-
- Previous schema version still accessible during deprecation window
|
|
56
|
-
- Consumer contracts updated or migration complete
|
|
57
|
-
- No query failures against new schema
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## Runbook 3 — Quality Incident Response
|
|
62
|
-
|
|
63
|
-
### Trigger
|
|
64
|
-
Automated health check fails or consumer reports quality issue.
|
|
65
|
-
|
|
66
|
-
### Procedure
|
|
67
|
-
1. Acknowledge incident in platform monitoring system.
|
|
68
|
-
2. Identify affected products and downstream consumers.
|
|
69
|
-
3. Assess severity: critical (consumer SLA impacted), standard (degraded quality), low (cosmetic issue).
|
|
70
|
-
4. For critical incidents: activate fallback strategies per consumer contracts.
|
|
71
|
-
5. Investigate root cause: pipeline failure, schema drift, source data corruption.
|
|
72
|
-
6. Implement fix: pipeline restart, data correction, schema rollback.
|
|
73
|
-
7. Validate fix: re-run health checks, verify data completeness and freshness.
|
|
74
|
-
8. Document incident and post-mortem.
|
|
75
|
-
|
|
76
|
-
### Rollback
|
|
77
|
-
If fix introduces new issues: revert changes, restore from backup, re-activate consumer fallbacks.
|
|
78
|
-
|
|
79
|
-
### Validation
|
|
80
|
-
- Health check returns to passing state
|
|
81
|
-
- Consumer SLAs restored
|
|
82
|
-
- Incident documented with root cause
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Runbook 4 — Consumer Contract Migration
|
|
87
|
-
|
|
88
|
-
### Trigger
|
|
89
|
-
Consumer needs to migrate to a new schema version or product.
|
|
90
|
-
|
|
91
|
-
### Procedure
|
|
92
|
-
1. Identify consumer's current contract version and dependencies.
|
|
93
|
-
2. Review migration guide published by the producing domain.
|
|
94
|
-
3. Update consumer application to support new schema version.
|
|
95
|
-
4. Test with validation queries against both old and new versions.
|
|
96
|
-
5. Update consumption contract registration in platform.
|
|
97
|
-
6. Monitor consumer queries for errors during transition.
|
|
98
|
-
7. Decommission old version usage after migration window.
|
|
99
|
-
|
|
100
|
-
### Rollback
|
|
101
|
-
Revert consumer application to previous schema version. Restore previous consumption contract.
|
|
102
|
-
|
|
103
|
-
### Validation
|
|
104
|
-
- Consumer queries succeed against new schema
|
|
105
|
-
- No data quality regressions
|
|
106
|
-
- Consumption contract updated in platform
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Runbook 5 — Lineage Gap Remediation
|
|
111
|
-
|
|
112
|
-
### Trigger
|
|
113
|
-
Lineage validation discovers missing upstream or downstream documentation.
|
|
114
|
-
|
|
115
|
-
### Procedure
|
|
116
|
-
1. Identify the lineage gap: missing upstream source, missing downstream consumer, or undocumented transformation.
|
|
117
|
-
2. Contact domain teams for missing lineage information.
|
|
118
|
-
3. Update lineage metadata in the platform.
|
|
119
|
-
4. Validate lineage completeness: `node .harness/scripts/ci/01-validate-docs.mjs --target data-mesh`
|
|
120
|
-
5. Verify lineage reflects actual data flow.
|
|
121
|
-
6. Document any lineage exceptions or limitations.
|
|
122
|
-
|
|
123
|
-
### Rollback
|
|
124
|
-
Revert lineage metadata to previous state if updates introduce errors.
|
|
125
|
-
|
|
126
|
-
### Validation
|
|
127
|
-
- Lineage graph complete for affected products
|
|
128
|
-
- No orphaned data flows
|
|
129
|
-
- Lineage metadata matches actual pipeline topology
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## Validation Commands
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
# Validate runbook procedures
|
|
137
|
-
node .harness/scripts/ci/01-validate-docs.mjs --target data-mesh
|
|
138
|
-
|
|
139
|
-
# Check bilingual parity
|
|
140
|
-
node .harness/scripts/ci/04-check-bilingual-parity.mjs
|
|
141
|
-
|
|
142
|
-
# Run coverage dashboard
|
|
143
|
-
node .harness/scripts/coverage-dashboard.mjs --area data-mesh
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
[Back to Data Mesh Profile](./README.md)
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# Guía de Seguridad de Malla de Datos
|
|
2
|
-
|
|
3
|
-
> **Navegación Bilingüe:** [English](./security.md) | [Español](./security.es.md)
|
|
4
|
-
|
|
5
|
-
**Propietario:** Arquitectura de Datos
|
|
6
|
-
**Topología:** Malla de Datos
|
|
7
|
-
**Reglas Relacionadas:** DAM-R03, DAM-R05
|
|
8
|
-
**ADRs Relacionados:** ADR-0079
|
|
9
|
-
|
|
10
|
-
## Propósito
|
|
11
|
-
|
|
12
|
-
Esta guía establece las prácticas de seguridad para los productos de datos en una topología de malla. Cubre clasificación, control de acceso, manejo de PII, gobernanza federada, residencia de datos y encriptación. La seguridad es una responsabilidad federada — cada dominio aplica controles en sus productos mientras adhiere a estándares corporativos.
|
|
13
|
-
|
|
14
|
-
## Clasificación de Datos
|
|
15
|
-
|
|
16
|
-
Todos los productos de datos deben clasificarse antes de la publicación. La clasificación determina los controles de acceso, las políticas de retención y los requisitos de cumplimiento. La plataforma de autoservicio aplica metadatos de clasificación en el momento del registro.
|
|
17
|
-
|
|
18
|
-
### Niveles de Clasificación
|
|
19
|
-
|
|
20
|
-
- **Público:** Sin restricciones de acceso. Distribución externa permitida.
|
|
21
|
-
- **Interno:** Acceso limitado a usuarios autenticados de la organización.
|
|
22
|
-
- **Confidencial:** Acceso restringido a roles específicos. Registro de auditoría requerido.
|
|
23
|
-
- **Restringido:** Máxima sensibilidad. Encriptación en reposo y en tránsito obligatoria. El acceso requiere aprobación explícita.
|
|
24
|
-
|
|
25
|
-
## Control de Acceso por Producto
|
|
26
|
-
|
|
27
|
-
Cada producto de datos define sus propias políticas de acceso dentro del marco de gobernanza federada. Las políticas especifican qué roles, equipos o servicios pueden consumir el producto. La plataforma aplica las políticas en tiempo de consulta; los dominios las definen en tiempo de diseño.
|
|
28
|
-
|
|
29
|
-
Los equipos de dominio deben publicar políticas de acceso junto con los metadatos de su producto. Las políticas se versionan y están sujetas a los mismos requisitos de compatibilidad backward que los esquemas según DAM-R08.
|
|
30
|
-
|
|
31
|
-
## Manejo de PII
|
|
32
|
-
|
|
33
|
-
Los productos que contienen información de identificación personal deben declarar los campos PII en su esquema. La plataforma aplica enmascaramiento y tokenización según el nivel de autorización del consumidor. Los datos PII nunca deben aparecer en metadatos del índice de descubrimiento ni en vistas previas de productos.
|
|
34
|
-
|
|
35
|
-
Los equipos de dominio son responsables de mantener el registro PII y asegurar el cumplimiento con las regulaciones aplicables de protección de datos. Los campos PII requieren justificación explícita del consumidor para acceso sin enmascaramiento.
|
|
36
|
-
|
|
37
|
-
## Seguridad de Gobernanza Federada
|
|
38
|
-
|
|
39
|
-
La gobernanza federada proporciona la base de seguridad en todos los dominios. El órgano central de gobernanza define estándares mínimos de seguridad; los dominios los implementan dentro de los límites de sus productos. Las excepciones de seguridad requieren aprobación formal del consejo de gobernanza.
|
|
40
|
-
|
|
41
|
-
El intercambio de datos entre dominios requiere autenticación y autorización mutuas. La plataforma media todo el acceso interdominio a través de su capa de ejecución de políticas.
|
|
42
|
-
|
|
43
|
-
## Residencia de Datos
|
|
44
|
-
|
|
45
|
-
Los productos de datos deben declarar su residencia geográfica. La plataforma aplica restricciones de residencia en tiempo de ingesta y consulta. Las transferencias de datos transfronterizas requieren configuración explícita y documentación de cumplimiento.
|
|
46
|
-
|
|
47
|
-
Los equipos de dominio deben coordinar con el consejo de gobernanza para asegurar que las declaraciones de residencia se alineen con los requisitos regulatorios y la política corporativa.
|
|
48
|
-
|
|
49
|
-
## Encriptación
|
|
50
|
-
|
|
51
|
-
Todos los productos de datos deben encriptar datos en reposo usando los estándares organizacionales de gestión de claves. Los productos clasificados como Restringido o Confidencial requieren encriptación en tránsito usando TLS 1.2 o superior. La rotación de claves sigue el calendario centralizado de gestión de claves.
|
|
52
|
-
|
|
53
|
-
Los equipos de dominio gestionan la configuración de encriptación a través de la plataforma de autoservicio. El estado de encriptación es auditable y se publica como parte de los metadatos de salud del producto.
|
|
54
|
-
|
|
55
|
-
## Comandos de Validación
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
# Verificar completitud de metadatos de seguridad
|
|
59
|
-
node .harness/scripts/ci/01-validate-docs.mjs --target data-mesh
|
|
60
|
-
|
|
61
|
-
# Verificar paridad bilingüe
|
|
62
|
-
node .harness/scripts/ci/04-check-bilingual-parity.mjs
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
[Volver al Perfil de Malla de Datos](./README.es.md)
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# Data Mesh — Security Guide
|
|
2
|
-
|
|
3
|
-
> **Bilingual Navigation:** [English](./security.md) | [Español](./security.es.md)
|
|
4
|
-
|
|
5
|
-
**Owner:** Data Architecture
|
|
6
|
-
**Topology:** Data Mesh
|
|
7
|
-
**Related Rules:** DAM-R03, DAM-R05
|
|
8
|
-
**Related ADRs:** ADR-0079
|
|
9
|
-
|
|
10
|
-
## Purpose
|
|
11
|
-
|
|
12
|
-
This guide establishes security practices for data products in a mesh topology. It covers classification, access control, PII handling, federated governance, data residency, and encryption. Security is a federated responsibility — each domain enforces controls on its products while adhering to corporate standards.
|
|
13
|
-
|
|
14
|
-
## Data Classification
|
|
15
|
-
|
|
16
|
-
All data products must be classified before publication. Classification determines access controls, retention policies, and compliance requirements. The self-serve platform enforces classification metadata at registration time.
|
|
17
|
-
|
|
18
|
-
### Classification Tiers
|
|
19
|
-
|
|
20
|
-
- **Public:** No access restrictions. External distribution permitted.
|
|
21
|
-
- **Internal:** Access limited to authenticated organizational users.
|
|
22
|
-
- **Confidential:** Access restricted to specific roles. Audit logging required.
|
|
23
|
-
- **Restricted:** Highest sensitivity. Encryption at rest and in transit mandatory. Access requires explicit approval.
|
|
24
|
-
|
|
25
|
-
## Access Control per Product
|
|
26
|
-
|
|
27
|
-
Each data product defines its own access policies within the federated governance framework. Policies specify which roles, teams, or services may consume the product. The platform enforces policies at query time; domains define them at design time.
|
|
28
|
-
|
|
29
|
-
Domain teams must publish access policies alongside their product metadata. Policies are versioned and subject to the same backward-compatibility requirements as schemas per DAM-R08.
|
|
30
|
-
|
|
31
|
-
## PII Handling
|
|
32
|
-
|
|
33
|
-
Products containing personally identifiable information must declare PII fields in their schema. The platform applies masking and tokenization based on consumer clearance level. PII data must never appear in discovery index metadata or product previews.
|
|
34
|
-
|
|
35
|
-
Domain teams are responsible for maintaining the PII registry and ensuring compliance with applicable data protection regulations. PII fields require explicit consumer justification for unmasked access.
|
|
36
|
-
|
|
37
|
-
## Federated Governance Security
|
|
38
|
-
|
|
39
|
-
Federated governance provides the security baseline across all domains. The central governance body defines minimum security standards; domains implement them within their product boundaries. Security exceptions require formal approval from the governance council.
|
|
40
|
-
|
|
41
|
-
Cross-domain data sharing requires mutual authentication and authorization. The platform mediates all cross-domain access through its policy enforcement layer.
|
|
42
|
-
|
|
43
|
-
## Data Residency
|
|
44
|
-
|
|
45
|
-
Data products must declare their geographic residency. The platform enforces residency constraints at ingestion and query time. Cross-border data transfers require explicit configuration and compliance documentation.
|
|
46
|
-
|
|
47
|
-
Domain teams must coordinate with the governance council to ensure residency declarations align with regulatory requirements and corporate policy.
|
|
48
|
-
|
|
49
|
-
## Encryption
|
|
50
|
-
|
|
51
|
-
All data products must encrypt data at rest using organizational key management standards. Products classified as Restricted or Confidential require encryption in transit using TLS 1.2 or higher. Key rotation follows the centralized key management schedule.
|
|
52
|
-
|
|
53
|
-
Domain teams manage encryption configuration through the self-serve platform. Encryption status is auditable and published as part of product health metadata.
|
|
54
|
-
|
|
55
|
-
## Validation Commands
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
# Verify security metadata completeness
|
|
59
|
-
node .harness/scripts/ci/01-validate-docs.mjs --target data-mesh
|
|
60
|
-
|
|
61
|
-
# Check bilingual parity
|
|
62
|
-
node .harness/scripts/ci/04-check-bilingual-parity.mjs
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
[Back to Data Mesh Profile](./README.md)
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"title": "Data Mesh Topology Configuration",
|
|
4
|
-
"type": "object",
|
|
5
|
-
"additionalProperties": false,
|
|
6
|
-
"required": [
|
|
7
|
-
"topology",
|
|
8
|
-
"isDataProduct",
|
|
9
|
-
"hasDataContracts",
|
|
10
|
-
"federatedGovernance",
|
|
11
|
-
"hasLineageTracking",
|
|
12
|
-
"hasRetentionPolicy",
|
|
13
|
-
"hasConsumptionContracts",
|
|
14
|
-
"hasDataQualitySLO",
|
|
15
|
-
"hasBackwardCompatibleContracts",
|
|
16
|
-
"hasDiscoveryRegistration"
|
|
17
|
-
],
|
|
18
|
-
"properties": {
|
|
19
|
-
"topology": { "const": "data-mesh" },
|
|
20
|
-
"isDataProduct": { "const": true },
|
|
21
|
-
"hasDataContracts": { "const": true },
|
|
22
|
-
"federatedGovernance": { "const": true },
|
|
23
|
-
"hasLineageTracking": { "const": true },
|
|
24
|
-
"hasRetentionPolicy": { "const": true },
|
|
25
|
-
"hasConsumptionContracts": { "const": true },
|
|
26
|
-
"hasDataQualitySLO": { "const": true },
|
|
27
|
-
"hasBackwardCompatibleContracts": { "const": true },
|
|
28
|
-
"hasDiscoveryRegistration": { "const": true }
|
|
29
|
-
}
|
|
30
|
-
}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"apiVersion": "evolith.dev/topology/v1",
|
|
3
|
-
"kind": "TopologyManifest",
|
|
4
|
-
"metadata": {
|
|
5
|
-
"id": "data-mesh",
|
|
6
|
-
"name": "Data Mesh",
|
|
7
|
-
"dimension": "data",
|
|
8
|
-
"status": "accepted",
|
|
9
|
-
"version": "1.0.0",
|
|
10
|
-
"governance": {
|
|
11
|
-
"owner": "Data Architecture",
|
|
12
|
-
"criticality": "P1"
|
|
13
|
-
}
|
|
14
|
-
},
|
|
15
|
-
"spec": {
|
|
16
|
-
"summary": "Distributed analytical data ownership topology for governed data products, discoverable contracts, quality evidence, and domain-aligned interoperability.",
|
|
17
|
-
"topologyType": "data-mesh",
|
|
18
|
-
"compatibility": {
|
|
19
|
-
"progressiveAxis": {
|
|
20
|
-
"phase": "cross",
|
|
21
|
-
"profile": "cross"
|
|
22
|
-
},
|
|
23
|
-
"composableWith": [
|
|
24
|
-
"distributed-modules",
|
|
25
|
-
"microservices",
|
|
26
|
-
"event-driven",
|
|
27
|
-
"serverless",
|
|
28
|
-
"agentic-ai"
|
|
29
|
-
]
|
|
30
|
-
},
|
|
31
|
-
"artifacts": {
|
|
32
|
-
"adrs": [
|
|
33
|
-
"reference/architecture/adrs/core/0084-data-mesh-data-products.md",
|
|
34
|
-
"reference/architecture/adrs/core/0079-multi-topology-reference-corpus.md"
|
|
35
|
-
],
|
|
36
|
-
"rulesets": [
|
|
37
|
-
"rulesets/topologies/data-mesh/data-mesh.rules.json"
|
|
38
|
-
],
|
|
39
|
-
"opaPolicies": [
|
|
40
|
-
"rulesets/topologies/data-mesh/data-mesh.rego"
|
|
41
|
-
],
|
|
42
|
-
"aiRulesets": [
|
|
43
|
-
"rulesets/topologies/data-mesh/README.md"
|
|
44
|
-
],
|
|
45
|
-
"umsContracts": [
|
|
46
|
-
"reference/knowledge/demo/ums-reference-model.md"
|
|
47
|
-
]
|
|
48
|
-
},
|
|
49
|
-
"corpus": {
|
|
50
|
-
"guidance": {
|
|
51
|
-
"profile": "rulesets/topologies/data-mesh/README.md",
|
|
52
|
-
"maturityGuide": "rulesets/topologies/data-mesh/maturity.md"
|
|
53
|
-
},
|
|
54
|
-
"configurationContract": "rulesets/topologies/data-mesh/topology.config.schema.json",
|
|
55
|
-
"fixtures": {
|
|
56
|
-
"valid": "rulesets/topologies/data-mesh/fixtures/valid.topology.config.json",
|
|
57
|
-
"invalid": "rulesets/topologies/data-mesh/fixtures/invalid.topology.config.json"
|
|
58
|
-
},
|
|
59
|
-
"nativeEvaluator": "packages/core-domain/src/application/validators/ruleset-validator.service.ts",
|
|
60
|
-
"tests": {
|
|
61
|
-
"positive": "packages/core-domain/src/application/validators/ruleset-validator-architecture.spec.ts",
|
|
62
|
-
"negative": "packages/core-domain/src/application/validators/ruleset-validator-architecture.spec.ts"
|
|
63
|
-
},
|
|
64
|
-
"evidence": "reference/governance/standards/vision/maturity-evidence.json"
|
|
65
|
-
},
|
|
66
|
-
"operationalInterfaces": {
|
|
67
|
-
"cli": {
|
|
68
|
-
"validators": [
|
|
69
|
-
"validate-architecture",
|
|
70
|
-
"validate-topology"
|
|
71
|
-
]
|
|
72
|
-
},
|
|
73
|
-
"mcp": {
|
|
74
|
-
"resources": [
|
|
75
|
-
"evolith://topologies/data-mesh/manifest",
|
|
76
|
-
"evolith://topologies/data-mesh/rulesets"
|
|
77
|
-
],
|
|
78
|
-
"tools": [
|
|
79
|
-
"evolith-topology-inspect",
|
|
80
|
-
"evolith-topology-validate"
|
|
81
|
-
],
|
|
82
|
-
"prompts": [
|
|
83
|
-
"topology-aware-implementation"
|
|
84
|
-
]
|
|
85
|
-
},
|
|
86
|
-
"coreApi": {
|
|
87
|
-
"endpoints": [
|
|
88
|
-
"GET /topologies/{id}",
|
|
89
|
-
"GET /topologies/{id}/manifest",
|
|
90
|
-
"POST /topologies/{id}/validate"
|
|
91
|
-
]
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
"businessBoundary": {
|
|
96
|
-
"technicalOnly": true,
|
|
97
|
-
"trackerOwns": [
|
|
98
|
-
"timing",
|
|
99
|
-
"ownership",
|
|
100
|
-
"prioritization",
|
|
101
|
-
"roi",
|
|
102
|
-
"cost",
|
|
103
|
-
"budget",
|
|
104
|
-
"funnel-0"
|
|
105
|
-
]
|
|
106
|
-
}
|
|
107
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# Perfil Topologico Edge Computing
|
|
2
|
-
|
|
3
|
-
> **Navegacion Bilingue:** [English Version](./README.md)
|
|
4
|
-
|
|
5
|
-
**Estado:** Accepted
|
|
6
|
-
**Dimension:** `execution`
|
|
7
|
-
**ID de Topologia:** `edge-computing`
|
|
8
|
-
**Alias de Compatibilidad:** `F2-compatible`
|
|
9
|
-
**Manifiesto:** [topology.manifest.json](./topology.manifest.json)
|
|
10
|
-
|
|
11
|
-
Edge computing es una topologia de ejecucion para workloads que deben correr cerca de usuarios, dispositivos, regiones o fronteras de red restringidas mientras permanecen gobernados por los mismos contratos arquitectonicos de Evolith Core.
|
|
12
|
-
|
|
13
|
-
## Proposito
|
|
14
|
-
|
|
15
|
-
Usa esta topologia cuando latencia, localidad, tolerancia offline, ubicacion regulatoria o procesamiento cercano a dispositivos requiere ejecucion fuera del runtime central.
|
|
16
|
-
|
|
17
|
-
Los workloads edge deben permanecer gobernados por reglas explicitas de sincronizacion, seguridad, observabilidad, despliegue y frontera de datos. La ubicacion edge no autoriza duplicar logica de dominio sin ownership.
|
|
18
|
-
|
|
19
|
-
## Reglas de Gobernanza
|
|
20
|
-
|
|
21
|
-
| Regla | Requisito |
|
|
22
|
-
|---|---|
|
|
23
|
-
| Razon de localidad | La ubicacion edge debe justificarse por latencia, resiliencia, localidad o restricciones regulatorias. |
|
|
24
|
-
| Sincronizacion | La sincronizacion de estado debe ser explicita, observable y consciente de conflictos. |
|
|
25
|
-
| Seguridad | Los nodos edge deben aplicar autenticacion, autorizacion y manejo de secretos apropiados para entornos restringidos. |
|
|
26
|
-
| Observability | Los workloads edge deben reportar salud, fallo y trace context pese a conectividad intermitente. |
|
|
27
|
-
| Ownership de dominio | La logica edge no debe bifurcar comportamiento de dominio fuera del bounded context propietario. |
|
|
28
|
-
|
|
29
|
-
## Autoridad Requerida
|
|
30
|
-
|
|
31
|
-
| Artefacto | Rol |
|
|
32
|
-
|---|---|
|
|
33
|
-
| [ADR-0079: Corpus de Referencia Multi-Topologia](../../../adrs/core/0079-multi-topology-reference-corpus.md) | Gobierna los manifiestos de topologia y composicion. |
|
|
34
|
-
| [ADR-0096: Gobernanza de Arquitectura Edge Computing](../../../adrs/core/0096-edge-computing-architecture-governance.md) | Gobierna las restricciones arquitectonicas especificas de edge. |
|
|
35
|
-
| [Reglas de Arquitectura Edge Computing](./edge-computing.rules.json) | Reglas de compatibilidad ejecutables existentes. |
|
|
36
|
-
| [Modelo de Dimensiones de Topologia](../../topology-dimensions.md) | Define reglas de composicion y compatibilidad. |
|
|
37
|
-
|
|
38
|
-
## Contrato Ejecutable
|
|
39
|
-
|
|
40
|
-
Los satelites que adopten esta topologia deben declarar un archivo `edge-computing.config.json` en su raiz. Este JSON actua como el contrato ejecutable machine-readable evaluado por el Evolith Governance Engine.
|
|
41
|
-
|
|
42
|
-
```json
|
|
43
|
-
{
|
|
44
|
-
"syncStrategy": "offline-first",
|
|
45
|
-
"edgeIsolation": true,
|
|
46
|
-
"conflictResolution": "last-write-wins"
|
|
47
|
-
}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
EC-R01 a EC-R03 exigen ese contrato, forzando una estrategia de sincronizacion declarada, aislamiento de nodo edge para operacion autonoma y un modo explicito de resolucion de conflictos. El evaluador Native y la [politica OPA](./edge-computing.rego) evaluan estos campos.
|
|
51
|
-
|
|
52
|
-
### Patrones de Persistencia Offline-First
|
|
53
|
-
|
|
54
|
-
Un aspecto critico de la topologia Edge Computing es manejar la conectividad intermitente. Para cumplir con `EC-R01` (Estrategia de Sincronizacion Obligatoria) y `EC-R03` (Resolucion de Conflictos), los nodos edge deben implementar patrones de persistencia offline-first:
|
|
55
|
-
|
|
56
|
-
1. **Lecturas y Escrituras Local-First:** Usa bases de datos locales (ej. SQLite, IndexedDB) como el data store primario para el workload edge. Esto asegura que la aplicacion permanezca completamente funcional durante particiones de red (`edgeIsolation: true`).
|
|
57
|
-
2. **Sincronizacion en Background:** Utiliza workers en background o service workers para sincronizar los cambios locales con el plano de control central cuando se restaura la conectividad.
|
|
58
|
-
3. **Resolucion de Conflictos:** Declara y maneja explicitamente los conflictos de estado resultantes de modificaciones offline (ej. `last-write-wins`, fusion manual).
|
|
59
|
-
|
|
60
|
-
## Composicion
|
|
61
|
-
|
|
62
|
-
`edge-computing` puede combinarse con:
|
|
63
|
-
|
|
64
|
-
| Topologia | Por Que Puede Componerse |
|
|
65
|
-
|---|---|
|
|
66
|
-
| `microservices` | Ubica workloads de servicio individual en el edge con sincronizacion gobernada. |
|
|
67
|
-
| `distributed-modules` | Extiende fronteras de modulo a ubicaciones edge con contratos de sincronizacion explicitos. |
|
|
68
|
-
| `event-driven` | Coordina cambios de estado edge a traves de canales de eventos observables. |
|
|
69
|
-
| `serverless` | Despliega unidades de ejecucion administradas en ubicaciones edge con inicializacion acotada. |
|
|
70
|
-
| `agentic-ai` | Ejecuta inferencia de agentes IA en el edge con gobernanza offline. |
|
|
71
|
-
|
|
72
|
-
## Frontera de Negocio
|
|
73
|
-
|
|
74
|
-
Este perfil es solo tecnico. No define ROI, modelo de costos, gasto de hardware, staffing, timing de entrega, priorizacion ni Funnel 0. Evolith Tracker posee esas preocupaciones de negocio mediante su ACL.
|
|
75
|
-
|
|
76
|
-
## Presupuestos Operativos
|
|
77
|
-
|
|
78
|
-
Esta topología declara envelopes arquitectónicos de latencia, cold-start y costo por ejecución en `spec.operationalBudgets` de [`topology.manifest.json`](./topology.manifest.json). Los operadores verifican los satélites contra estos envelopes siguiendo el [Runbook de Presupuestos Operativos](../operational-budgets-runbook.es.md) compartido.
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
[Volver al Hub de Topologias](../../README.es.md)
|