|
18 | 18 | credentials_string = json.dumps(skyflow_credentials) |
19 | 19 |
|
20 | 20 |
|
21 | | -options = { |
22 | | - 'ctx': 'CONTEXT_ID', |
23 | | - 'data_tokens': ['DATA_TOKEN1', 'DATA_TOKEN2'], |
24 | | - 'time_to_live': 90, # in seconds |
25 | | -} |
| 21 | +# Approach 1: Signed data tokens with string context |
| 22 | +def get_signed_tokens_with_string_context(): |
| 23 | + options = { |
| 24 | + 'ctx': 'user_12345', |
| 25 | + 'data_tokens': ['DATA_TOKEN1', 'DATA_TOKEN2'], |
| 26 | + 'time_to_live': 90, # in seconds |
| 27 | + } |
| 28 | + try: |
| 29 | + data_token, signed_data_token = generate_signed_data_tokens(file_path, options) |
| 30 | + return data_token, signed_data_token |
| 31 | + except Exception as e: |
| 32 | + print(f'Error: {str(e)}') |
26 | 33 |
|
27 | | -def get_signed_bearer_token_from_file_path(): |
28 | | - # Generate signed bearer token from credentials file path. |
29 | | - global bearer_token |
30 | 34 |
|
| 35 | +# Approach 2: Signed data tokens with JSON object context (dict) |
| 36 | +# Each key maps to a Skyflow CEL policy variable under request.context.* |
| 37 | +# For example: request.context.role == "analyst" and request.context.department == "research" |
| 38 | +def get_signed_tokens_with_object_context(): |
| 39 | + options = { |
| 40 | + 'ctx': { |
| 41 | + 'role': 'analyst', |
| 42 | + 'department': 'research', |
| 43 | + 'user_id': 'user_67890', |
| 44 | + }, |
| 45 | + 'data_tokens': ['DATA_TOKEN1', 'DATA_TOKEN2'], |
| 46 | + 'time_to_live': 90, |
| 47 | + } |
31 | 48 | try: |
32 | | - if not is_expired(bearer_token): |
33 | | - return bearer_token |
34 | | - else: |
35 | | - data_token, signed_data_token = generate_signed_data_tokens(file_path, options) |
36 | | - return data_token, signed_data_token |
37 | | - |
| 49 | + data_token, signed_data_token = generate_signed_data_tokens(file_path, options) |
| 50 | + return data_token, signed_data_token |
38 | 51 | except Exception as e: |
39 | | - print(f'Error generating token from file path: {str(e)}') |
| 52 | + print(f'Error: {str(e)}') |
40 | 53 |
|
41 | 54 |
|
42 | | -def get_signed_bearer_token_from_credentials_string(): |
43 | | - # Generate signed bearer token from credentials string. |
44 | | - global bearer_token |
45 | | - |
| 55 | +# Approach 3: Signed data tokens from credentials string |
| 56 | +def get_signed_tokens_from_credentials_string(): |
| 57 | + options = { |
| 58 | + 'ctx': 'user_12345', |
| 59 | + 'data_tokens': ['DATA_TOKEN1', 'DATA_TOKEN2'], |
| 60 | + 'time_to_live': 90, |
| 61 | + } |
46 | 62 | try: |
47 | | - if not is_expired(bearer_token): |
48 | | - return bearer_token |
49 | | - else: |
50 | | - data_token, signed_data_token = generate_signed_data_tokens_from_creds(credentials_string, options) |
51 | | - return data_token, signed_data_token |
52 | | - |
| 63 | + data_token, signed_data_token = generate_signed_data_tokens_from_creds(credentials_string, options) |
| 64 | + return data_token, signed_data_token |
53 | 65 | except Exception as e: |
54 | | - print(f'Error generating token from credentials string: {str(e)}') |
55 | | - |
| 66 | + print(f'Error: {str(e)}') |
56 | 67 |
|
57 | | -print(get_signed_bearer_token_from_file_path()) |
58 | 68 |
|
59 | | -print(get_signed_bearer_token_from_credentials_string()) |
| 69 | +print("String context:", get_signed_tokens_with_string_context()) |
| 70 | +print("Object context:", get_signed_tokens_with_object_context()) |
| 71 | +print("Creds string:", get_signed_tokens_from_credentials_string()) |
0 commit comments