Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/internal-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- "*.yml"
- "*.md"
- "skyflow/utils/_version.py"
- "samples/*"
- "samples/**"
branches:
- release/*

Expand All @@ -20,4 +20,4 @@ jobs:
ref: ${{ github.ref_name }}
is-internal: true
secrets: inherit


33 changes: 21 additions & 12 deletions samples/service_account/scoped_token_generation_example.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,36 @@
from skyflow.service_account import generate_bearer_token, generate_bearer_token_from_creds, is_expired

file_path = 'CREDENTIALS_FILE_PATH'
import json
from skyflow.service_account import (
generate_bearer_token,
generate_bearer_token_from_creds,
is_expired,
)

file_path = '<CREDENTIALS_FILE_PATH>'
bearer_token = ''

skyflow_credentials_string = '{"clientID":"<YOUR_CLIENT_ID>","clientName":"<YOUR_CLIENT_NAME>","tokenURI":"<YOUR_TOKEN_URI>","keyID":"<YOUR_KEY_ID>","privateKey":"<YOUR_PRIVATE_KEY>"}'


# Generate bearer token from credentials file path
options = {
"ctx": "<CONTEXT_ID>"
skyflow_credentials = {
'clientID': '<YOUR_CLIENT_ID>',
'clientName': '<YOUR_CLIENT_NAME>',
'tokenURI': '<YOUR_TOKEN_URI>',
'keyID': '<YOUR_KEY_ID>',
'privateKey': '<YOUR_PRIVATE_KEY>',
}
credentials_string = json.dumps(skyflow_credentials)
# Generate bearer token from credentials file path

options = {'role_ids': ['ROLE_ID1', 'ROLE_ID2']}
if is_expired(bearer_token):
bearer_token, token_type = generate_bearer_token(
"<YOUR_CREDENTIALS_FILE_PATH>", options
'<YOUR_CREDENTIALS_FILE_PATH>', options
)

print(bearer_token, token_type)


# Generate bearer token from credentials string
if is_expired(bearer_token):
bearer_token, token_type = generate_bearer_token_from_creds(skyflow_credentials_string, options)
bearer_token, token_type = generate_bearer_token_from_creds(
credentials_string, options
)

print(bearer_token, token_type)

29 changes: 20 additions & 9 deletions samples/service_account/signed_token_generation_example.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,38 @@
from skyflow.service_account import is_expired, generate_signed_data_tokens, generate_signed_data_tokens_from_creds
import json
from skyflow.service_account import (
is_expired,
generate_signed_data_tokens,
generate_signed_data_tokens_from_creds,
)

file_path = 'CREDENTIALS_FILE_PATH'
bearer_token = ''

skyflow_credentials_string = '{"clientID":"<YOUR_CLIENT_ID>","clientName":"<YOUR_CLIENT_NAME>","tokenURI":"<YOUR_TOKEN_URI>","keyID":"<YOUR_KEY_ID>","privateKey":"<YOUR_PRIVATE_KEY>"}'

skyflow_credentials = {
'clientID': '<YOUR_CLIENT_ID>',
'clientName': '<YOUR_CLIENT_NAME>',
'tokenURI': '<YOUR_TOKEN_URI>',
'keyID': '<YOUR_KEY_ID>',
'privateKey': '<YOUR_PRIVATE_KEY>',
}
credentials_string = json.dumps(skyflow_credentials)


options = {
"ctx": "CONTEX_ID",
"data_tokens": ["DATA_TOKEN1", "DATA_TOKEN2"],
"time_to_live": 90 # in seconds
'ctx': 'CONTEX_ID',
'data_tokens': ['DATA_TOKEN1', 'DATA_TOKEN2'],
'time_to_live': 90, # in seconds
}

# Generate bearer token from credentials file path
if is_expired(bearer_token):
actual_token, signed_token = generate_signed_data_tokens(
"<YOUR_CREDENTIALS_FILE_PATH>", options
'<YOUR_CREDENTIALS_FILE_PATH>', options
)


# Generate bearer token from credentials string
if is_expired(bearer_token):
actual_token, signed_token = generate_signed_data_tokens_from_creds(
"<CREDENTIALS_STRING>", options
)
credentials_string, options
)
23 changes: 16 additions & 7 deletions samples/service_account/token_generation_example.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,32 @@
from skyflow.service_account import generate_bearer_token, generate_bearer_token_from_creds, is_expired
import json
from skyflow.service_account import (
generate_bearer_token,
generate_bearer_token_from_creds,
is_expired,
)

file_path = 'CREDENTIALS_FILE_PATH'
bearer_token = ''

skyflow_credentials_string = '{"clientID":"<YOUR_CLIENT_ID>","clientName":"<YOUR_CLIENT_NAME>","tokenURI":"<YOUR_TOKEN_URI>","keyID":"<YOUR_KEY_ID>","privateKey":"<YOUR_PRIVATE_KEY>"}'
skyflow_credentials = {
'clientID': '<YOUR_CLIENT_ID>',
'clientName': '<YOUR_CLIENT_NAME>',
'tokenURI': '<YOUR_TOKEN_URI>',
'keyID': '<YOUR_KEY_ID>',
'privateKey': '<YOUR_PRIVATE_KEY>',
}
credentials_string = json.dumps(skyflow_credentials)


# Generate bearer token from credentials file path
if is_expired(bearer_token):
bearer_token, token_type = generate_bearer_token(
"<YOUR_CREDENTIALS_FILE_PATH>"
)
bearer_token, token_type = generate_bearer_token('<YOUR_CREDENTIALS_FILE_PATH>')

print(bearer_token, token_type)


# Generate bearer token from credentials string
if is_expired(bearer_token):
bearer_token, token_type = generate_bearer_token_from_creds(skyflow_credentials_string)
bearer_token, token_type = generate_bearer_token_from_creds(credentials_string)

print(bearer_token, token_type)

29 changes: 20 additions & 9 deletions samples/service_account/token_generation_with_context_example.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,37 @@
from skyflow.service_account import generate_bearer_token, generate_bearer_token_from_creds, is_expired
import json
from skyflow.service_account import (
generate_bearer_token,
generate_bearer_token_from_creds,
is_expired,
)

file_path = 'CREDENTIALS_FILE_PATH'
bearer_token = ''

skyflow_credentials_string = '{"clientID":"<YOUR_CLIENT_ID>","clientName":"<YOUR_CLIENT_NAME>","tokenURI":"<YOUR_TOKEN_URI>","keyID":"<YOUR_KEY_ID>","privateKey":"<YOUR_PRIVATE_KEY>"}'

skyflow_credentials = {
'clientID': '<YOUR_CLIENT_ID>',
'clientName': '<YOUR_CLIENT_NAME>',
'tokenURI': '<YOUR_TOKEN_URI>',
'keyID': '<YOUR_KEY_ID>',
'privateKey': '<YOUR_PRIVATE_KEY>',
}
credentials_string = json.dumps(skyflow_credentials)

# Generate bearer token from credentials file path
options = {
"role_ids": ["ROLE_ID1", "ROLE_ID2"]
}
options = {'ctx': '<CONTEXT_ID>'}

if is_expired(bearer_token):
bearer_token, token_type = generate_bearer_token(
"<YOUR_CREDENTIALS_FILE_PATH>", options
'<YOUR_CREDENTIALS_FILE_PATH>', options
)

print(bearer_token, token_type)


# Generate bearer token from credentials string
if is_expired(bearer_token):
bearer_token, token_type = generate_bearer_token_from_creds(skyflow_credentials_string, options)
bearer_token, token_type = generate_bearer_token_from_creds(
credentials_string, options
)

print(bearer_token, token_type)

55 changes: 33 additions & 22 deletions samples/vault_api/client_operations.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,36 @@
import json
from skyflow import Skyflow, LogLevel
from skyflow import Env
from skyflow.vault.data import DeleteRequest

# To generate Bearer Token from credentials string.
skyflow_credentials_string = '{"clientID":"<YOUR_CLIENT_ID>","clientName":"<YOUR_CLIENT_NAME>","tokenURI":"<YOUR_TOKEN_URI>","keyID":"<YOUR_KEY_ID>","privateKey":"<YOUR_PRIVATE_KEY>"}'
skyflow_credentials = {
'clientID': '<YOUR_CLIENT_ID>',
'clientName': '<YOUR_CLIENT_NAME>',
'tokenURI': '<YOUR_TOKEN_URI>',
'keyID': '<YOUR_KEY_ID>',
'privateKey': '<YOUR_PRIVATE_KEY>',
}
credentials_string = json.dumps(skyflow_credentials)

# please pass one of api_key, token, credentials_string & path as credentials
credentials = {
"token": "<BEARER_TOKEN>"
'token': '<BEARER_TOKEN>',
#'credentials_string': credentials_string
}


skyflow_client = (
Skyflow.builder()
.add_vault_config({
"vault_id": "<VAULT_ID1>", # primary vault
"cluster_id": "<CLUSTER_ID1>", # ID from your vault URL Eg https://{clusterId}.vault.skyflowapis.com
"env": Env.PROD, # Env by default it is set to PROD
"credentials": credentials # individual credentials
})
.set_log_level(LogLevel.ERROR) # set log level by default it is set to ERROR
.add_vault_config(
{
'vault_id': '<VAULT_ID1>', # primary vault
'cluster_id': '<CLUSTER_ID1>', # ID from your vault URL Eg https://{clusterId}.vault.skyflowapis.com
'env': Env.PROD, # Env by default it is set to PROD
'credentials': credentials, # individual credentials
}
)
.set_log_level(LogLevel.ERROR) # set log level by default it is set to ERROR
.build()
)

Expand All @@ -28,32 +39,32 @@

skyflow_client.add_vault_config(
{
"vault_id": "VAULT_ID2", # secondary vault
"cluster_id": "CLUSTER_ID2", # ID from your vault URL Eg https://{clusterId}.vault.skyflowapis.com
"env": Env.PROD, # Env by default it is set to PROD
'vault_id': 'VAULT_ID2', # secondary vault
'cluster_id': 'CLUSTER_ID2', # ID from your vault URL Eg https://{clusterId}.vault.skyflowapis.com
'env': Env.PROD, # Env by default it is set to PROD
# if you don't specify individual credentials, skyflow credentials will be used
}
)


skyflow_client.update_vault_config({
"vault_id": "VAULT_ID2",
"cluster_id": "CLUSTER_ID2",
"credentials": credentials, # update credentials
})
skyflow_client.update_vault_config(
{
'vault_id': 'VAULT_ID2',
'cluster_id': 'CLUSTER_ID2',
'credentials': credentials, # update credentials
}
)


# perform operations

delete_request = DeleteRequest(
table='<TABLE_NAME>',
ids = ["77e093f8-3ace-4295-8683-bb6745d6178e", "bf5989cc-79e8-4b2f-ad71-cb20b0a76091"]
table = '<TABLE_NAME>',
ids = ['<SKYFLOW_ID1>', '<SKYFLOW_ID2>']
)

# perform delete call if you don't specify vault() it will return the first valid vault
response = skyflow_client.vault('VAULT_ID2').delete(delete_request)

# remove vault on the fly
skyflow_client.remove_vault_config("VAULT_ID")


skyflow_client.remove_vault_config('VAULT_ID')
62 changes: 35 additions & 27 deletions samples/vault_api/credentials_options.py
Original file line number Diff line number Diff line change
@@ -1,31 +1,45 @@
import json
from skyflow import Skyflow, LogLevel
from skyflow import Env
from skyflow.vault.data import DeleteRequest

skyflow_credentials_string = '{"clientID":"<YOUR_CLIENT_ID>","clientName":"<YOUR_CLIENT_NAME>","tokenURI":"<YOUR_TOKEN_URI>","keyID":"<YOUR_KEY_ID>","privateKey":"<YOUR_PRIVATE_KEY>"}'
skyflow_credentials = {
'clientID': '<YOUR_CLIENT_ID>',
'clientName': '<YOUR_CLIENT_NAME>',
'tokenURI': '<YOUR_TOKEN_URI>',
'keyID': '<YOUR_KEY_ID>',
'privateKey': '<YOUR_PRIVATE_KEY>',
}
credentials_string = json.dumps(skyflow_credentials)

credentials = {
"token": "BEARER_TOKEN", # bearer token
# api_key: "API_KEY", //API_KEY
# path: "PATH", //path to credentials file
# credentials_string: "CREDENTIAL_STRING", // credentials as string
'token': 'BEARER_TOKEN', # bearer token
# api_key: 'API_KEY', # API_KEY
# path: 'PATH', # path to credentials file
# credentials_string: credentials_string, # credentials as string
}

skyflow_client = (
Skyflow.builder()
.add_vault_config({
"vault_id": "<VAULT_ID1>", # primary vault
"cluster_id": "<CLUSTER_ID1>", # ID from your vault URL Eg https://{clusterId}.vault.skyflowapis.com
"env": Env.PROD, # Env by default it is set to PROD
})
.add_vault_config({
"vault_id": "<VAULT_ID2>",
"cluster_id": "<CLUSTER_ID2>", # ID from your vault URL Eg https://{clusterId}.vault.skyflowapis.com
"env": Env.PROD, # Env by default it is set to PROD
"credentials": credentials,
})
.add_skyflow_credentials(credentials) # skyflow credentials will be used if no individual credentials are passed
.set_log_level(LogLevel.ERROR) # set log level by default it is set to ERROR
.add_vault_config(
{
'vault_id': '<VAULT_ID1>', # primary vault
'cluster_id': '<CLUSTER_ID1>', # ID from your vault URL Eg https://{clusterId}.vault.skyflowapis.com
'env': Env.PROD, # Env by default it is set to PROD
}
)
.add_vault_config(
{
'vault_id': '<VAULT_ID2>',
'cluster_id': '<CLUSTER_ID2>', # ID from your vault URL Eg https://{clusterId}.vault.skyflowapis.com
'env': Env.PROD, # Env by default it is set to PROD
'credentials': credentials,
}
)
.add_skyflow_credentials(
credentials
) # skyflow credentials will be used if no individual credentials are passed
.set_log_level(LogLevel.ERROR) # set log level by default it is set to ERROR
.build()
)

Expand All @@ -37,10 +51,7 @@

# perform operations

primary_delete_request = DeleteRequest(
table='<TABLE_NAME>',
ids = primary_delete_ids
)
primary_delete_request = DeleteRequest(table='<TABLE_NAME>', ids=primary_delete_ids)

# VAULT_ID1 will use credentials if you don't specify individual credentials at config level
response = skyflow_client.vault('VAULT_ID2').delete(primary_delete_request)
Expand All @@ -52,10 +63,7 @@
'SKYFLOW_ID3',
]

secondary_delete_request = DeleteRequest(
table = 'TABLE_NAME',
ids = secondary_delete_ids
)
secondary_delete_request = DeleteRequest(table='TABLE_NAME', ids=secondary_delete_ids)

# VAULT_ID2 will use individual credentials at config level
response = skyflow_client.vault('VAULT_ID2').delete(primary_delete_request)
response = skyflow_client.vault('VAULT_ID2').delete(primary_delete_request)
Loading
Loading