Lock-Nessie provides a client and server pair for authentication to Nessie with OpenID.
Project description
Lock Nessie
Quickly and simply add OpenID auth to your Iceberg Nessie stack
Server
This component facilitiates your OpenID Oauth2 login flow.
Envars:
Required for all providers:
LOCKNESSIE_ENVIRONMENT: 'production' for released code, 'development' for local developmentLOCKNESSIE_REDIRECT_BASE: The base URL for redirectsLOCKNESSIE_OPENID_ISSUER: The issuer of the OpenID client, one of:microsoft# entrakeycloak
LOCKNESSIE_OPENID_CLIENT_ID: The client ID of the OpenID clientLOCKNESSIE_OPENID_CLIENT_SECRET: The client secret of the OpenID clientLOCKNESSIE_SECRET_PROVIDER: The provider where the secret is stored, one of:aws_secrets_managerhachicorp_vault
Required for microsoft:
LOCKNESSIE_OPENID_TENANT: The tenant of the OpenID client (required for Microsoft)
Required for keycloak:
LOCKNESSIE_OPENID_REALM: The realm of the OpenID client (required for Keycloak)LOCKNESSIE_OPENID_URL: The URL of the OpenID provider
Required for aws:
note: lock-nessie uses the standard boto3 credentials order. For lock-nessie to leverage AWS Secrets Manager, credentials must be provided that have:
"secretsmanager:CreateSecret", // Create a new secret
"secretsmanager:GetSecretValue", // Read the secret value
"secretsmanager:DescribeSecret", // Read secret metadata
"secretsmanager:PutSecretValue" // Write/update secret value
Optional:
LOCKNESSIE_MAX_AGE: The maximum age of the cookie in seconds (default: 31536000 - 1 year). Note this is not the same as the token age for the OpenID auth.
Client:
Required for all providers:
LOCKNESSIE_SECRET_PROVIDER: The provider where the secret is stored, one of:aws_secrets_managerhachicorp_vault
LOCKNESSIE_SECRET_IDENTIFIER: The resource id for the secret, like an arn in aws.
Optional:
LOCKNESSIE_CACHE_PATH: Where to store the cached OpenID token.LOCKNESSIE_SERVER_URL: If provided, the client will attempt to pop open a login window when the token has expired.
Client integrations
PyIceberg
from locknessie.client.pyiceberg import load_catalog
catalog = load_catalog("nessie", uri="http://nessie:19120/iceberg/main/")
note: There is a bunch of auth bits in pyiceberg that indicate better integration may be possible, but it is non-obvious how a web-based login flow, refresh token etc would work in practice. TODO see if this can be refined.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file locknessie-0.0.1.tar.gz.
File metadata
- Download URL: locknessie-0.0.1.tar.gz
- Upload date:
- Size: 390.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6e7dbdfa3991a00d53c7a0ab20e9b7e99e299df7f32d009ac8b294c5916d65e
|
|
| MD5 |
0f01d9371a271deb951b41249c7fd0b5
|
|
| BLAKE2b-256 |
f8c5b42faa0cb150b6e0ddb8e2d6a1a03b3a84cbb514f8bb99fda398b49ccef6
|
Provenance
The following attestation bundles were made for locknessie-0.0.1.tar.gz:
Publisher:
publish.yml on pirate-baby/lock-nessie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
locknessie-0.0.1.tar.gz -
Subject digest:
c6e7dbdfa3991a00d53c7a0ab20e9b7e99e299df7f32d009ac8b294c5916d65e - Sigstore transparency entry: 212427469
- Sigstore integration time:
-
Permalink:
pirate-baby/lock-nessie@e037b9a246416280295baf82c1e57f187c241cf0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pirate-baby
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e037b9a246416280295baf82c1e57f187c241cf0 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file locknessie-0.0.1-py3-none-any.whl.
File metadata
- Download URL: locknessie-0.0.1-py3-none-any.whl
- Upload date:
- Size: 367.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdc72bfab612d1fc2342aa01991f94c855d60b35e1a16130ab4694a87acf1633
|
|
| MD5 |
1a902502d791b85c0a14dc9f3929f670
|
|
| BLAKE2b-256 |
d7b9652068c7021f7767acbb3c96944e3d3b6c770be0bc5414d768c7483c21b7
|
Provenance
The following attestation bundles were made for locknessie-0.0.1-py3-none-any.whl:
Publisher:
publish.yml on pirate-baby/lock-nessie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
locknessie-0.0.1-py3-none-any.whl -
Subject digest:
fdc72bfab612d1fc2342aa01991f94c855d60b35e1a16130ab4694a87acf1633 - Sigstore transparency entry: 212427474
- Sigstore integration time:
-
Permalink:
pirate-baby/lock-nessie@e037b9a246416280295baf82c1e57f187c241cf0 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/pirate-baby
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@e037b9a246416280295baf82c1e57f187c241cf0 -
Trigger Event:
workflow_dispatch
-
Statement type: