Test data profile examples

A profile is what a request is checked against: which scenarios, how many records, which targets, and what automation may approve on its own. Each one below is used by the example scenarios listed with it.

banking-regression

Used by: 03 Banking: insufficient funds and duplicate payments, 11 Authorization: cross-account access is refused, 13 Financial reconciliation breaks

banking-regression.yaml

# yaml-language-server: $schema=../../../packages/contracts/schemas/v1/manifests/test-data-profile.schema.json
# DataNivra test-data-profile manifest (apiVersion datanivra.io/v1alpha1). Validate: datanivra test-data validate <file>
# Placeholder ids (00000000-0000-4000-8000-0000000000NN): replace with your ids.
# 01 = approved target environment, 11 = certified dataset, 21 = customer agent,
# 99 = workload identity trust (datanivra workload-identities list).
apiVersion: datanivra.io/v1alpha1
kind: TestDataProfile
metadata:
  name: banking-regression
  description: Synthetic accounts, payments and their failure modes
spec:
  fulfilment: BUILD_DATASET
  build:
    business_domain: accounts and payments
    pack_id: financial-services
    dataset_kind: SYNTHETIC_ONLY
    target_environment_id: 00000000-0000-4000-8000-000000000001
    retention_days: 1
    max_total_records: 3000
    scenarios:
      - {
          pack_id: financial-services,
          scenario_code: FS_EVERYDAY_BANKING,
          kind: NORMAL,
          default_count: 1000,
          max_count: 2000,
        }
      - {
          pack_id: financial-services,
          scenario_code: FS_FAILED_PAYMENTS,
          kind: RARE,
          default_count: 100,
          max_count: 500,
        }
      - {
          pack_id: financial-services,
          scenario_code: FS_DUPLICATE_TRANSACTIONS,
          kind: DUPLICATE,
          default_count: 50,
          max_count: 200,
          included_by_default: false,
        }
      - {
          pack_id: financial-services,
          scenario_code: FS_CHARGEBACKS,
          kind: RARE,
          default_count: 50,
          max_count: 200,
          included_by_default: false,
        }
      - {
          pack_id: financial-services,
          scenario_code: FS_RECONCILIATION_BREAKS,
          kind: RARE,
          default_count: 50,
          max_count: 200,
          included_by_default: false,
        }
      - {
          pack_id: financial-services,
          scenario_code: FS_BALANCE_BOUNDARIES,
          kind: BOUNDARY,
          default_count: 50,
          max_count: 200,
          included_by_default: false,
        }
  automation:
    workload_identity_ids: [00000000-0000-4000-8000-000000000099]
    max_total_records: 1500
    escalate_out_of_envelope: false

examples/test-data-api/profiles/banking-regression.yaml

edge-cases-core

Used by: 07 SaaS multi-tenant isolation regression, 10 API pagination and malformed records, 14 Time zones, DST and leap days, 15 Unicode and localization, 16 Performance volume with a hard ceiling, 25 Developer: approved data in a private sandbox

edge-cases-core.yaml

# yaml-language-server: $schema=../../../packages/contracts/schemas/v1/manifests/test-data-profile.schema.json
# DataNivra test-data-profile manifest (apiVersion datanivra.io/v1alpha1). Validate: datanivra test-data validate <file>
# Placeholder ids (00000000-0000-4000-8000-0000000000NN): replace with your ids.
# 01 = approved target environment, 11 = certified dataset, 21 = customer agent,
# 99 = workload identity trust (datanivra workload-identities list).
apiVersion: datanivra.io/v1alpha1
kind: TestDataProfile
metadata:
  name: edge-cases-core
  description: Core synthetic edge cases (no industry pack)
spec:
  fulfilment: BUILD_DATASET
  build:
    business_domain: generic records
    dataset_kind: SYNTHETIC_ONLY
    target_environment_id: 00000000-0000-4000-8000-000000000001
    retention_days: 1
    max_total_records: 50000
    scenarios:
      - { scenario_code: CORE_NORMAL, kind: NORMAL, default_count: 200, max_count: 1000 }
      - { scenario_code: CORE_BOUNDARY, kind: BOUNDARY, default_count: 100, max_count: 500 }
      - {
          scenario_code: CORE_TEMPORAL_SEQUENCE,
          kind: TEMPORAL_SEQUENCE,
          default_count: 100,
          max_count: 500,
          included_by_default: false,
        }
      - {
          scenario_code: CORE_NULL_HEAVY,
          kind: NULL_HEAVY,
          default_count: 50,
          max_count: 200,
          included_by_default: false,
        }
      - {
          scenario_code: CORE_INVALID,
          kind: INVALID,
          default_count: 50,
          max_count: 200,
          included_by_default: false,
        }
      - {
          scenario_code: CORE_DUPLICATE,
          kind: DUPLICATE,
          default_count: 50,
          max_count: 200,
          included_by_default: false,
        }
      - {
          scenario_code: CORE_HIGH_VOLUME,
          kind: HIGH_VOLUME,
          default_count: 1000,
          max_count: 50000,
          included_by_default: false,
        }

examples/test-data-api/profiles/edge-cases-core.yaml

healthcare-integration

Used by: 01 Healthcare integration on PostgreSQL, 18 Agent-driven bug reproduction with a pinned request, 22 Automatic approval vs over-limit requests

healthcare-integration.yaml

# yaml-language-server: $schema=../../../packages/contracts/schemas/v1/manifests/test-data-profile.schema.json
# DataNivra test-data-profile manifest (apiVersion datanivra.io/v1alpha1). Validate: datanivra test-data validate <file>
# Placeholder ids (00000000-0000-4000-8000-0000000000NN): replace with your ids.
# 01 = approved target environment, 11 = certified dataset, 21 = customer agent,
# 99 = workload identity trust (datanivra workload-identities list).
apiVersion: datanivra.io/v1alpha1
kind: TestDataProfile
metadata:
  name: healthcare-integration
  description: Synthetic members (patients) and their encounters (appointments) for integration tests
spec:
  fulfilment: BUILD_DATASET
  build:
    business_domain: patient encounters
    pack_id: healthcare
    dataset_kind: SYNTHETIC_ONLY
    target_environment_id: 00000000-0000-4000-8000-000000000001
    retention_days: 1
    max_total_records: 3000
    scenarios:
      - {
          pack_id: healthcare,
          scenario_code: HC_ROUTINE_CARE,
          kind: NORMAL,
          default_count: 500,
          max_count: 500,
        }
      - {
          pack_id: healthcare,
          scenario_code: HC_CHRONIC_CARE,
          kind: HIGH_VOLUME,
          default_count: 2000,
          max_count: 2000,
        }
      - {
          pack_id: healthcare,
          scenario_code: HC_CLAIM_DENIALS,
          kind: RARE,
          default_count: 50,
          max_count: 400,
          included_by_default: false,
        }
      - {
          pack_id: healthcare,
          scenario_code: HC_ABNORMAL_LABS,
          kind: BOUNDARY,
          default_count: 50,
          max_count: 200,
          included_by_default: false,
        }
  automation:
    workload_identity_ids: [00000000-0000-4000-8000-000000000099]
    max_total_records: 2500
    max_live_requests: 10
    max_requests_per_hour: 60
    escalate_out_of_envelope: true
  audit_tags: [HEALTHCARE_SYNTHETIC]

examples/test-data-api/profiles/healthcare-integration.yaml

insurance-claims

Used by: 04 Insurance claim payout edge cases

insurance-claims.yaml

# yaml-language-server: $schema=../../../packages/contracts/schemas/v1/manifests/test-data-profile.schema.json
# DataNivra test-data-profile manifest (apiVersion datanivra.io/v1alpha1). Validate: datanivra test-data validate <file>
# Placeholder ids (00000000-0000-4000-8000-0000000000NN): replace with your ids.
# 01 = approved target environment, 11 = certified dataset, 21 = customer agent,
# 99 = workload identity trust (datanivra workload-identities list).
apiVersion: datanivra.io/v1alpha1
kind: TestDataProfile
metadata:
  name: insurance-claims
  description: Synthetic policies, claims and payouts
spec:
  fulfilment: BUILD_DATASET
  build:
    business_domain: policies and claims
    pack_id: insurance
    dataset_kind: SYNTHETIC_ONLY
    target_environment_id: 00000000-0000-4000-8000-000000000001
    retention_days: 1
    max_total_records: 1500
    scenarios:
      - {
          pack_id: insurance,
          scenario_code: INS_EVERYDAY_BOOK,
          kind: NORMAL,
          default_count: 500,
          max_count: 1000,
        }
      - {
          pack_id: insurance,
          scenario_code: INS_CLAIM_PAYMENT_EDGE_CASES,
          kind: BOUNDARY,
          default_count: 50,
          max_count: 200,
        }
      - {
          pack_id: insurance,
          scenario_code: INS_EARLY_CLAIM_REVIEW,
          kind: RARE,
          default_count: 50,
          max_count: 200,
          included_by_default: false,
        }
      - {
          pack_id: insurance,
          scenario_code: INS_DUPLICATE_CLAIMS,
          kind: DUPLICATE,
          default_count: 20,
          max_count: 100,
          included_by_default: false,
        }

examples/test-data-api/profiles/insurance-claims.yaml

manufacturing-traceability

Used by: 06 Manufacturing lot recall traceability

manufacturing-traceability.yaml

# yaml-language-server: $schema=../../../packages/contracts/schemas/v1/manifests/test-data-profile.schema.json
# DataNivra test-data-profile manifest (apiVersion datanivra.io/v1alpha1). Validate: datanivra test-data validate <file>
# Placeholder ids (00000000-0000-4000-8000-0000000000NN): replace with your ids.
# 01 = approved target environment, 11 = certified dataset, 21 = customer agent,
# 99 = workload identity trust (datanivra workload-identities list).
apiVersion: datanivra.io/v1alpha1
kind: TestDataProfile
metadata:
  name: manufacturing-traceability
  description: Synthetic lots, work orders and quality records
spec:
  fulfilment: BUILD_DATASET
  build:
    business_domain: lots and work orders
    pack_id: manufacturing
    dataset_kind: SYNTHETIC_ONLY
    target_environment_id: 00000000-0000-4000-8000-000000000001
    retention_days: 1
    max_total_records: 1300
    scenarios:
      - {
          pack_id: manufacturing,
          scenario_code: MFG_EVERYDAY_PRODUCTION,
          kind: NORMAL,
          default_count: 300,
          max_count: 1000,
        }
      - {
          pack_id: manufacturing,
          scenario_code: MFG_LOT_RECALL,
          kind: RARE,
          default_count: 20,
          max_count: 100,
        }
      - {
          pack_id: manufacturing,
          scenario_code: MFG_TOLERANCE_LIMITS,
          kind: BOUNDARY,
          default_count: 50,
          max_count: 200,
          included_by_default: false,
        }

examples/test-data-api/profiles/manufacturing-traceability.yaml

orders-pr-regression

Used by: 09 Per-PR PostgreSQL lease, 17 Chaos: the runner is killed mid-test, 19 Parallel pull requests share one certified version, 21 Negative test: an unnamed identity is denied, 23 Temporary access expires

orders-pr-regression.yaml

# yaml-language-server: $schema=../../../packages/contracts/schemas/v1/manifests/test-data-profile.schema.json
# DataNivra test-data-profile manifest (apiVersion datanivra.io/v1alpha1). Validate: datanivra test-data validate <file>
# Placeholder ids (00000000-0000-4000-8000-0000000000NN): replace with your ids.
# 01 = approved target environment, 11 = certified dataset, 21 = customer agent,
# 99 = workload identity trust (datanivra workload-identities list).
apiVersion: datanivra.io/v1alpha1
kind: TestDataProfile
metadata:
  name: orders-pr-regression
  description: Certified orders dataset leased into an isolated CI database per pull request
spec:
  fulfilment: LEASE_CERTIFIED_VERSION
  lease:
    dataset_id: 00000000-0000-4000-8000-000000000011
    agent_id: 00000000-0000-4000-8000-000000000021
    provider_kind: POSTGRESQL_CONTAINER
    default_ttl_seconds: 1800
    max_ttl_seconds: 7200
    target_pool:
      - env://DATANIVRA_CI_DB_1
      - env://DATANIVRA_CI_DB_2
      - env://DATANIVRA_CI_DB_3
      - env://DATANIVRA_CI_DB_4
  automation:
    workload_identity_ids: [00000000-0000-4000-8000-000000000099]
    max_ttl_seconds: 3600
    max_live_requests: 4
  audit_tags: [CI_PULL_REQUEST]

examples/test-data-api/profiles/orders-pr-regression.yaml

retail-orders

Used by: 02 E-commerce refunds and payment declines, 24 Consumer/provider contract testing

retail-orders.yaml

# yaml-language-server: $schema=../../../packages/contracts/schemas/v1/manifests/test-data-profile.schema.json
# DataNivra test-data-profile manifest (apiVersion datanivra.io/v1alpha1). Validate: datanivra test-data validate <file>
# Placeholder ids (00000000-0000-4000-8000-0000000000NN): replace with your ids.
# 01 = approved target environment, 11 = certified dataset, 21 = customer agent,
# 99 = workload identity trust (datanivra workload-identities list).
apiVersion: datanivra.io/v1alpha1
kind: TestDataProfile
metadata:
  name: retail-orders
  description: Synthetic customers, carts, orders, payments and returns
spec:
  fulfilment: BUILD_DATASET
  build:
    business_domain: orders and payments
    pack_id: retail-ecommerce
    dataset_kind: SYNTHETIC_ONLY
    target_environment_id: 00000000-0000-4000-8000-000000000001
    retention_days: 1
    max_total_records: 1500
    scenarios:
      - {
          pack_id: retail-ecommerce,
          scenario_code: RET_EVERYDAY_SHOPPING,
          kind: NORMAL,
          default_count: 500,
          max_count: 1000,
        }
      - {
          pack_id: retail-ecommerce,
          scenario_code: RET_RETURNS_AND_REFUNDS,
          kind: RARE,
          default_count: 50,
          max_count: 200,
        }
      - {
          pack_id: retail-ecommerce,
          scenario_code: RET_PAYMENT_DECLINES,
          kind: RARE,
          default_count: 50,
          max_count: 200,
        }
      - {
          pack_id: retail-ecommerce,
          scenario_code: RET_SPLIT_SHIPMENTS,
          kind: RARE,
          default_count: 20,
          max_count: 100,
          included_by_default: false,
        }

examples/test-data-api/profiles/retail-orders.yaml

telecom-billing

Used by: 05 Telecom billing disputes

telecom-billing.yaml

# yaml-language-server: $schema=../../../packages/contracts/schemas/v1/manifests/test-data-profile.schema.json
# DataNivra test-data-profile manifest (apiVersion datanivra.io/v1alpha1). Validate: datanivra test-data validate <file>
# Placeholder ids (00000000-0000-4000-8000-0000000000NN): replace with your ids.
# 01 = approved target environment, 11 = certified dataset, 21 = customer agent,
# 99 = workload identity trust (datanivra workload-identities list).
apiVersion: datanivra.io/v1alpha1
kind: TestDataProfile
metadata:
  name: telecom-billing
  description: Synthetic subscribers, usage records and bills
spec:
  fulfilment: BUILD_DATASET
  build:
    business_domain: subscribers and billing
    pack_id: telecom
    dataset_kind: SYNTHETIC_ONLY
    target_environment_id: 00000000-0000-4000-8000-000000000001
    retention_days: 1
    max_total_records: 1300
    scenarios:
      - {
          pack_id: telecom,
          scenario_code: TEL_EVERYDAY_USAGE,
          kind: NORMAL,
          default_count: 500,
          max_count: 1000,
        }
      - {
          pack_id: telecom,
          scenario_code: TEL_DISPUTED_BILLS,
          kind: RARE,
          default_count: 50,
          max_count: 200,
        }
      - {
          pack_id: telecom,
          scenario_code: TEL_DUPLICATE_CDRS,
          kind: DUPLICATE,
          default_count: 20,
          max_count: 100,
          included_by_default: false,
        }

examples/test-data-api/profiles/telecom-billing.yaml

warehouse-migration

Used by: 08 Warehouse schema migration rehearsal, 12 Privacy: masked fields and leakage canaries, 20 Schema evolution across certified versions

warehouse-migration.yaml

# yaml-language-server: $schema=../../../packages/contracts/schemas/v1/manifests/test-data-profile.schema.json
# DataNivra test-data-profile manifest (apiVersion datanivra.io/v1alpha1). Validate: datanivra test-data validate <file>
# Placeholder ids (00000000-0000-4000-8000-0000000000NN): replace with your ids.
# 01 = approved target environment, 11 = certified dataset, 21 = customer agent,
# 99 = workload identity trust (datanivra workload-identities list).
apiVersion: datanivra.io/v1alpha1
kind: TestDataProfile
metadata:
  name: warehouse-migration
  description: Certified, masked warehouse slice leased for schema-migration rehearsals
spec:
  fulfilment: LEASE_CERTIFIED_VERSION
  lease:
    dataset_id: 00000000-0000-4000-8000-000000000011
    agent_id: 00000000-0000-4000-8000-000000000021
    provider_kind: POSTGRESQL_CONTAINER
    default_ttl_seconds: 1800
    max_ttl_seconds: 7200
    target_pool:
      - vault://ci/warehouse-migration-db-1
      - vault://ci/warehouse-migration-db-2

examples/test-data-api/profiles/warehouse-migration.yaml