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.4
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.444.4.tar.gz | 1.6 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agilicus-1.444.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.6 MB
Release files / agilicus-1.444.4.tar.gz
| Download URL | agilicus-1.444.4.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1db2c96f11a18e8f7d6c587a70114c5a2eaf0cf68e559ac59e02095d422f2c75
|
|
BLAKE2b-256 checksum How to use checksums |
63327433ad24da4d5b4b9bfe44cd39ff5d32d13e00263054449b67178d28f07e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.5.1 CPython/3.12.15 Linux/6.12.94+
|
Release files / agilicus-1.444.4-py3-none-any.whl
| Download URL | agilicus-1.444.4-py3-none-any.whl |
|---|---|
| Size | 7.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8dc5d4dba6c3b589d9dae8cadb56da7a3e66546c3ebe1dd4fd09420230e5439
|
|
BLAKE2b-256 checksum How to use checksums |
f42fceed704152e54c393d317d6126e65fe4d764ecce29764ddb90e9316319d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.5.1 CPython/3.12.15 Linux/6.12.94+
|
Security for agilicus 1.444.4
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.