Repository navigation
Expand file tree
/
Copy pathclient-operations.ts
More file actions
106 lines (90 loc) · 3.55 KB
/
Copy pathclient-operations.ts
File metadata and controls
106 lines (90 loc) · 3.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import {
Credentials,
DeleteRequest,
Env,
LogLevel,
Skyflow,
VaultConfig,
SkyflowConfig,
SkyflowError,
DeleteResponse
} from 'skyflow-node';
/**
* Skyflow Secure Data Deletion Example
*
* This example demonstrates how to:
* 1. Configure Bearer Token credentials
* 2. Set up vault configuration
* 3. Create a delete request
* 4. Handle response and errors
*/
async function performSecureDataDeletion() {
try {
// Step 1: Configure Bearer Token Credentials
const credentials: Credentials = {
token: '<your_bearer_token>', // Bearer token
};
// Step 2: Configure Vault
const primaryVaultConfig: VaultConfig = {
vaultId: '<your_vault_id1>', // Primary vault
clusterId: '<your_cluster_id1>', // Cluster ID from your vault URL
env: Env.PROD, // Deployment environment (PROD by default)
credentials: credentials, // Authentication method
};
// Step 3: Configure Skyflow Client
const skyflowConfig: SkyflowConfig = {
vaultConfigs: [primaryVaultConfig],
logLevel: LogLevel.ERROR // Logging verbosity
};
// Initialize Skyflow Client
const skyflowClient : Skyflow = new Skyflow(skyflowConfig);
// Step 4: Add Secondary Vault Configuration
const secondaryVaultConfig: VaultConfig = {
vaultId: '<your_vault_id2>', // Secondary vault
clusterId: '<your_cluster_id2>', // Cluster ID from your vault URL
env: Env.PROD, // Deployment environment
// If credentials aren't specified, Skyflow credentials will be used
};
// Add secondary vault config on the fly
skyflowClient.addVaultConfig(secondaryVaultConfig);
// Step 5: Update Vault Configuration
const updatedVaultConfig: VaultConfig = {
vaultId: '<your_vault_id2>', // Vault ID and cluster ID are unique
clusterId: '<your_cluster_id2>', // Cluster ID from your vault URL
credentials: credentials, // Update credentials
};
// Update vault config on the fly
skyflowClient.updateVaultConfig(updatedVaultConfig);
// Step 6: Prepare Delete Request
const deleteIds: Array<string> = [
'skyflow_id1',
'skyflow_id2',
];
const tableName: string = '<your_table_name>'; // Replace with actual table name
const deleteRequest: DeleteRequest = new DeleteRequest(
tableName,
deleteIds,
);
// Step 7: Perform Secure Deletion on Secondary Vault
const response: DeleteResponse = await skyflowClient
.vault('<your_vault_id2>') // Specify vault ID
.delete(deleteRequest);
// Handle Successful Response
console.log('Deletion successful:', response);
// Step 8: Remove Secondary Vault Configuration
skyflowClient.removeVaultConfig('<your_vault_id1>'); // Remove vault configuration
} catch (error) {
// Comprehensive Error Handling
if (error instanceof SkyflowError) {
console.error('Skyflow Specific Error:', {
code: error.error?.http_code,
message: error.message,
details: error.error?.details
});
} else {
console.error('Unexpected Error:', error);
}
}
}
// Invoke the secure data deletion function
performSecureDataDeletion();