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-regressionedge-cases-corehealthcare-integrationinsurance-claimsmanufacturing-traceabilityorders-pr-regressionretail-orderstelecom-billingwarehouse-migration
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
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,
}
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]
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,
}
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]
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,
}
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,
}
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