n8n-nodes-fusionauth
v1.0.0
Published
A comprehensive n8n community node for FusionAuth identity and access management providing 12 resources and 80+ operations for user management, applications, tenants, groups, registrations, identity providers, consents, forms, lambdas, webhooks, and audit
Maintainers
Readme
n8n-nodes-fusionauth
[Velocity BPA Licensing Notice]
This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).
Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.
For licensing information, visit https://velobpa.com/licensing or contact [email protected].
A comprehensive n8n community node for FusionAuth, the self-hosted identity and access management platform. This node enables workflow automation for user management, applications, tenants, groups, consents, authentication operations, and much more.
Features
- 12 Resource Types: User, Application, Tenant, Group, Registration, Identity Provider, Consent, Form, Form Field, Lambda, Webhook, Audit Log
- 80+ Operations: Comprehensive CRUD operations plus specialized actions for each resource
- Webhook Trigger: Real-time event handling with HMAC signature verification
- Multi-Tenant Support: Full tenant scoping for all operations
- API Key Authentication: Secure authentication with optional tenant headers
- Comprehensive Error Handling: Detailed error messages from FusionAuth's response format
Installation
Community Nodes (Recommended)
- Open your n8n instance
- Go to Settings > Community Nodes
- Click Install a community node
- Enter
n8n-nodes-fusionauth - Click Install
Manual Installation
# Navigate to your n8n installation directory
cd ~/.n8n
# Create custom nodes directory if it doesn't exist
mkdir -p custom
# Install the package
npm install n8n-nodes-fusionauthDevelopment Installation
# Clone or extract the package
cd n8n-nodes-fusionauth
# Install dependencies
npm install
# Build the project
npm run build
# Link to n8n custom directory
mkdir -p ~/.n8n/custom
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-fusionauth
# Restart n8nCredentials Setup
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| Instance URL | String | Yes | Your FusionAuth instance URL (e.g., https://your-instance.fusionauth.io) |
| API Key | Password | Yes | FusionAuth API key created in the admin UI |
| Tenant ID | String | No | Default tenant ID for multi-tenant setups |
Creating an API Key
- Log in to your FusionAuth admin console
- Navigate to Settings > API Keys
- Click Add to create a new API key
- Configure appropriate permissions for your use case
- Copy the generated API key
Resources & Operations
User
| Operation | Description | |-----------|-------------| | Create | Create a new user | | Get | Get user by ID | | Get by Email | Get user by email address | | Get by Username | Get user by username | | Get All | Search and list users | | Update | Update user properties | | Patch | Partial update user | | Delete | Hard delete user | | Deactivate | Soft delete/deactivate user | | Reactivate | Reactivate deactivated user | | Bulk Delete | Delete multiple users | | Import | Bulk import users | | Change Password | Change user password | | Forgot Password | Start forgot password flow | | Verify Email | Send verification email | | Get Two-Factor Recovery Codes | Get 2FA recovery codes | | Generate Two-Factor Recovery Codes | Generate new recovery codes | | Enable Two-Factor | Enable 2FA method | | Disable Two-Factor | Disable 2FA | | Send Two-Factor Code | Send 2FA code | | Get Recent Logins | Get user's recent logins | | Get Registrations | Get user's app registrations | | Get Refresh Tokens | List user's refresh tokens | | Revoke Refresh Tokens | Revoke refresh tokens | | Get User Actions | Get actions on user | | Get User Comments | Get user comments | | Add User Comment | Add comment to user | | Get Consents | Get user consents | | Update Consents | Update user consents |
Application
| Operation | Description | |-----------|-------------| | Create | Create application | | Get | Get application by ID | | Get All | List all applications | | Update | Update application settings | | Patch | Partial update application | | Delete | Remove application | | Get OAuth Configuration | Get OAuth config | | Get Roles | List application roles | | Create Role | Create application role | | Update Role | Update role | | Delete Role | Remove role |
Tenant
| Operation | Description | |-----------|-------------| | Create | Create tenant | | Get | Get tenant by ID | | Get All | List all tenants | | Update | Update tenant settings | | Patch | Partial update tenant | | Delete | Remove tenant |
Group
| Operation | Description | |-----------|-------------| | Create | Create group | | Get | Get group by ID | | Get All | List all groups | | Update | Update group | | Delete | Remove group | | Add Members | Add users to group | | Remove Members | Remove users from group | | Get Members | List group members |
Registration
| Operation | Description | |-----------|-------------| | Create | Register user to application | | Get | Get registration by user and application ID | | Update | Update registration | | Patch | Partial update registration | | Delete | Remove registration | | Verify | Verify registration |
Identity Provider
| Operation | Description | |-----------|-------------| | Create | Create identity provider | | Get | Get IdP by ID | | Get All | List all identity providers | | Update | Update IdP settings | | Delete | Remove identity provider | | Lookup | Lookup user by IdP link | | Link | Link user to IdP | | Unlink | Unlink user from IdP |
Supported Identity Provider Types:
- Apple, Epic Games, External JWT, Facebook, Google, HYPR
- LinkedIn, Nintendo, OpenID Connect, SAMLv2, SAMLv2 IdP Initiated
- Sony, Steam, Twitch, Twitter, Xbox
Consent
| Operation | Description | |-----------|-------------| | Create | Create consent definition | | Get | Get consent by ID | | Get All | List all consents | | Update | Update consent | | Delete | Remove consent | | Get User Consents | Get user's consent status | | Grant User Consent | Grant consent for user | | Revoke User Consent | Revoke user's consent |
Form
| Operation | Description | |-----------|-------------| | Create | Create form | | Get | Get form by ID | | Get All | List all forms | | Update | Update form | | Delete | Remove form |
Form Field
| Operation | Description | |-----------|-------------| | Create | Create form field | | Get | Get form field by ID | | Get All | List all form fields | | Update | Update form field | | Delete | Remove form field |
Lambda
| Operation | Description | |-----------|-------------| | Create | Create lambda function | | Get | Get lambda by ID | | Get All | List all lambdas | | Update | Update lambda | | Delete | Remove lambda |
Supported Lambda Types:
- JWT Populate, OpenID Reconcile, SAMLv2 Reconcile/Populate
- Apple/Facebook/Google/Twitter Reconcile
- External JWT Reconcile, LDAP Connector Reconcile
- SCIM Server Group/User Request/Response Converters
- Self Service Registration Validation
- Client Credentials JWT Populate
Webhook
| Operation | Description | |-----------|-------------| | Create | Create webhook | | Get | Get webhook by ID | | Get All | List all webhooks | | Update | Update webhook | | Delete | Remove webhook | | Test | Test webhook delivery |
Audit Log
| Operation | Description | |-----------|-------------| | Get | Get audit log by ID | | Get All | Search audit logs | | Export | Export audit logs |
Trigger Node
The FusionAuth Trigger node listens for webhook events from FusionAuth.
Supported Events
User Events:
- user.create, user.create.complete, user.update, user.update.complete
- user.deactivate, user.reactivate, user.delete, user.delete.complete
- user.bulk.create, user.action, user.email.update, user.email.verified
- user.identity-provider.link, user.identity-provider.unlink
- user.login.success, user.login.failed, user.login.new-device, user.login.suspicious
- user.password.breach, user.password.reset.send/start/success, user.password.update
- user.registration.create/update/delete (with .complete variants), user.registration.verified
- user.two-factor.method.add, user.two-factor.method.remove
JWT Events:
- jwt.public-key.update, jwt.refresh, jwt.refresh-token.revoke
Group Events:
- group.create, group.update, group.delete (with .complete variants)
- group.member.add, group.member.remove, group.member.update (with .complete variants)
Other Events:
- kickstart.success, audit-log.create
Webhook Configuration
- Create a new workflow with the FusionAuth Trigger node
- Activate the workflow to get the webhook URL
- In FusionAuth Admin UI, go to Settings > Webhooks
- Create a new webhook pointing to your n8n webhook URL
- Select the events you want to receive
- Optionally configure HMAC signing for security
Usage Examples
Create a User with Registration
// Using the FusionAuth node
// Resource: User
// Operation: Create
{
"email": "[email protected]",
"password": "SecurePassword123!",
"firstName": "John",
"lastName": "Doe",
"registrations": [{
"applicationId": "your-app-id",
"roles": ["user"]
}]
}Search Users
// Resource: User
// Operation: Get All
// Use filters:
// - Query String: "email:*@example.com"
// - Sort By: "email"
// - Sort Order: "asc"Bulk Import Users
// Resource: User
// Operation: Import
// Users JSON:
{
"users": [
{
"email": "[email protected]",
"password": "password1"
},
{
"email": "[email protected]",
"password": "password2"
}
]
}Error Handling
The node handles FusionAuth's error response format:
{
"fieldErrors": {
"user.email": [{
"code": "[duplicate]user.email",
"message": "A User with email already exists."
}]
},
"generalErrors": [{
"code": "[invalid]",
"message": "Invalid request."
}]
}Errors are parsed and returned as readable messages in n8n.
Security Best Practices
- Use API Keys with Minimum Permissions: Create API keys with only the permissions needed for your workflows
- Enable Webhook Signatures: Use HMAC signing for webhook verification
- Use Tenant Scoping: Scope API keys to specific tenants when possible
- Rotate API Keys Regularly: Follow your organization's security policies
- Use Environment Variables: Store sensitive credentials as n8n environment variables
Development
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Lint
npm run lint
# Run tests
npm test
# Test with coverage
npm run test:coverageAuthor
Velocity BPA
- Website: velobpa.com
- GitHub: Velocity-BPA
Licensing
This n8n community node is licensed under the Business Source License 1.1.
Free Use
Permitted for personal, educational, research, and internal business use.
Commercial Use
Use of this node within any SaaS, PaaS, hosted platform, managed service, or paid automation offering requires a commercial license.
For licensing inquiries: [email protected]
See LICENSE, COMMERCIAL_LICENSE.md, and LICENSING_FAQ.md for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Support
- Documentation: FusionAuth API Docs
- Issues: GitHub Issues
- n8n Community: n8n Community Forum
Acknowledgments
- FusionAuth for the excellent identity platform
- n8n for the powerful workflow automation platform
