Some checks failed
Build Pipeline / Build Binaries (push) Failing after 3m39s
Build Pipeline / Build Docker Images (push) Has been skipped
Build Pipeline / Sign HIPAA Config (push) Has been skipped
Build Pipeline / Generate SLSA Provenance (push) Has been skipped
Checkout test / test (push) Successful in 6s
CI Pipeline / Test (ubuntu-latest on self-hosted) (push) Failing after 1s
CI Pipeline / Dev Compose Smoke Test (push) Has been skipped
CI Pipeline / Security Scan (push) Has been skipped
CI Pipeline / Test Scripts (push) Has been skipped
CI Pipeline / Test Native Libraries (push) Has been skipped
CI Pipeline / Native Library Build Matrix (push) Has been skipped
Contract Tests / Spec Drift Detection (push) Failing after 11s
Contract Tests / API Contract Tests (push) Has been skipped
Deploy API Docs / Build API Documentation (push) Failing after 5s
Deploy API Docs / Deploy to GitHub Pages (push) Has been skipped
Documentation / build-and-publish (push) Failing after 40s
Test Matrix / test-native-vs-pure (cgo) (push) Failing after 14s
Test Matrix / test-native-vs-pure (native) (push) Failing after 35s
Test Matrix / test-native-vs-pure (pure) (push) Failing after 18s
CI Pipeline / Trigger Build Workflow (push) Failing after 1s
Build CLI with Embedded SQLite / build (arm64, aarch64-linux) (push) Has been cancelled
Build CLI with Embedded SQLite / build (x86_64, x86_64-linux) (push) Has been cancelled
Build CLI with Embedded SQLite / build-macos (arm64) (push) Has been cancelled
Build CLI with Embedded SQLite / build-macos (x86_64) (push) Has been cancelled
Security Scan / Security Analysis (push) Has been cancelled
Security Scan / Native Library Security (push) Has been cancelled
Verification & Maintenance / V.1 - Schema Drift Detection (push) Has been cancelled
Verification & Maintenance / V.4 - Custom Go Vet Analyzers (push) Has been cancelled
Verification & Maintenance / V.7 - Audit Chain Integrity (push) Has been cancelled
Verification & Maintenance / V.6 - Extended Security Scanning (push) Has been cancelled
Verification & Maintenance / V.10 - OpenSSF Scorecard (push) Has been cancelled
Verification & Maintenance / Verification Summary (push) Has been cancelled
- Introduce audit, plugin, and scheduler API handlers - Add spec_embed.go for OpenAPI spec embedding - Create modular build scripts (cli, go, native, cross-platform) - Add deployment cleanup and health-check utilities - New ADRs: hot reload, audit store, SSE updates, RBAC, caching, offline mode, KMS regions, tenant offboarding - Add KMS configuration schema and worker variants - Include KMS benchmark tests
104 lines
2.6 KiB
YAML
104 lines
2.6 KiB
YAML
# KMS Configuration Schema
|
|
# Defines the structure for KMS (Key Management System) configuration
|
|
# per ADR-012 through ADR-015.
|
|
|
|
$schema: http://json-schema.org/draft-07/schema#
|
|
type: object
|
|
description: KMS configuration for external key management (Vault, AWS KMS, etc.)
|
|
|
|
properties:
|
|
provider:
|
|
type: string
|
|
enum: [vault, aws, memory]
|
|
description: KMS provider type
|
|
|
|
vault:
|
|
type: object
|
|
description: HashiCorp Vault configuration
|
|
properties:
|
|
address:
|
|
type: string
|
|
format: uri
|
|
description: Vault server URL (e.g., https://vault.internal:8200)
|
|
auth_method:
|
|
type: string
|
|
enum: [approle, kubernetes, token]
|
|
description: Authentication method
|
|
role_id:
|
|
type: string
|
|
description: AppRole role ID (for approle auth)
|
|
secret_id:
|
|
type: string
|
|
description: AppRole secret ID (for approle auth)
|
|
token:
|
|
type: string
|
|
description: Vault token (for token auth, development only)
|
|
transit_mount:
|
|
type: string
|
|
default: transit
|
|
description: Transit engine mount path
|
|
key_prefix:
|
|
type: string
|
|
default: fetchml-tenant
|
|
description: Prefix for tenant key names
|
|
region:
|
|
type: string
|
|
description: Region identifier for per-region keys (per ADR-014)
|
|
timeout:
|
|
type: integer
|
|
default: 30
|
|
description: HTTP client timeout in seconds
|
|
|
|
aws:
|
|
type: object
|
|
description: AWS KMS configuration
|
|
properties:
|
|
region:
|
|
type: string
|
|
description: AWS region (e.g., us-east-1)
|
|
key_alias_prefix:
|
|
type: string
|
|
default: alias/fetchml
|
|
description: Prefix for KMS key aliases
|
|
role_arn:
|
|
type: string
|
|
description: IAM role ARN to assume (optional)
|
|
endpoint:
|
|
type: string
|
|
format: uri
|
|
description: Custom endpoint for testing (e.g., LocalStack)
|
|
|
|
cache:
|
|
type: object
|
|
description: DEK cache configuration per ADR-012
|
|
properties:
|
|
ttl_minutes:
|
|
type: integer
|
|
default: 15
|
|
description: DEK cache TTL in minutes
|
|
max_entries:
|
|
type: integer
|
|
default: 1000
|
|
description: Maximum cached DEKs (LRU eviction)
|
|
grace_window_minutes:
|
|
type: integer
|
|
default: 60
|
|
description: Extended grace period during KMS unavailability (per ADR-013)
|
|
|
|
required:
|
|
- provider
|
|
|
|
# Conditional validation
|
|
allOf:
|
|
- if:
|
|
properties:
|
|
provider:
|
|
const: vault
|
|
then:
|
|
required: [vault]
|
|
- if:
|
|
properties:
|
|
provider:
|
|
const: aws
|
|
then:
|
|
required: [aws]
|