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
formal_sdk-1.0.47.tar.gz
(138.4 kB
view details)
Built Distribution
formal_sdk-1.0.47-py3-none-any.whl
(246.1 kB
view details)
File details
Details for the file formal_sdk-1.0.47.tar.gz
.
File metadata
- Download URL: formal_sdk-1.0.47.tar.gz
- Upload date:
- Size: 138.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1338c106e8654e29d5dac5200b8eb11013f2fda8406def66a7923753d6afef85 |
|
MD5 | 3a1b1d47f2b948e52ce21d71e4ad055c |
|
BLAKE2b-256 | 8a0c131bc59e3f25e8f0abdf010d4e93574c57aee6f5d3d167fd394b37674fd8 |
File details
Details for the file formal_sdk-1.0.47-py3-none-any.whl
.
File metadata
- Download URL: formal_sdk-1.0.47-py3-none-any.whl
- Upload date:
- Size: 246.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 171dd44ff59b33b059b9c48e521036e92ef9feaa66f7dcaf2186e02019f8b77b |
|
MD5 | d014fc193490cf74a1c1a63c28ada1a2 |
|
BLAKE2b-256 | eed24f05adb05c02910c7783a5886e1cc69ffa9dfc929dbe6646866e5e9af771 |