Introduction & Home
Relevant source files
The following files were used as context for generating this wiki page:
The flext-tap-oracle-wms project is a Singer-compliant tap designed to extract data from Oracle Warehouse Management Systems (WMS). It serves as a core integration component within the FLEXT ecosystem, providing structured access to WMS entities such as inventory, locations, and orders through the Singer SDK protocol.
Sources: README.md:1-10, src/flext_tap_oracle_wms/README.md:12-15
Architecture Overview
The system follows a modular architecture that integrates the Singer SDK with the FLEXT core patterns. It is built to support both full table and incremental replication methods, leveraging a specialized HTTP client for Oracle WMS API interactions.
Core Ecosystem Integration
The tap operates as part of a larger ecosystem of tools:
- flext-core: Provides foundation patterns, logging, and result handling.
- flext-oracle-wms: Supplies the underlying Oracle WMS API client and data models.
- flext-meltano: Handles orchestration via Meltano.
- flext-observability: Manages monitoring and health checks.
Sources: src/flext_tap_oracle_wms/README.md:86-91, src/flext_tap_oracle_wms/tap.py:27-35
Component Interaction Flow
The following diagram illustrates the high-level flow of data and control when the tap is initialized and executed.
The tap uses FlextTapOracleWmsSettings to validate incoming configuration before initiating the FlextOracleWmsUtilities.OracleWms.Client for data operations.
Sources: src/flext_tap_oracle_wms/tap.py:53-75, src/flext_tap_oracle_wms/tap.py:180-198
System Components
Main Tap Interface
The FlextTapOracleWms class is the primary entry point, inheriting from singer_sdk.Tap (via m.Meltano.SingerTapBase). It manages the lifecycle of the extraction process, including configuration validation and stream discovery.
| Component | File Path | Responsibility |
|---|---|---|
| Main Tap | tap.py | Implements Singer SDK patterns and manages client lifecycle. |
| Settings | settings.py | Defines Pydantic-based configuration models with environment variable support. |
| Streams | streams.py | Defines individual WMS entity streams and pagination logic. |
| Client | client.py | Handles HTTP requests and Oracle WMS API specifics. |
Sources: src/flext_tap_oracle_wms/README.md:21-35, src/flext_tap_oracle_wms/tap.py:26-30
Configuration Management
Configuration is handled through FlextTapOracleWmsSettings, which uses an environment prefix FLEXT_TAP_ORACLE_WMS_. It supports critical parameters for connectivity and extraction behavior.
settings = FlextTapOracleWmsSettings(
base_url="https://wms.example.com",
username="user",
password="pass",
api_version="v10",
page_size=100
)
Sources: src/flext_tap_oracle_wms/settings.py:18-45, src/flext_tap_oracle_wms/tap.py:237-245
Data Discovery & Extraction
Discovery Process
The tap discovers entities by querying the Oracle WMS API. It then converts these entities into Singer catalog entries.
Stream Implementation
Each discovered entity is represented as a FlextTapOracleWmsStream. These streams implement Oracle WMS HATEOAS pagination and support various replication methods.
| Replication Method | Description | Example Entities |
|---|---|---|
| FULL_TABLE | Extracts all records every time. | item, location, company |
| INCREMENTAL | Extracts records based on a replication key (e.g., timestamp). | inventory, order_hdr, order_dtl |
Sources: meltano.yml:195-213, src/flext_tap_oracle_wms/README.md:95-99
Technical Specifications
Project Metadata
The project is built for modern Python environments and relies on the Singer SDK.
- Python Version:
3.13+ - Build Backend:
hatchling.build - Key Dependencies:
flext-core,flext-oracle-wms,pydantic,requests
Sources: pyproject.toml:13-35
Quality Gates & Testing
The project maintains high quality standards with a target of 90% test coverage.
- Unit Tests: Focus on individual components (auth, client, config) in isolation.
- Integration Tests: Currently partially disabled due to external dependencies, requiring a mock infrastructure for full re-enabling.
- E2E Tests: Focused on CLI execution and complete protocol compliance.
Sources: src/flext_tap_oracle_wms/README.md:126-130, tests/README.md:22-35
Summary
The flext-tap-oracle-wms module provides a robust, Singer-compliant interface for Oracle WMS data extraction. While currently undergoing architectural simplification to reduce complexity, it offers comprehensive support for entity discovery, secure authentication, and scalable data streaming within the FLEXT ecosystem.
Sources: src/flext_tap_oracle_wms/README.md:12-18, src/flext_tap_oracle_wms/README.md:76-80