Skip to main content

finos-automation-sdk

The FinOS automation client SDK (import name finos.automation). Automation scripts import it to follow the FinOS automation calling contract without re-implementing it: it calls only the public Ledger and Platform API endpoints over HTTPS with a Clerk-signed bearer token, and grants no capability the API would not already grant that token.

It is standalone — it depends only on PyPI packages, so it installs anywhere (e.g. on a Windmill worker) without the FinOS monorepo:

pip install finos-automation-sdk            # API calling + token minting
pip install "finos-automation-sdk[telemetry]"   # + Sentry telemetry

# Pre-release dry runs are published to TestPyPI:
pip install -i https://test.pypi.org/simple/ finos-automation-sdk

Three independent capabilities

# API calling (any automation) — built from a JWT the caller already has.
from finos.automation import FinOSAPIClient
async with FinOSAPIClient(received_jwt) as api:
    ledgers = await api.ledger.ledgers.list_ledgers()
    me = await api.platform.users.read_own_profile()

# Token generation (dispatcher only) — Clerk M2M, hidden behind TokenMinter.
from finos.automation import TokenMinter
minter = TokenMinter()                       # CLERK_MACHINE_SECRET_KEY from env
obo = await minter.mint_for_user("user_123") # signed on_behalf_of claim

# Telemetry (every client) — optional Sentry extra, safe no-op without a DSN.
from finos.automation import init_telemetry, TelemetryContext
init_telemetry(context=TelemetryContext("import-csv", run_id, "manual"))

Plus verify_user_token (JWKS verification of a received token) and a typed error taxonomy in finos.automation.errors.

Operations under api.ledger / api.platform are reflected from the OpenAPI-generated clients by tag (api.<service>.<tag>.<operation>(...)), so no operation is hand-written and none needs re-writing when the clients are regenerated.

Configuration

Every constructor argument is optional and falls back to an environment variable when None. The one value with no env fallback is the API client's JWT — it is always passed by the caller.

Env var Used by
CLERK_MACHINE_SECRET_KEY TokenMinter
LEDGER_API_URL / PLATFORM_API_URL FinOSAPIClient base URLs
SENTRY_DSN / SENTRY_ENVIRONMENT init_telemetry (optional)

License

MIT

Metadata

Release files for finos-automation-sdk 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for finos-automation-sdk 0.6.1
File Size Uploaded
finos_automation_sdk-0.6.1.tar.gz 34.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for finos-automation-sdk 0.6.1
File Interpreter ABI Platform
finos_automation_sdk-0.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 60.5 kB

Release files / finos_automation_sdk-0.6.1.tar.gz

Download URL finos_automation_sdk-0.6.1.tar.gz
Size 34.8 kB
Tags Source
SHA-256 checksum
How to use checksums
233c1161b7647ea72bccb83d03254cd74c6328b3d2cd61c8ffca6099ca4951c0
BLAKE2b-256 checksum
How to use checksums
7a308500031dbcde6ea6a68874b9fc09e74c9ff7ba802c96311839714c554a17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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}

Release files / finos_automation_sdk-0.6.1-py3-none-any.whl

Download URL finos_automation_sdk-0.6.1-py3-none-any.whl
Size 25.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5d94baf5e29b66a7f292ff97ebfe95f7a01034e5ff79b8c0d737e74ff5745afd
BLAKE2b-256 checksum
How to use checksums
a2c25e46f2e23e12273707a481312428a9f3bee525c8f3ab7f20f4f9bf987c10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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}

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page