Core plugin registry and interfaces for the floe data platform
Project description
floe-core
Core plugin registry and interfaces for the floe data platform.
Installation
uv pip install floe-core
Features
- Plugin discovery via entry points
- Type-safe plugin registration
- Version compatibility checking
- Configuration validation with Pydantic
- Health check support
- Artifact signing and verification (Epic 8B)
External Dependencies
The following external CLI tools are required for artifact signing features:
cosign (>= 2.0.0)
Required for key-based signing, KMS integration, and attestations.
# macOS
brew install cosign
# Linux (Debian/Ubuntu)
COSIGN_VERSION=2.4.1
curl -LO https://github.com/sigstore/cosign/releases/download/v${COSIGN_VERSION}/cosign-linux-amd64
sudo install cosign-linux-amd64 /usr/local/bin/cosign
# Verify installation
cosign version
syft (for SBOM generation)
Required for generating Software Bill of Materials (SBOM) in SPDX format.
# macOS
brew install syft
# Linux
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
# Verify installation
syft version
Note: Keyless signing (OIDC-based) uses the
sigstorePython library and does not require cosign CLI.
Environment Variables
Configuration environment variables for signing and testing:
| Variable | Default | Description |
|---|---|---|
FLOE_DISABLE_BROWSER_OAUTH |
false |
Set to true to prevent interactive browser OAuth. Use in CI/CD where OIDC ambient credentials should be available. |
FLOE_OIDC_TOKEN_MAX_RETRIES |
3 |
Maximum retries for OIDC token acquisition (1-10). |
CI/CD Configuration
In GitHub Actions, ensure OIDC is enabled:
permissions:
id-token: write # Required for keyless signing
Then disable browser OAuth fallback:
env:
FLOE_DISABLE_BROWSER_OAUTH: "true"
This ensures tests fail fast if OIDC credentials are unavailable rather than hanging on browser auth.
Security Environment Variables
| Variable | Default | Description |
|---|---|---|
FLOE_ENVIRONMENT |
development |
Set to production to enforce SSL verification on all HTTPS connections. Production environment ignores verify_ssl=False parameters. |
FLOE_ALLOW_INSECURE_SSL |
false |
Set to true to allow disabling SSL certificate verification in non-production environments. Required for self-signed certificates in development. |
Security Notes:
- In production (
FLOE_ENVIRONMENT=production), SSL verification is always enforced regardless of code settings - Disabling SSL verification requires explicit opt-in via
FLOE_ALLOW_INSECURE_SSL=true - A CRITICAL-level log is emitted when SSL verification is disabled
Development
# Install with dev dependencies
uv pip install -e ".[dev]"
# Run tests
pytest
# Type checking
mypy src/floe_core
# Linting
ruff check src/floe_core
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file floe_core-0.1.0a1.tar.gz.
File metadata
- Download URL: floe_core-0.1.0a1.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b41c31a67cf52d63329d05e221034e0802d1339b72cbd2e406406c27b0d8d72e
|
|
| MD5 |
ab4a8c04cb92ba1a471527b9b835981b
|
|
| BLAKE2b-256 |
cde718fda4ce3215629f3b3ff70791610930b3ef1a51f7006d1622dca2cecad4
|
File details
Details for the file floe_core-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: floe_core-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 673.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbe469cf372861997221173f46bd3a38be4669096dc994d71e50707e15f499d1
|
|
| MD5 |
18762917073a37f4f67e821f5f29fea2
|
|
| BLAKE2b-256 |
880bc313cc3c71c5644cc666356931ab57341fc0b917ca949fcb8a2437fa67d8
|