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.2.0.tar.gz (11.7 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.2.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lumid_hooks-0.2.0.tar.gz
  • Upload date:
  • Size: 11.7 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.2.0.tar.gz
Algorithm Hash digest
SHA256 3c33d067c238337c16be88708d674448d83642e767bc0724e0ab1b5f6122010d
MD5 f500f59499f2d208eeeb307c28de5474
BLAKE2b-256 34b7f2c4544b4df91ce80908f17cd5645611ec2538ddc6444bc00ad8e5961531

See more details on using hashes here.

Provenance

The following attestation bundles were made for lumid_hooks-0.2.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.2.0-py3-none-any.whl.

File metadata

  • Download URL: lumid_hooks-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.0 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a3e471ee38cfe83eb46199a64c269bc0ad9f81154d820e68d45c604a16e1f2e7
MD5 713533a3f7dc5dab924c45e0782df42f
BLAKE2b-256 67ac1b39a49650a27f012b847b6be939866cec39d4aea96d50177ec8861d21ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for lumid_hooks-0.2.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