Skip to main content

Organization plugin for Belgie

Project description

belgie-organization

Organization plugin and client for Belgie.

Breaking change in 0.1.0

OrganizationPlugin no longer exposes built-in HTTP endpoints. The plugin now exists to inject a request-scoped OrganizationClient into your own FastAPI routes.

Usage

from typing import Annotated

from fastapi import Depends, FastAPI

from belgie import Belgie
from belgie.organization import OrganizationClient

app = FastAPI()
app.include_router(auth.router)

organization_plugin = auth.add_plugin(...)


@app.post("/org/create")
async def create_org(
    org_client: Annotated[OrganizationClient, Depends(organization_plugin)],
) -> dict[str, str]:
    organization, _member = await org_client.create(
        name="Acme",
        slug="acme",
        role="owner",
    )
    return {"organization_id": str(organization.id)}


@app.post("/org/invite")
async def invite_member(
    org_client: Annotated[OrganizationClient, Depends(organization_plugin)],
) -> dict[str, str]:
    invitation = await org_client.invite(
        email="member@example.com",
        role="member",
    )
    return {"invitation_id": str(invitation.id)}

Core client methods

  • create, check_slug, list_for_user, set_active, get_active, get_full, update, delete
  • list_members, add_member, remove_member, update_member_role, get_active_member, leave
  • invite, accept_invitation, cancel_invitation, reject_invitation, get_invitation, list_invitations, list_user_invitations

Roles

Role values are required for create/invite/member-role flows. Inputs support str, StrEnum, and role sequences. Roles are persisted as a normalized comma-separated string.

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

belgie_organization-0.10.5.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

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

belgie_organization-0.10.5-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file belgie_organization-0.10.5.tar.gz.

File metadata

  • Download URL: belgie_organization-0.10.5.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for belgie_organization-0.10.5.tar.gz
Algorithm Hash digest
SHA256 02a91d77040705c5fec1e84208ca05b2c9e2e591217ad148a3e5e02d303a1efe
MD5 afe19400d136ea8ee2208b2f744287af
BLAKE2b-256 5470100c5ce9ef68fd949b2a655484d61ad43907dfaed45db9801e2f40d15322

See more details on using hashes here.

File details

Details for the file belgie_organization-0.10.5-py3-none-any.whl.

File metadata

  • Download URL: belgie_organization-0.10.5-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for belgie_organization-0.10.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c59bb6c0d8d5eedaf4dc2accc8587a12832bcdff4b3d0178fff81e2b60cfbdc2
MD5 26c668494c8fd43addefff0248f05d0a
BLAKE2b-256 92c85d7646b43c909f48334f0bc1fb7384c1e2820b18630cdd939cef614c180b

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