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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for belgie_organization-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c12fd2a6b4dcb115079bb72581e72cfd01d28245a1305163692b38f33beeecf3
MD5 dacb16e863065b272bf6db40c1e22832
BLAKE2b-256 dfb4351a130a13e6f91d22972009be06360b1204c984b908e3bf96d912879191

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for belgie_organization-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 668aac7bdb5b40ac518fef965f671b7f11895d4c526e8c3ebc99d91917ae2fee
MD5 78dcf56bbbede3a29f44c619faa979b9
BLAKE2b-256 eba36868fa46958d5615aca6eb798fda43ce41acda9238c673b9372502fa0ad9

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