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.443.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| agilicus-1.443.0.tar.gz | 1.6 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agilicus-1.443.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.6 MB
Release files / agilicus-1.443.0.tar.gz
| Download URL | agilicus-1.443.0.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9a096e6d3128e713ee1ea15c0358699b5184b60bd41286cc81eaa7bba7570b7d
|
|
BLAKE2b-256 checksum How to use checksums |
09e14efe31249e8c10ea0f38a96bb492f37f9067f6a1016abb642dd635ebeb49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.5.1 CPython/3.12.14 Linux/6.17.8-061708-generic
|
Release files / agilicus-1.443.0-py3-none-any.whl
| Download URL | agilicus-1.443.0-py3-none-any.whl |
|---|---|
| Size | 7.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ce72fda301c80e9053633a4af420c495a3d1a90832c75e16f610f2f4259ca2a
|
|
BLAKE2b-256 checksum How to use checksums |
9cec1aa863669ac26c6b6dc310cf7b69cf2a58b158a5e278c8d075f166aeca53
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.5.1 CPython/3.12.14 Linux/6.17.8-061708-generic
|
Security for agilicus 1.443.0
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.