Skip to main content

Agilicus SDK (Python)

The Agilicus Platform API. is defined using OpenAPI 3.0, and may be used from any language. This allows configuration of our Zero-Trust Network Access cloud native platform using REST. You can see the API specification online.

This package provides a Python SDK, class library interfaces for use in accessing individual collections. In addition it provides a command-line-interface (CLI) for interactive use.

Read the class-library documentation online

Samples shows various examples of this code in use.

Generally you may install this from pypi as:

pip install --upgrade agilicus

You may wish to add bash completion by adding this to your ~/.bashrc:

eval "$(_AGILICUS_CLI_COMPLETE=source agilicus-cli)"

Example: List users

The below python code will show the same output as the CLI command: agilicus-cli --issuer https://auth.dbt.agilicus.cloud list-users

import agilicus
import argparse
import sys

scopes = agilicus.scopes.DEFAULT_SCOPES

parser = argparse.ArgumentParser(description="update-user")
parser.add_argument("--auth-doc", type=str)
parser.add_argument("--issuer", type=str)
parser.add_argument("--email", type=str)
parser.add_argument("--disable-user", type=bool, default=None)
args = parser.parse_args()

if not args.auth_doc and not args.issuer:
    print("error: specify either an --auth-doc or --issuer")
    sys.exit(1)

if not args.email:
    print("error: specify an email to search for a user")
    sys.exit(1)

api = agilicus.GetClient(
    agilicus_scopes=scopes, issuer=args.issuer, authentication_document=args.auth_doc
)

users = api.users.list_users(org_id=api.default_org_id, email=args.email)
if len(users.users) != 1:
    print(f"error: failed to find user with email: {args.email}")
    sys.exit(1)

user = users.users[0]

if args.disable_user is not None:
    user.enabled = args.disable_user

result = api.users.replace_user(
    user.id, user=user, _check_input_type=False, _host_index=0
)
print(result)

Using an existing access token

GetClient obtains a token itself (browser login or an authentication document). If you already hold an access token, for example from a browserless OIDC flow, pass it as token and the credential prompt is skipped:

api = agilicus.GetClient(
    token=access_token, api_url="https://api.agilicus.com"
)

The token is used as-is; api.default_org_id is read from its org claim.

Usage metrics

All services are available on the returned helper. The CLI's get-usage-metrics command is built on the same endpoint:

usage = api.metrics.list_usage_metrics(
    org_id=api.default_org_id,
    dt_from="now-30d",
    bucket_size="P1D",
    breakdown_by=["org_id", "resource_type"],
)
for bucket in usage.data:
    print(bucket.time, bucket.org_id, bucket.resource_type, bucket.access_count)

# Page through every row; `limit` is a total and pages are fetched for you.
rows = api.metrics.list_usage_metrics.auto_paging_iter(
    org_id=api.default_org_id,
    bucket_size="P1D",
    breakdown_by=["org_id", "resource_type"],
    page_size=500,
).all()

The helper exposes both naming conventions: api.metrics (the historical GetClient style) and api.metrics_api (the CLI ApiHelper style), so code can move between the two without changes. The same applies to every service.

Metadata

Release files for agilicus 1.444.7

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

Source distribution (sdist)

Source distribution for agilicus 1.444.7
File Size Uploaded Provenance
agilicus-1.444.7.tar.gz 1.6 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for agilicus 1.444.7
File Interpreter ABI Platform
agilicus-1.444.7-py3-none-any.whl Python 3 none any Details

Total release size: 8.6 MB

Release files / agilicus-1.444.7.tar.gz

Download URL agilicus-1.444.7.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
f167f9feb8e2f21397de40bfb6e98faec4360a71c35d096af1a678def205d979
BLAKE2b-256 checksum
How to use checksums
8b19ea1cc4b6262b2c1ae1eb17b93f67b8093331fde6ecfc77548e37ac20c822
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.12.15 Linux/6.17.8-061708-generic

Release files / agilicus-1.444.7-py3-none-any.whl

Download URL agilicus-1.444.7-py3-none-any.whl
Size 7.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
a249e1140e89d7edd1f9a7c84af799dfe925ba5e45d042b1a0f458a72b7fbbe1
BLAKE2b-256 checksum
How to use checksums
dfdd5fa45cc3c3e1f2595cdff5f30bbbd47112636efaf34d01f0437271c3c0ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.5.1 CPython/3.12.15 Linux/6.17.8-061708-generic

Security for agilicus 1.444.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.444.7 This release

2 release files No provenance

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