Built Word Documents (.docx):
Spensara Overview (.docx)
Capability Assessment (.docx)
Brink POS Ingestion Analysis (.docx)
The Borg Ingestion Architecture (.docx)
Categories
Branches (328)
Branch-specific documentation across extract-raw-xml, feature-fleet-import, kds_cdc_improvments, life-cycle, and tenat-admin.
- extract-raw-xml/agent-tooling/backend/tests/AGENTS.md
- extract-raw-xml/architecture/docs/ETL.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/index.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-e2e-test-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-proposal.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-streaming-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/source-task.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/01-brink-extract-boundary.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/02-source-connection-and-tenant-binding.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/03-extract-schedule-and-dispatch-contract.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/04-ingestion-batch-and-checkpoint-contract.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/05-raw-capture-and-failure-packaging.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/06-endpoint-catalog-and-execution-policy.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/07-raw-to-load-normalization-seam.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/08-first-job-design-input.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/09-first-job-design-v1.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/10-foundation-summary.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/11-raw-to-load-job-design-v1.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/12-missing-relational-load-mappings.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/13-load-to-redshift-staging-job-design-v1.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/14-staging-to-curated-job-design-v1.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/15-end-to-end-pipeline-summary.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/index.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/adapter-architecture-poc-simple.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/adapter-architecture.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-streaming-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-streaming-review-fix-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/first-etl-job-proposal.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/index.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/integration-flow.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/poc-checklist.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/relational-load-staging-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/source-task.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/staging-to-curated-mapping.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/technical-integration-notes.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/xml-to-parquet-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/xml-to-parquet-proposal.md
- extract-raw-xml/etl/docs/features/ETL/index.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK0.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK1.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.1.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.2.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.3.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.4.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK4.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK5.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK6.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK7.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK8.md
- extract-raw-xml/research/temp/brink-pos-integration-research.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/customers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/inventory_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_item_status_events.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_order_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/loyalty_customers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_catalog_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_hourly_sales.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_menu_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_modifiers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_order_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_tables.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_table_definitions.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_tenders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transactions.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transaction_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transaction_tenders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_kitchen_get_order_bump_times.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_kitchen_get_order_item_bump_times.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_sales2_get_current_business_date.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_sales2_get_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_brands.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_destinations.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_employees.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_kitchen_queues.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_last_modified_time.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_menu.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_tables.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_taxes.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_day_parts.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_item_groups.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_modifier_codes.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_modifier_groups.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_registers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_revenue_centers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_sections.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_tenders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/customers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/inventory_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_item_status_events.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_order_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/loyalty_customers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_catalog_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_hourly_sales.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_menu_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_modifiers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_order_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_tables.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_table_definitions.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_tenders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transactions.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transaction_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transaction_tenders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/todo.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gnditem.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndsale.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndslsum.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndtndr.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_itm.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_mod.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tab.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tabdef.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tdr.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_customers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_item_bumps.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_inventory_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_loyalty.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_order_items.md
- feature-fleet-import/architecture/docs/curated-redshift-schema.md
- feature-fleet-import/etl/docs/features/ETL/fleet/fleet-s3-direct-import-operations.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/main.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/proposed-solution.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK0.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK1.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK2.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK3.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK4.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK5.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK6.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK7.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK1.1.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK1.2.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK2.1.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK2.2.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK3.1.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK3.2.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK4.1.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/customer-churn-risk.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/customer-profiles.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/daily-forecast.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/demand-drivers.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/forecast-demand.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/forgotten-items.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/identify-high-value-customers.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/identify-plowhorse-items.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/identify-star-items.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/incorporate-seasonality.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/inventory-levels.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/kitchen-performance.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/menu-item-profitability.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/monthly-forecast.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/optimal-pricing-adjustments.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/optimize-order-quantities.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/pricing-recommendations.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/seasonality-trends.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/segment-customers.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/segment-descriptions.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/waste-reduction.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/weekly-forecast.md
- life-cycle/agent-tooling/backend/tests/AGENTS.md
- life-cycle/architecture/docs/ETL.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/index.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-e2e-test-plan.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-proposal.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-streaming-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/source-task.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/01-brink-extract-boundary.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/02-source-connection-and-tenant-binding.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/03-extract-schedule-and-dispatch-contract.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/04-ingestion-batch-and-checkpoint-contract.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/05-raw-capture-and-failure-packaging.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/06-endpoint-catalog-and-execution-policy.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/07-raw-to-load-normalization-seam.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/08-first-job-design-input.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/09-first-job-design-v1.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/10-foundation-summary.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/11-raw-to-load-job-design-v1.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/12-missing-relational-load-mappings.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/13-load-to-redshift-staging-job-design-v1.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/14-staging-to-curated-job-design-v1.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/15-end-to-end-pipeline-summary.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/index.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/adapter-architecture-poc-simple.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/adapter-architecture.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-streaming-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-streaming-review-fix-plan.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/first-etl-job-proposal.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/index.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/integration-flow.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/poc-checklist.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/relational-load-staging-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/source-task.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/staging-to-curated-mapping.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/technical-integration-notes.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/xml-to-parquet-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/xml-to-parquet-proposal.md
- life-cycle/etl/docs/features/ETL/index.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK0.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK1.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.1.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.2.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.3.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.4.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.1.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.2.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.3.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.4.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK4.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK5.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK6.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK7.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK8.md
- life-cycle/research/temp/brink-pos-integration-research.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/customers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/inventory_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_item_status_events.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_order_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/loyalty_customers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_catalog_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_hourly_sales.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_menu_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_modifiers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_order_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_tables.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_table_definitions.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_tenders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transactions.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transaction_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transaction_tenders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_kitchen_get_order_bump_times.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_kitchen_get_order_item_bump_times.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_sales2_get_current_business_date.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_sales2_get_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_brands.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_destinations.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_employees.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_kitchen_queues.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_last_modified_time.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_menu.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_tables.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_taxes.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_day_parts.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_item_groups.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_modifier_codes.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_modifier_groups.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_registers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_revenue_centers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_sections.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_tenders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/customers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/inventory_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_item_status_events.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_order_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/loyalty_customers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_catalog_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_hourly_sales.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_menu_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_modifiers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_order_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_tables.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_table_definitions.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_tenders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transactions.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transaction_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transaction_tenders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/todo.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gnditem.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndsale.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndslsum.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndtndr.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_itm.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_mod.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tab.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tabdef.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tdr.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_customers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_item_bumps.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_inventory_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_loyalty.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_order_items.md
- tenat-admin/architecture/docs/features/tenant-admin-control-plane/api-contract.md
- tenat-admin/architecture/docs/features/tenant-admin-control-plane/data-model.md
- tenat-admin/architecture/docs/features/tenant-admin-control-plane/feature-proposal.md
- tenat-admin/architecture/docs/features/tenant-admin-control-plane/implementation-notes.md
- tenat-admin/architecture/docs/features/tenant-admin-control-plane/index.md
Tenant Admin Control Plane Implementation Notes
Purpose
This document turns the feature proposal into a concrete implementation checklist for the backend team.
Use it as a working task list for the PoC. Each task is intentionally short, concrete, and mapped to a main repository area.
Task List
1. Add client business entity
- [ ] Add
Cliententity withClientId,Name,Code,IsActive,CreatedAt,UpdatedAt. - [ ] Enforce immutable generated
Codeand unique constraint.
Reference:
- entities:
backend/Kds.Ai.Data/Entities/ - EF context:
backend/Kds.Ai.Data/
2. Add tenant business entity
- [ ] Add
Tenantentity withTenantId,ClientId,Name,Code,DatabaseName,Status,IsActive,CreatedAt,UpdatedAt. - [ ] Enforce unique
(ClientId, Name), globally uniqueCode, and globally uniqueDatabaseName. - [ ] Keep
CodeandDatabaseNameimmutable after creation.
Reference:
- entities:
backend/Kds.Ai.Data/Entities/ - EF context:
backend/Kds.Ai.Data/
3. Add tenant systems storage
- [ ] Add
TenantSystementity or equivalent relational child record for tenant system names. - [ ] Store both display value and normalized comparison value.
- [ ] Enforce case-insensitive deduplication per tenant.
Reference:
- entities:
backend/Kds.Ai.Data/Entities/ - EF context:
backend/Kds.Ai.Data/
4. Generate codes and database names
- [ ] Add application logic that generates
Client.Codefrom client name. - [ ] Add application logic that generates
Tenant.Codefrom tenant name. - [ ] Derive
Tenant.DatabaseNamefromTenant.Codeand validate against Redshift naming rules.
Reference:
- application/services:
backend/ - warehouse-related validation:
backend/Kds.Ai.Warehouse/
5. Add EF mappings and migration
- [ ] Register new entities in the EF Core model.
- [ ] Add migration for
Clients,Tenants, andTenantSystems. - [ ] Add indexes and constraints described in the feature docs.
Reference:
- EF context and model:
backend/Kds.Ai.Data/ - migrations:
backend/Kds.Ai.Data/Migrations/
6. Align tenant warehouse mapping with the new tenant model
- [ ] Update
TenantWarehouseMappingsto reference the new business tenant record. - [ ] Change warehouse mapping
TenantIdtoGuidif still string-based in the current flow. - [ ] Keep warehouse mapping as a technical table, not the primary business source.
Reference:
- entities and repositories:
backend/Kds.Ai.Data/ - warehouse services:
backend/Kds.Ai.Warehouse/
7. Add client repository operations
- [ ] Add create and list operations for clients.
- [ ] Keep repository behavior focused on persistence and uniqueness checks.
Reference:
- repositories:
backend/Kds.Ai.Data/Repositories/
8. Add tenant repository operations
- [ ] Add create operation for tenant under the current client.
- [ ] Add list operations for tenants by current client.
- [ ] Persist tenant systems together with tenant creation.
Reference:
- repositories:
backend/Kds.Ai.Data/Repositories/
9. Add admin client endpoints
- [ ] Add
POST /admin/clients. - [ ] Add
GET /admin/clients. - [ ] Return contracts consistent with
api-contract.md.
Reference:
- endpoints:
backend/Kds.Ai.ApiService/Endpoints/ - app endpoint registration:
backend/Kds.Ai.ApiService/Program.cs
10. Add admin tenant endpoints
- [ ] Keep admin surface limited to client endpoints in the PoC.
- [ ] Do not add admin tenant create/list/bootstrap endpoints in the PoC.
Reference:
- endpoints:
backend/Kds.Ai.ApiService/Endpoints/ - app endpoint registration:
backend/Kds.Ai.ApiService/Program.cs
11. Add client-scoped tenant endpoints
- [ ] Add
POST /client/tenants. - [ ] Add
GET /client/tenants. - [ ] Add
GET /client/tenants/{tenantId}. - [ ] Resolve current client from authentication context instead of request body or route
clientId. - [ ] Keep client tenant create/list scoped to the authenticated client only.
- [ ] Keep client tenant detail scoped to the authenticated client only.
Reference:
- endpoints:
backend/Kds.Ai.ApiService/Endpoints/ - app endpoint registration:
backend/Kds.Ai.ApiService/Program.cs
12. Add bootstrap trigger endpoints
- [ ] Add
POST /client/tenants/{tenantId}/bootstrap. - [ ] Load tenant metadata and tenant systems before triggering bootstrap.
- [ ] Reject bootstrap when tenant has no configured systems.
- [ ] Keep the endpoint idempotent.
- [ ] Ensure client bootstrap verifies tenant ownership before execution.
Reference:
- endpoints:
backend/Kds.Ai.ApiService/Endpoints/ - warehouse bootstrap flow:
backend/Kds.Ai.Warehouse/
13. Keep tenant creation and bootstrap separated
- [ ] Ensure tenant create endpoint only registers the tenant and technical warehouse mapping.
- [ ] Do not run warehouse bootstrap inside tenant creation.
Reference:
- API service:
backend/Kds.Ai.ApiService/ - warehouse bootstrap flow:
backend/Kds.Ai.Warehouse/
14. Add client scoping abstraction
- [ ] Add the minimum abstraction needed to resolve the current client for the client endpoint surface.
- [ ] Keep client scoping separate from tenant scoping already used elsewhere in the application.
Reference:
- API service:
backend/Kds.Ai.ApiService/ - data and tenancy infrastructure:
backend/Kds.Ai.Data/
15. Normalize and validate systems input
- [ ] Trim and normalize
systemsvalues before deduplication. - [ ] Reject duplicate system names after normalization.
- [ ] Preserve one canonical stored/display value per system entry.
Reference:
- API validation and application logic:
backend/Kds.Ai.ApiService/,backend/Kds.Ai.Data/
16. Add status transition rules
- [ ] New tenant starts as
PendingBootstrapand inactive. - [ ] Successful bootstrap sets tenant to
Activeand active. - [ ] Failed bootstrap sets tenant to
BootstrapFailedand inactive.
Reference:
- business persistence:
backend/Kds.Ai.Data/ - bootstrap integration:
backend/Kds.Ai.Warehouse/
17. Add API validation behavior
- [ ] Validate missing client name and tenant name.
- [ ] Validate duplicate tenant names inside one client.
- [ ] Validate generated database name against Redshift rules.
- [ ] Return clear problem details for invalid requests.
Reference:
- API endpoints and validation:
backend/Kds.Ai.ApiService/ - data persistence rules:
backend/Kds.Ai.Data/
18. Add integration tests for admin and client flows
- [ ] Test client creation.
- [ ] Test client-scoped tenant creation.
- [ ] Test client-scoped tenant listing.
- [ ] Test client-scoped tenant get by id.
- [ ] Test tenant worker cannot read another client's tenant by id.
- [ ] Test bootstrap rejection when tenant has no systems.
- [ ] Test client bootstrap success/failure status transitions.
- [ ] Test client bootstrap ownership checks.
Reference:
- API tests:
backend/tests/Kds.Ai.ApiService.Tests/
19. Update CLI and warehouse assumptions only where needed
- [ ] Review existing warehouse CLI and bootstrap assumptions for tenant identity type and mapping lookup.
- [ ] Adjust only the minimum needed for compatibility with the new tenant model.
Reference:
- CLI:
backend/Kds.Ai.Cli/ - warehouse services:
backend/Kds.Ai.Warehouse/
20. Update documentation references if implementation naming changes
- [ ] Keep endpoint naming aligned with
api-contract.md. - [ ] Keep persistence naming aligned with
data-model.md. - [ ] Update this feature folder if implementation decisions change materially.
Reference:
- feature docs:
docs/features/tenant-admin-control-plane/
Suggested Delivery Order
- [ ] Data model and migration first.
- [ ] Repository layer second.
- [ ] Admin and client read/write endpoints third.
- [ ] Bootstrap trigger endpoints fourth.
- [ ] Integration tests and cleanup last.