Commit Graph

24 Commits

Author SHA1 Message Date
Joseph Doherty 08f5aa1447 docs: add MisData archival implementation and unit test report
Document the MisData_Curr/Hist table split in architecture docs, add
post-sync archival scripts to move BackLevel records to history table,
and generate comprehensive unit test report (856 tests, 100% pass rate).
2026-01-19 04:03:25 -05:00
Joseph Doherty 8630a5d32b docs: add WorkProcessor design and implementation documentation
- WorkProcessorReport.md: Analysis of legacy work processor from OLD solution
- Design document with clean architecture and component specifications
- Implementation plan with 15 TDD tasks
2026-01-07 06:30:54 -05:00
Joseph Doherty 1618b6664d refactor: remove unused CMS/JDE repositories and data sources
Remove legacy JDE and CMS direct-access code that is no longer used:
- Delete ICmsDataSource, IJdeDataSource interfaces
- Delete ISearchProcessor, IUpdateProcessor interfaces
- Delete IJdeRepository and ICmsRepository (all partials)
- Delete JdeRepository and CmsRepository implementations
- Delete JdeQueries and CmsQueries
- Delete JdeFileDataSource, JdeOracleDataSource
- Delete CmsFileDataSource, CmsOracleDataSource
- Remove unused methods from LotFinderRepository interfaces
- Delete associated unit tests (CmsRepositoryTests, JdeRepositoryTests)

All data sync now uses ETL pipelines via DataSync project.
2026-01-07 05:04:49 -05:00
Joseph Doherty bd8cb87275 docs: add pipeline schedule alignment implementation plan
15-task plan to align pipelines.json with legacy DataSyncReport.md:
- Phase 1: Schema & Models (Tasks 1-3)
- Phase 2: GIW Connection (Tasks 4-5)
- Phase 3: Core ETL Changes (Tasks 6-8)
- Phase 4: Pipeline Configurations (Tasks 9-11)
- Phase 5: Validation & Testing (Tasks 12-15)
2026-01-07 00:13:03 -05:00
Joseph Doherty 2a9dbe2f62 docs: add pipeline schedule alignment design
Aligns pipelines.json with legacy DataSyncReport.md:
- Three schedules (Mass/Daily/Hourly) instead of two sync modes
- 8 missing pipelines to add
- GIW connection for StatusCode
- Per-pipeline schedule configuration
2026-01-07 00:07:46 -05:00
Joseph Doherty d2136cacf7 fix(DbExporter): fix compressed size calculation and clean up
- Move file size read after streams are disposed to get accurate compressed size
- Clean up definition files to use working example queries
- Add .gitignore for output directory
2026-01-06 17:06:16 -05:00
Joseph Doherty 4e3e1c9df3 docs: add SQL naming convention implementation plan 2026-01-06 15:47:17 -05:00
Joseph Doherty f138b1ae59 docs: add MatchMIS function to naming convention design 2026-01-06 15:45:24 -05:00
Joseph Doherty 5c1ef7136e docs: add stored procedure naming convention design 2026-01-06 15:43:22 -05:00
Joseph Doherty edff5859b9 docs: add protobuf cache conversion implementation plan
10-task plan covering converter tool creation, ProtobufZstdFileSource,
DevEtl migrations, and cleanup of obsolete JSON source files.
2026-01-06 14:18:27 -05:00
Joseph Doherty 8ce9a7dae1 docs: switch cache conversion design from MessagePack to protobuf-net-data
protobuf-net-data is purpose-built for IDataReader serialization and
returns IDataReader directly from Deserialize(), eliminating the need
for custom streaming reader implementations.
2026-01-06 14:15:19 -05:00
Joseph Doherty d4135e8ad3 fix(data-access): correct self-referential SQL in WorkCenter filter
The WHERE clause was comparing Code to itself instead of the aliased
table reference, which would always be true.
2026-01-06 14:12:07 -05:00
Joseph Doherty 01da261d6c docs: add MessagePack cache conversion design plan
Design for converting CACHED_DB_FILES from zstd-compressed JSON
to zstd-compressed MessagePack for faster deserialization and
smaller file sizes.
2026-01-06 14:03:47 -05:00
Joseph Doherty 397b339c86 docs: update plans based on Codex review
Codex review findings applied:
- Use CTE pattern to pre-filter valid JSON before OPENJSON
- Use OPENJSON...WITH for type-safe extraction (avoids double TRY_CONVERT)
- Keep script gaps instead of renumbering (prevents migration drift)
- Add xUnit Collection for test isolation (prevents parallel execution issues)
2026-01-06 13:09:10 -05:00
Joseph Doherty f2eb3d2fe1 docs: update design with inline TVFs based on Codex review
Key changes from Codex feedback:
- THROW cannot be used in UDFs (SQL Server restriction)
- Multi-statement TVFs have poor performance (no stats)
- Changed to inline TVFs for extraction (optimal performance)
- Added validation stored procedure for strict error handling
- Use TRY_CONVERT for safe type conversion
- Use OPENJSON...WITH for complex object extraction
2026-01-06 13:01:25 -05:00
Joseph Doherty 4d0b5a7941 docs: add search criteria SQL extraction functions design 2026-01-06 12:56:50 -05:00
Joseph Doherty 3d63f8f2fc docs: fix ApiResult property names in test implementation plan
- Replace IsApiError with IsError
- Replace ApiError. with Error.
- Replace ValidationError.Errors with ValidationError.FieldErrors

These match the actual ApiResult<T> implementation. The tests
themselves were already correct - subagents adapted during implementation.
2026-01-06 11:54:31 -05:00
Joseph Doherty 81b07ce027 feat: extract DevEtl to JdeScoping.DataSync.Dev project
- Create JdeScoping.DataSync.Dev for sandbox testing ETL code
- Create JdeScoping.DataSync.Dev.Tests for associated tests
- Move 22 source files and 8 test files
- Update namespaces from DevEtl to Dev
- Add both projects to solution
2026-01-06 10:18:09 -05:00
Joseph Doherty bb21eb9468 docs: add ETL documentation implementation plan
8-task plan to create comprehensive ETL pipeline documentation:
- Overview, Sources, Transformers, Destinations, Configuration, Troubleshooting
- Update ComponentMap with ETL source paths
- Final verification of links and commits
2026-01-03 15:27:59 -05:00
Joseph Doherty 9103626ad4 docs: add ETL pipeline documentation design
Design for 6 documentation files covering the DataSync ETL pipeline:
- Overview, Sources, Transformers, Destinations, Configuration, Troubleshooting

Target audience: developers extending the pipeline + operations/support.
2026-01-03 15:22:57 -05:00
Joseph Doherty 61d4848955 docs: add ETL Pipeline Phase 2 implementation plan
12-task TDD implementation plan covering:
- MapOrdinal interface and binary method overrides
- ColumnDropTransformer and JdeDateTransformer ordinal mapping
- JDE date validation with 1900-01-01 sentinel
- Column rename collision detection
- SqlScriptRunner parameters support
- CommonScripts with ParseTableName and QUOTENAME
- Destination command timeouts
- Column mapping with destination schema intersection
- EtlPipelineBuilder.WithCommandTimeout validation
- Full test suite verification
- Codex MCP final review
2026-01-03 10:24:28 -05:00
Joseph Doherty 7ae2cd4882 docs: add ETL Pipeline Phase 2 design document
Design addresses 7 issues identified in Phase 1 review:
- Bulk copy column mapping (by name, intersect with destination)
- Schema-qualified table names (parse tableName, QUOTENAME)
- Configurable timeouts (single commandTimeoutSeconds)
- JDE date sentinel (1900-01-01 default for invalid dates)
- TransformingDataReader ordinal mapping (MapOrdinal on interface)
- Transformer lifecycle (document single-use, no auto-dispose)
- Column rename collision validation (fail-fast on duplicates)

Reviewed by Codex MCP with all issues addressed.
2026-01-03 10:21:02 -05:00
Joseph Doherty ec4c8fab87 refactor: relocate options classes to dedicated Options folders
Move configuration options from Core/DataAccess/DataSync/ExcelIO to
dedicated Options folders within each project for better organization.
Update all references and tests accordingly.
2026-01-03 08:55:08 -05:00
Joseph Doherty 26ff8d9b4f Initial commit: JDE Scoping Tool migration project
Set up repository with legacy .NET Framework 4.8 source (OLD/),
new .NET 10 Blazor solution (NEW/), OpenSpec specifications,
documentation, and project configuration.
2026-01-02 07:43:29 -05:00