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

Uploaded Python 3

File details

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

File metadata

  • Download URL: belgie_organization-0.10.1.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.1.tar.gz
Algorithm Hash digest
SHA256 667b777c0072e1b13094ef11199a9ef91ad17922b4a6fc8d4cd65a1106132f26
MD5 6c71215f4babc79376290f5a5051f3c4
BLAKE2b-256 ab29c30d4a0a6a961d7e472c34813503fa19b0a2fca1966481a74f1ef50fa152

See more details on using hashes here.

File details

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

File metadata

  • Download URL: belgie_organization-0.10.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9e9a7cf58ce334f64457a73070fd6f2372eb8da045303dd684cc0ea753065dfb
MD5 d989634e619d81b6e1253b6c1f6bbf33
BLAKE2b-256 8ed8419306f5847b82a3ce7f0fa6cdbd95f38fccdf5ce52373c33ff8d1fb31f3

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