Skip to main content

Shared plugin contract surface for Lumid projects

Project description

lumid-hooks

Shared plugin contract surface for Lumid projects. Defines the protocols and shared types that downstream projects compose with their own resource vocabulary and project-specific extension points.

What's in scope

Generic protocols and shared types every project agrees on:

  • PrincipalContext — identity envelope returned by IdentityProvider.
  • ResourceRef(kind, id, metadata) triple for resource-scoped checks.
  • IdentityProvider — bearer-token to principal resolution.
  • SubmissionGuard — pre-submission gate.
  • PermissionChecker — bulk filter (accessible_ids) and point check (require).
  • ResourceRegistrar — resource lifecycle fan-out (register / deregister).
  • UsageSink[Row] — generic per-row usage emission.
  • HookBindings — runtime-checkable Protocol describing the five shared fields a plugin's bindings object exposes. Hosts gate against this Protocol at load time; structural typing means a plugin satisfies it by having the right field names without importing host packages.
  • BaseBindings — frozen dataclass with the five fields default-factoried to empty tuples. Plugins targeting one host can return BaseBindings(...) directly; plugins targeting multiple hosts subclass BaseBindings and add each host's extra field names alongside.

What's out of scope

Project-specific resource types and actions, and project-specific extension points (e.g. FlowMesh's SupplierResolver). Each project ships its own Protocol that extends HookBindings plus a BaseBindings subclass with the project's extra field.

Runtime dependency

pydantic>=2.12.3 for PrincipalContext and ResourceRef. No other runtime dependencies — plugins can pip install lumid-hooks without pulling in any project's heavy core stack.

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

lumid_hooks-0.1.0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

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

lumid_hooks-0.1.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file lumid_hooks-0.1.0.tar.gz.

File metadata

  • Download URL: lumid_hooks-0.1.0.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for lumid_hooks-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0ae85cef586645391f21ea3d912de1bf2be77b6b6dd0690f3841bb238fa0315a
MD5 a864853ec9d34d1d000485e03ba85974
BLAKE2b-256 1fb4d660b386d13051669eae4c9056154c638302a1eea39fccb569075ed07243

See more details on using hashes here.

Provenance

The following attestation bundles were made for lumid_hooks-0.1.0.tar.gz:

Publisher: release.yml on mlsys-io/lumid.hooks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lumid_hooks-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: lumid_hooks-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for lumid_hooks-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8cfd8f3ed36001711b70290a5043a213322deaced1046d4583a4739f11cb00a6
MD5 0dfab21e5d686156574c17cc40785918
BLAKE2b-256 857084678eb357151f84fd78e6ce8270a42180a2605a3a3168492201feed76bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for lumid_hooks-0.1.0-py3-none-any.whl:

Publisher: release.yml on mlsys-io/lumid.hooks

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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