Settings & Configuration Options
Relevant source files
The following files were used as context for generating this wiki page:
Settings and configuration options for the FLEXT Tap Oracle WMS are managed through a robust validation layer powered by Pydantic. This system ensures that all parameters required for connecting to the Oracle Warehouse Management System (WMS) and orchestrating data extraction via the Singer protocol are accurately defined, typed, and validated before runtime execution.
The configuration architecture supports multiple ingestion methods, including environment variables, direct JSON input, and Meltano-specific settings. This multi-layered approach allows for flexible deployment across development, staging, and production environments while maintaining strict security for sensitive credentials like passwords and OAuth secrets.
Sources: src/flext_tap_oracle_wms/settings.py:19-24, meltano.yml:4-48, src/flext_tap_oracle_wms/tap.py:34-60
Core Configuration Architecture
The configuration system is centered around the FlextTapOracleWmsSettings class, which inherits from FlextSettingsBase. It utilizes Pydantic for schema enforcement and environment variable mapping using the FLEXT_TAP_ORACLE_WMS_ prefix.
Configuration Lifecycle
The following diagram illustrates the flow of configuration from raw input to a validated settings object used by the Tap.
The tap validates inputs against a JSON schema defined in the FlextTapOracleWms class, ensuring that required fields such as base_url, username, and password are present.
Sources: src/flext_tap_oracle_wms/settings.py:19-25, src/flext_tap_oracle_wms/tap.py:36-60, tests/unit/test_config_validation.py:20-30
Configuration Options Reference
The following table details the available configuration settings, including their types, default values, and functional descriptions.
| Setting Name | Type | Default | Description |
|---|---|---|---|
base_url | String / URL | "" | Base Oracle WMS API URL. |
username | String | "" | Oracle WMS username for authentication. |
password | SecretString | "" | Oracle WMS password (Sensitive). |
auth_method | Options | basic | Authentication method: basic or oauth2. |
api_version | String | "V1" | Targeted Oracle WMS API version. |
page_size | Integer | 100 | Number of records per page for extraction. |
timeout | Integer | 30 | Request timeout in seconds (Min: 1, Max: 300). |
max_retries | Integer | 3 | Maximum request retries for failed calls. |
verify_ssl | Boolean | True | Enable or disable SSL certificate verification. |
start_date | String (ISO) | None | Start date for incremental data extraction. |
include_entities | List[String] | [] | Specific entities to include in discovery/sync. |
exclude_entities | List[String] | [] | Specific entities to ignore. |
enable_rate_limiting | Boolean | True | Enable API rate limiting to prevent throttling. |
Sources: src/flext_tap_oracle_wms/settings.py:27-140, meltano.yml:51-140, tests/unit/test_config.py:21-42
Validation Logic and Business Rules
Beyond standard type checking, the system implements domain-specific business rules to ensure logical consistency in the configuration.
Data Flow for Validation
Key Validation Methods
_check_no_duplicates: Ensures that entities listed in inclusion or exclusion sequences are unique._check_iso_date: Validates that date strings conform to the ISO 8601 format using a specific regular expression.validate_business_rules: A critical method that prevents logical errors, such as an entity being simultaneously included and excluded, or astart_dateoccurring after anend_date.
Sources: src/flext_tap_oracle_wms/settings.py:143-176, tests/unit/test_config.py:112-146
Environment-Specific Configuration
The project leverages Meltano environments to provide sane defaults for development, staging, and production.
| Environment | Log Level | Page Size | Retry Limit | Concurrency |
|---|---|---|---|---|
| dev | DEBUG | 100 | - | - |
| staging | INFO | 500 | 5 | - |
| prod | WARNING | 100 | 10 | 5 |
Sources: meltano.yml:7-34
Security and Metadata
Sensitive information is protected through several mechanisms:
- Secret Management: Fields like
passwordandoauth_client_secretare typed asSecretStror marked assensitiveinmeltano.yml, ensuring they are masked in logs and output. - Environment Variable Mapping: The
model_configspecifies anenv_prefixofFLEXT_TAP_ORACLE_WMS_, allowing credentials to be injected via secure environment variables rather than hardcoded files. - Singer Compliance: Required fields are enforced via the
config_jsonschemain the main Tap class to ensure the tap fails immediately if the execution environment is misconfigured.
Sources: src/flext_tap_oracle_wms/settings.py:21-38, src/flext_tap_oracle_wms/tap.py:38-54, meltano.yml:85-103
Summary
The Settings & Configuration Options in flext-tap-oracle-wms provide a strictly typed and validated interface for the Oracle WMS extraction process. By combining Pydantic-based settings objects with Singer-compliant schemas and environment-aware Meltano configurations, the system ensures secure, reliable, and predictable data extraction workflows across various deployment scenarios.