n8n-nodes-skyflow
v0.1.1
Published
n8n node for Skyflow data privacy operations including detokenization
Maintainers
Readme
n8n-nodes-skyflow
This is an n8n community node for Skyflow, a data privacy vault platform. It provides secure tokenization, detokenization, and text deidentification capabilities for sensitive data.
n8n is a workflow automation platform that allows you to connect various services and build powerful integrations.
Skyflow is a data privacy vault that helps you protect sensitive data through tokenization, encryption, and granular access controls.
Installation
Community Nodes (Recommended)
For n8n users, you can install this node directly from the n8n Community Nodes:
- Go to Settings > Community Nodes
- Select Install
- Enter
n8n-nodes-skyflowin Enter npm package name - Click Install
Manual Installation
To install the node manually:
npm install n8n-nodes-skyflowFor local development and testing:
# Clone the repository
git clone https://github.com/SkyflowFoundry/Skyflowforn8n.git
cd Skyflowforn8n
# Install dependencies
npm install
# Build the node
npm run build
# Link the package locally
npm link
# In your n8n installation directory
npm link n8n-nodes-skyflowPrerequisites
Before using this node, you'll need:
- Skyflow Account: Sign up at Skyflow
- Skyflow Vault: Create a vault in the Skyflow Studio
- API Key: Generate an API key with appropriate permissions
- Vault Details: Note your Vault ID and Cluster ID from the vault URL
Configuration
Setting Up Credentials
- In n8n, go to Credentials > New
- Search for and select Skyflow API
- Fill in the required fields:
- API Key: Your Skyflow API key
- Vault ID: The ID of your Skyflow vault
- Cluster ID: The cluster identifier from your vault URL (e.g.,
my-clusterfromhttps://my-cluster.vault.skyflowapis.com) - Environment: Select the appropriate environment (Production, Development, Sandbox, or Stage)
- Log Level: Set logging level (ERROR recommended for production)
- Click Create to save the credentials
Finding Your Vault Information
- Vault ID: Found in Skyflow Studio under vault settings
- Cluster ID: Extract from your vault URL:
https://{clusterId}.vault.skyflowapis.com - API Key: Generate in Skyflow Studio under API Keys section
Operations
Deidentify Text
Automatically detects and replaces sensitive data in text with tokens using Skyflow's AI-powered entity detection.
Parameters:
- Text (required): The text containing sensitive data to deidentify
- Entities: Types of entities to detect (Credit Card, SSN, Phone Number, Name, Date of Birth, Driver License)
- Leave empty to detect all supported entity types
- Options:
- Token Type: How to format replacement tokens
- Vault Token: Store in vault and return token (recommended)
- Entity Only: Replace with entity type (e.g.,
[SSN]) - Entity Counter: Replace with entity type and counter (e.g.,
[SSN_1])
- Token Type: How to format replacement tokens
Example Input:
My SSN is 123-45-6789 and my card is 4111 1111 1111 1111.Example Output:
{
"processedText": "My SSN is [SSN_1] and my card is [CREDIT_CARD_1].",
"entities": [
{
"token": "SSN_1",
"value": "123-45-6789",
"entity_type": "SSN",
"location": {...}
},
{
"token": "CREDIT_CARD_1",
"value": "4111 1111 1111 1111",
"entity_type": "CREDIT_CARD",
"location": {...}
}
],
"wordCount": 13
}Detokenize
Converts tokens back to their original values.
Single Token Mode
Detokenize one token at a time.
Parameters:
- Token (required): The token to detokenize
- Redaction Type: How to redact the returned data
- Plain Text: Return unredacted values
- Masked: Return partially masked values
- Redacted: Return fully redacted values
- Default: Use default redaction settings
Example:
{
"token": "9738-1683-0486-1480",
"redactionType": "PLAIN_TEXT"
}Response:
{
"detokenizedFields": [
{
"token": "9738-1683-0486-1480",
"value": "4111111111111115",
"type": "STRING"
}
]
}Batch Tokens Mode
Detokenize multiple tokens in a single request (more efficient).
Parameters:
- Tokens (required): JSON array of tokens to detokenize
- Redaction Type: How to redact the returned data
Example:
{
"tokens": ["token1", "token2", "token3"],
"redactionType": "PLAIN_TEXT"
}Response:
{
"detokenizedFields": [
{
"token": "token1",
"value": "value1",
"type": "STRING"
},
{
"token": "token2",
"value": "value2",
"type": "STRING"
},
{
"token": "token3",
"value": "value3",
"type": "STRING"
}
]
}Advanced Options
Continue On Error
- When enabled, the operation continues processing all tokens even if some fail
- Failed tokens are included in the
errorsarray in the response - When disabled, the operation stops at the first error
Download URL
- When enabled, generates download URLs for file tokens
- Useful when working with file-type data stored in Skyflow
Example with Errors:
{
"detokenizedFields": [
{
"token": "valid-token",
"value": "value",
"type": "STRING"
}
],
"errors": [
{
"token": "invalid-token",
"error": "Token Not Found"
}
]
}Reidentify Text
Converts tokens in text back to their original or redacted values.
Parameters:
- Text (required): Text containing tokens to reidentify (e.g., from deidentify operation)
- Redaction Type: How to display the reidentified values
- Plain Text: Return original unredacted values
- Masked: Return masked values (show last 4 characters)
- Redacted: Return fully redacted values
Example Input:
My SSN is [SSN_1] and my card is [CREDIT_CARD_1].Example Output (Masked):
{
"processedText": "My SSN is ***-**-6789 and my card is ****-****-****-1111."
}Example Output (Plain Text):
{
"processedText": "My SSN is 123-45-6789 and my card is 4111 1111 1111 1111."
}Tokenize
Tokenizes sensitive data and returns secure tokens for safe reference.
Parameters:
- Table Name (required): The vault table where data will be inserted
- Records (required): JSON object or array of objects containing the data
- Single record:
{"card_number": "4111111111111111", "name": "John Doe"} - Multiple records:
[{"field1": "value1"}, {"field2": "value2"}]
- Single record:
- Options:
- Return Tokens (default: true): Whether to return tokens for the inserted data
- Continue On Error (default: false): Continue if some records fail
- Upsert Column: Column name for upsert (update if exists, insert if not)
Example Input:
{
"tableName": "cards",
"records": {
"card_number": "4111111111111111",
"cardholder_name": "John Doe",
"expiry": "12/25"
}
}Example Output:
{
"insertedFields": [
{
"skyflowId": "a8f3ed5d-55eb-4f32-bf7e-2dbf4b9d9097",
"card_number": "5484-7829-1702-9110",
"cardholder_name": "b2308e2a-c1f5-469b-97b7-1f193159399b",
"expiry": "c7f89a1d-33ed-4821-ab12-5e4d8f1a2b3c"
}
]
}Batch Insert Example:
{
"tableName": "users",
"records": [
{"email": "[email protected]", "ssn": "123-45-6789"},
{"email": "[email protected]", "ssn": "987-65-4321"}
]
}Usage Examples
Example 1: Deidentify Sensitive Text
- Add the Skyflow node to your workflow
- Select Deidentify Text operation
- Enter text containing sensitive data
- Optionally select specific entity types to detect
- Execute the workflow to get tokenized text
Example 2: Tokenize Customer Data
- Add the Skyflow node to your workflow
- Select Tokenize operation
- Enter table name (e.g.,
customers) - Enter records as JSON:
{"email": "[email protected]", "ssn": "123-45-6789"} - Enable Return Tokens to get tokens back
- Execute the workflow
Example 3: Detokenize for Display
- Add the Skyflow node to your workflow
- Select Detokenize operation
- Choose Batch Tokens input mode
- Enter tokens in JSON array format:
["token1", "token2", "token3"] - Select Masked redaction type to show last 4 digits
- Execute the workflow
Example 4: End-to-End Data Protection Workflow
[Webhook] → [Skyflow: Deidentify Text] → [Store in DB] → [Skyflow: Reidentify Text] → [Send Email]Use expressions to pass data between nodes:
- Pass processed text:
{{ $json.processedText }} - Pass tokens:
{{ JSON.stringify($json.entities) }}
Error Handling
The node provides detailed error messages for common issues:
- Invalid token format: Validates that tokens are not empty
- Invalid JSON: For batch mode, ensures the input is a valid JSON array
- API errors: Wraps Skyflow API errors with helpful context
- Empty arrays: Validates that at least one token is provided
All errors include the item index for debugging workflows with multiple inputs.
Compatibility
- n8n version: Requires n8n v1.0.0 or later
- Node.js: Requires Node.js v18 or later
- Skyflow SDK: Uses skyflow-node v2.0.2
Development
Building
npm run buildDevelopment Mode (Watch)
npm run devLinting
npm run lint
npm run lint:fixCode Formatting
npm run formatResources
Support
If you encounter issues or have questions:
- Check the Skyflow Documentation
- Open an issue on GitHub
- Contact Skyflow Support at [email protected]
License
Version History
0.1.0 (Initial Release)
- Deidentify Text: Automatically detect and replace sensitive data in text
- Detokenize: Convert tokens back to values with single and batch modes
- Reidentify Text: Convert tokens in text back with redaction options
- Tokenize: Protect sensitive data and return tokens
- API Key authentication
- Support for multiple redaction types
- Advanced options (Continue On Error, Download URL, Upsert)
- Comprehensive error handling
