Skip to main content

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 sigstore Python 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

floe_core-0.1.0a1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

floe_core-0.1.0a1-py3-none-any.whl (673.3 kB view details)

Uploaded Python 3

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

Hashes for floe_core-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 b41c31a67cf52d63329d05e221034e0802d1339b72cbd2e406406c27b0d8d72e
MD5 ab4a8c04cb92ba1a471527b9b835981b
BLAKE2b-256 cde718fda4ce3215629f3b3ff70791610930b3ef1a51f7006d1622dca2cecad4

See more details on using hashes here.

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

Hashes for floe_core-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 fbe469cf372861997221173f46bd3a38be4669096dc994d71e50707e15f499d1
MD5 18762917073a37f4f67e821f5f29fea2
BLAKE2b-256 880bc313cc3c71c5644cc666356931ab57341fc0b917ca949fcb8a2437fa67d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page