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.3.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.3-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: belgie_organization-0.10.3.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.3.tar.gz
Algorithm Hash digest
SHA256 3e6e2cdced4f3ba6babe6146dce3c3b1d4126eb887ab69a6d7f186f149c29436
MD5 c9b244d6dd72d1c667be50b4a355c4b8
BLAKE2b-256 ed8a028cc67494de72f6c1aa1fd3fc786c1ebd5ee3dc23494566bde91d0c8574

See more details on using hashes here.

File details

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

File metadata

  • Download URL: belgie_organization-0.10.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2adcc8e50ae78586c00c4aab9bcf8e1d08273ef7bc6abed983c6030f92f2eac5
MD5 ae95e97b85bf861e34b002983053b3c8
BLAKE2b-256 af0d3e4319ec410572c201c2212037749218fc20eef493dba60d20163a269b53

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