Formal SDK
Project description
Formal Admin Python SDK
This is the Python SDK for the Formal Admin API.
Installing
pip install formal-sdk
Example Use
Create and Get a Native Role
import os
import formal_sdk
if __name__ == '__main__':
# Import data types for the requests
# example: from formal_sdk.gen.admin.v1.client_name_pb2 import methodNameRequest
# for NativeUserClient it will be native_user_pb2
# the client_name_pb2 contains the request and response class
# for example: CreateNativeUserRequest for CreateNativeUser method
from formal_sdk.gen.admin.v1.native_user_pb2 import CreateNativeUserRequest
# Initialize formal client
api_key = os.environ.get('API_KEY')
formal_client = formal_sdk.Client(api_key)
# Create Native Role
data_store_id = ""
native_user_id = ""
native_user_secret = ""
use_as_default = False
createdRole = formal_client.NativeUserClient.CreateNativeUser(CreateNativeUserRequest(
data_store_id=data_store_id,
native_user_id=native_user_id,
native_user_secret=native_user_secret,
use_as_default=use_as_default)
)
# Get Native Role
from formal_sdk.gen.admin.v1.native_user_pb2 import GetNativeUserRequest
# NOTE: inline import intended for examples to see the import pattern, follow PEP 8 recommendation to import on your code
previousRole = formal_client.NativeUserClient.GetNativeUser(
GetNativeUserRequest(data_store_id=data_store_id, native_user_id=native_user_id)
)
print(f'data_store_id: {previousRole.native_user.datastore_id}')
print(f'native_role_id: {previousRole.native_user.native_user_id}')
print(f'native_role_secret: {previousRole.native_user.native_user_secret}')
print(f'use_as_default: {previousRole.native_user.use_as_default}')
# Get sidecar tls certificate and private key
from formal_sdk.gen.admin.v1.sidecar_pb2 import GetSidecarTlsCertificateByIdRequest
# NOTE: inline import intended for examples to see the import pattern, follow PEP 8 recommendation to import on your code
sidecar_id = ""
secret = formal_client.SidecarClient.GetSidecarTlsCertificateById(GetSidecarTlsCertificateByIdRequest(id=sidecar_id))
print(f'secret: {secret.secret}')
# Empty request parameter example
from formal_sdk.gen.admin.v1.identities_pb2 import GetUsersRequest
# NOTE: inline import intended for examples to see the import pattern, follow PEP 8 recommendation to import on your code
user_client = formal_client.UserClient
print(user_client.GetUsers(GetUsersRequest())) # empty param need to pass the request object without any param
print(user_client.GetUsers(GetUsersRequest()).users[0].id)
import os
import formal_sdk
from formal_sdk.gen.admin.v1 import inventory_pb2 as inventory
if __name__ == '__main__':
api_key = os.environ.get('API_KEY')
new_client = formal_sdk.Client(api_key).InventoryClient
data_store_id = ""
path = ""
column_dict = {
"path": path,
"name": "column",
"data_type": "string"
}
# Create Inventory Object
create_inventory_object_request = inventory.CreateInventoryObjectRequest(
datastore_id=data_store_id,
object_type="column",
column=column_dict,
)
new_client.CreateInventoryObject(create_inventory_object_request)
# Get Inventory Object
get_inventory_object_request = inventory.GetInventoryObjectRequest(
datastore_id=data_store_id,
path=path
)
inventory_column = new_client.GetInventoryObject(get_inventory_object_request)
print(f'datastore_id: {inventory_column.column.datastore_id}')
print(f'path: {inventory_column.column.path}')
print(f'name: {inventory_column.column.name}')
print(f'data_type: {inventory_column.column.data_type}')
# Create and Get Inventory Tag
create_inventory_tag_request = inventory.CreateInventoryTagRequest(name="tag_name")
create_inventory_tag_response = new_client.CreateInventoryTag(create_inventory_tag_request)
print(f'tag_id: {create_inventory_tag_response.tag.id}')
# Get all Inventory Tags
inventory_tags = new_client.GetInventoryTags(inventory.GetInventoryTagsRequest()) # empty param
for tag in inventory_tags.tags:
print(f'tag_id: {tag.id}')
print(f'tag_name: {tag.name}')
print(f'created_at: {tag.created_at}')
# Delete Inventory Tag
new_client.DeleteInventoryTag(inventory.DeleteInventoryTagRequest(id=tag.id))
Data References
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 formal_sdk-1.0.48.tar.gz.
File metadata
- Download URL: formal_sdk-1.0.48.tar.gz
- Upload date:
- Size: 138.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14c18667b92575fbca7a7efaaf82bb2b09f026f3a307fba703c9e83432b8823e
|
|
| MD5 |
f4799c9a36267550a31dabb44b9f6558
|
|
| BLAKE2b-256 |
f9023ba392f674b8f6c91309b4725b9b7550b9fb940f949c5800013952e6ae0e
|
Provenance
The following attestation bundles were made for formal_sdk-1.0.48.tar.gz:
Publisher:
sdk-python-pypi-deploy.yml on formalco/monorepo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
formal_sdk-1.0.48.tar.gz -
Subject digest:
14c18667b92575fbca7a7efaaf82bb2b09f026f3a307fba703c9e83432b8823e - Sigstore transparency entry: 163963576
- Sigstore integration time:
-
Permalink:
formalco/monorepo@404dfd9f8c84a9813f4c79846222ec82709e7d17 -
Branch / Tag:
refs/tags/python-sdk-1.0.48 - Owner: https://github.com/formalco
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
sdk-python-pypi-deploy.yml@404dfd9f8c84a9813f4c79846222ec82709e7d17 -
Trigger Event:
push
-
Statement type:
File details
Details for the file formal_sdk-1.0.48-py3-none-any.whl.
File metadata
- Download URL: formal_sdk-1.0.48-py3-none-any.whl
- Upload date:
- Size: 246.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fbb93065ab36cb468f37cfb3f51b725df20bbf5ff2ab2659fbb4beeb159748e
|
|
| MD5 |
9c077abc82d3106b8c69695aa03ff4ac
|
|
| BLAKE2b-256 |
7c4e8ccf495388955334e2f22de1799c09da2c126d18b1fde711502284a3fd15
|
Provenance
The following attestation bundles were made for formal_sdk-1.0.48-py3-none-any.whl:
Publisher:
sdk-python-pypi-deploy.yml on formalco/monorepo
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
formal_sdk-1.0.48-py3-none-any.whl -
Subject digest:
5fbb93065ab36cb468f37cfb3f51b725df20bbf5ff2ab2659fbb4beeb159748e - Sigstore transparency entry: 163963577
- Sigstore integration time:
-
Permalink:
formalco/monorepo@404dfd9f8c84a9813f4c79846222ec82709e7d17 -
Branch / Tag:
refs/tags/python-sdk-1.0.48 - Owner: https://github.com/formalco
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
sdk-python-pypi-deploy.yml@404dfd9f8c84a9813f4c79846222ec82709e7d17 -
Trigger Event:
push
-
Statement type: