{"id":38612936,"url":"https://github.com/cabify/n8n-nodes-aws-bedrock-assumerole","last_synced_at":"2026-01-20T17:00:59.235Z","repository":{"id":323902404,"uuid":"1095176596","full_name":"cabify/n8n-nodes-aws-bedrock-assumerole","owner":"cabify","description":"Custom AWS credentials node for n8n, allowing to assume a role [managed by soy-programador]","archived":false,"fork":false,"pushed_at":"2026-01-08T12:40:05.000Z","size":252,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-17T18:07:25.401Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cabify.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-12T17:35:37.000Z","updated_at":"2026-01-08T12:40:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cabify/n8n-nodes-aws-bedrock-assumerole","commit_stats":null,"previous_names":["cabify/n8n-nodes-aws-bedrock-assumerole"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cabify/n8n-nodes-aws-bedrock-assumerole","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cabify%2Fn8n-nodes-aws-bedrock-assumerole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cabify%2Fn8n-nodes-aws-bedrock-assumerole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cabify%2Fn8n-nodes-aws-bedrock-assumerole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cabify%2Fn8n-nodes-aws-bedrock-assumerole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cabify","download_url":"https://codeload.github.com/cabify/n8n-nodes-aws-bedrock-assumerole/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cabify%2Fn8n-nodes-aws-bedrock-assumerole/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-17T08:47:13.065Z","updated_at":"2026-01-20T17:00:59.197Z","avatar_url":"https://github.com/cabify.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# n8n-nodes-aws-bedrock-assumerole\n\nAn n8n community node for AWS Bedrock with AssumeRole authentication support.\n\n![n8n.io - Workflow Automation](https://raw.githubusercontent.com/n8n-io/n8n/master/assets/n8n-logo.png)\n\n## Features\n\n- 🔐 **AssumeRole Authentication**: Secure cross-account access using AWS STS AssumeRole\n- 🤖 **Multiple Claude Models**: Support for Claude 3.5 Sonnet, Claude 3 Opus, Sonnet, Haiku, and more\n- 🎨 **Image Generation**: Support for Amazon Nova Canvas and Titan Image Generator models\n- 🤝 **AI Agent Compatible**: Includes Chat Model sub-node for use with n8n AI Agent\n- ⚡ **Credential Caching**: Automatic caching of temporary credentials with expiration handling\n- 🛡️ **Error Handling**: Comprehensive error handling and logging\n- 🔄 **Batch Processing**: Process multiple items in a single workflow execution\n- 📊 **Usage Tracking**: Detailed usage information and response metadata\n\n## Available Nodes\n\nThis package includes **two nodes**:\n\n1. **AWS Bedrock (AssumeRole)** - Standalone node for direct AWS Bedrock API calls\n2. **AWS Bedrock Chat Model** - Chat Model sub-node for use with n8n AI Agent\n\n## Supported Models\n\nThis node uses AWS Bedrock inference profiles for optimal performance and availability:\n\n### Text/Chat Models (Claude)\n\n- **Claude 3.5 Sonnet v2** - `us.anthropic.claude-3-5-sonnet-20241022-v2:0` (default)\n- **Claude 3.5 Sonnet v1** - `us.anthropic.claude-3-5-sonnet-20240620-v1:0`\n- **Claude 3.5 Haiku** - `us.anthropic.claude-3-5-haiku-20241022-v1:0`\n- **Claude 3.7 Sonnet** - `us.anthropic.claude-3-7-sonnet-20250219-v1:0`\n- **Claude Sonnet 4** - `us.anthropic.claude-sonnet-4-20250514-v1:0`\n- **Claude Sonnet 4.5** - `us.anthropic.claude-sonnet-4-5-20250929-v1:0`\n- **Claude Haiku 4.5** - `us.anthropic.claude-haiku-4-5-20251001-v1:0`\n- **Claude Opus 4** - `us.anthropic.claude-opus-4-20250514-v1:0`\n- **Claude Opus 4.1** - `us.anthropic.claude-opus-4-1-20250805-v1:0`\n\n### Image Generation Models\n\n- **Amazon Nova Canvas v1** - `amazon.nova-canvas-v1:0` - State-of-the-art image generation\n- **Amazon Titan Image Generator v2** - `amazon.titan-image-generator-v2:0` - High-quality image generation with advanced controls\n## Installation\n\n### Option 1: Install from npm (Recommended)\n\n```bash\n# Install globally for n8n\nnpm install -g n8n-nodes-aws-bedrock-assumerole\n\n# Or install locally in your n8n custom nodes directory\ncd ~/.n8n/custom/\nnpm install n8n-nodes-aws-bedrock-assumerole\n```\n\n### Option 2: Install from source\n\n```bash\n# Clone the repository\ngit clone https://github.com/cabify/n8n-nodes-aws-bedrock-assumerole.git\ncd n8n-nodes-aws-bedrock-assumerole\n\n# Install dependencies\nnpm install\n\n# Build the project\nnpm run build\n\n# Link for local development\nnpm link\n\n# In your n8n installation directory\nnpm link n8n-nodes-aws-bedrock-assumerole\n```\n\n## Configuration\n\n### 1. AWS Credentials Setup\n\nYou have two options for providing AWS credentials:\n\n#### Option A: Environment Variables (Recommended)\nSet these environment variables on your n8n server:\n\n```bash\nexport AWS_ACCESS_KEY_ID=\"your-access-key-id\"\nexport AWS_SECRET_ACCESS_KEY=\"your-secret-access-key\"\nexport AWS_REGION=\"us-east-1\"\n```\n\n#### Option B: Credential Fields\nFill in the credential fields directly in the n8n UI (less secure).\n\n### 2. Create AWS AssumeRole Credential\n\n1. Go to **Credentials** in your n8n instance\n2. Click **Add Credential**\n3. Search for \"AWS Assume Role\"\n4. Configure the following:\n   - **Access Key ID**: Leave empty to use environment variable (recommended)\n   - **Secret Access Key**: Leave empty to use environment variable (recommended)\n   - **Role ARN to Assume**: `arn:aws:iam::\u003caccount-id\u003e:role/\u003crole-name\u003e`\n   - **AWS Region**: `us-east-1` (or your preferred region)\n   - **Session Duration**: `3600` (1 hour, adjust as needed)\n\n### 3. AWS IAM Setup\n\n#### Base Account Role/User Permissions\nThe base AWS credentials need the following permission:\n\n```json\n{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Effect\": \"Allow\",\n            \"Action\": \"sts:AssumeRole\",\n            \"Resource\": \"arn:aws:iam::\u003ctarget-account-id\u003e:role/\u003ctarget-role-name\u003e\"\n        }\n    ]\n}\n```\n\n#### Target Account Role\nThe role to be assumed needs:\n\n```json\n{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"bedrock:InvokeModel\"\n            ],\n            \"Resource\": [\n                \"arn:aws:bedrock:*::foundation-model/anthropic.*\"\n            ]\n        }\n    ]\n}\n```\n\nAnd the trust relationship:\n\n```json\n{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"AWS\": \"arn:aws:iam::\u003cbase-account-id\u003e:role/\u003cbase-role-name\u003e\"\n            },\n            \"Action\": \"sts:AssumeRole\"\n        }\n    ]\n}\n```\n\n### 4. Application Inference Profiles\n\nThis node supports AWS Bedrock Application Inference Profiles, allowing you to route traffic through specific profiles for cost and usage tracking.\n\n#### 4.1. Credential configuration\n\nIn the **AWS AssumeRole** credential, you can optionally configure:\n\n- **Application Inference Profile Account ID**: The AWS account ID where your application inference profiles live.\n- **Application Inference Profiles JSON**: A JSON object mapping Bedrock model IDs to application inference profile IDs.\n\nExample JSON:\n\n```json\n{\n  \"us.anthropic.claude-3-5-sonnet-20240620-v1:0\": \"hs4uvikaus5b\",\n  \"us.anthropic.claude-3-5-sonnet-20241022-v2:0\": \"0xumpou8xusv\",\n  \"us.anthropic.claude-3-5-haiku-20241022-v1:0\": \"abc123haiku\"\n}\n```\n\n- The **key** is the Bedrock model ID (for example, `us.anthropic.claude-3-5-sonnet-20241022-v2:0`).\n- The **value** is the application inference profile ID (for example, `0xumpou8xusv`), not the full ARN.\n\nThe node then builds the final ARN internally using:\n\n```text\narn:aws:bedrock:{region}:{account-id}:application-inference-profile/{profile-id}\n```\n\nIf the JSON is invalid, the node will fail with a clear error message pointing to the `Application Inference Profiles JSON` field.\n\n#### 4.2. Model dropdown behaviour\n\nThe **Model ID** dropdown in the node behaves as follows:\n\n- If **Application Inference Profiles JSON** is **empty or not set**:\n  - The dropdown shows all supported Claude models (the default static list).\n- If **Application Inference Profiles JSON** is **present and valid**:\n  - The dropdown shows **only the models present in that JSON**.\n  - Known model IDs are displayed with friendly names (for example, \"Claude 3.5 Sonnet v2\"), unknown ones are shown as their raw model ID.\n\nThis ensures that, when you configure specific models and profiles in the credential, users of the node can only select those models.\n\n#### 4.3. Backwards compatibility\n\nIf no application inference profile mapping is found for a selected model ID, the node will:\n\n1. Try the legacy single **Application Inference Profile ID** field (if configured).\n2. Otherwise, fall back to using the raw model ID directly (original behaviour).\n\n\n## Usage\n\n### Option 1: Using with AI Agent (Recommended for Conversational AI)\n\nThe **AWS Bedrock Chat Model** node is designed to work with n8n's AI Agent node, enabling conversational AI workflows with tool calling, memory, and more.\n\n#### Setup Steps:\n\n1. **Add an AI Agent node** to your workflow\n2. **Connect the AWS Bedrock Chat Model node** to the \"Chat Model\" input of the AI Agent\n3. **Select your credential** in the Chat Model node (the same AWS AssumeRole credential)\n4. **Choose your model** (e.g., Claude 3.5 Sonnet v2)\n5. **Add tools** (optional): Connect tool nodes like Vector Store, Calculator, HTTP Request, etc.\n6. **Add memory** (optional): Connect a memory node for conversation history\n\n#### Benefits of Using with AI Agent:\n\n- ✅ **Tool Calling**: The AI can use tools to fetch data, perform calculations, etc.\n- ✅ **Conversation Memory**: Maintain context across multiple interactions\n- ✅ **Structured Output**: Parse responses into structured data\n- ✅ **Multi-step Reasoning**: The agent can plan and execute complex tasks\n\n### Option 2: Direct API Calls (Standalone Node)\n\nFor simple, direct API calls without AI Agent features, use the **AWS Bedrock (AssumeRole)** node.\n\n#### Basic Workflow Example\n\n1. **Add the AWS Bedrock (AssumeRole) node** to your workflow\n2. **Select your credential** (created in step 2 above)\n3. **Configure the node**:\n   - **Model ID**: Choose from the dropdown (e.g., Claude 3.5 Sonnet)\n   - **Prompt**: Enter your prompt or use an expression to get it from previous nodes\n   - **Max Tokens**: Set the maximum response length (default: 1000)\n   - **Temperature**: Control randomness (0.0 = deterministic, 1.0 = very random)\n\n#### Example Prompt\n\n```\nAnalyze the following customer feedback and provide:\n1. Sentiment (positive/negative/neutral)\n2. Key themes\n3. Suggested actions\n\nCustomer feedback: \"The service was okay but the wait time was too long.\"\n```\n\n\n### Image Analysis Workflow (Text and Image input)\n\n**Note**: Image analysis is currently only available with the standalone **AWS Bedrock (AssumeRole)** node, not with the Chat Model sub-node.\n\nTo analyze an image together with a text prompt using Claude models that support vision capabilities:\n\n1. Add a **Form Trigger** (or any node that outputs binary data) with a file field, for example labeled `image_to_analize`.\n2. Connect that node to **AWS Bedrock (AssumeRole)**.\n3. Configure the Bedrock node:\n   - **Model ID**: Select any Claude model that supports image input (for example, Claude Sonnet 4).\n   - **Input Type**: Set to `Text and Image`.\n   - **Image Binary Property**: Set to the name of the binary field that contains the uploaded image. For a Form Trigger file field labeled `image_to_analize`, the binary key is also `image_to_analize`.\n   - **Prompt**: Provide the instruction you want to send together with the image, for example: `Describe what is written in this image.`\n4. Execute the workflow by submitting the form with an image file.\n\nYou can import the ready-to-use example workflow from `examples/image-analysis-workflow.json`.\n\n### Image Generation Workflow (Nova Canvas / Titan Image)\n\nGenerate images from text prompts using Amazon Nova Canvas or Titan Image Generator models:\n\n1. Add the **AWS Bedrock (AssumeRole)** node to your workflow.\n2. Configure the Bedrock node:\n   - **Model ID**: Select `Amazon Nova Canvas v1` or `Amazon Titan Image Generator v2`.\n   - **Prompt**: Describe the image you want to generate (e.g., \"A futuristic city at sunset with flying cars\").\n   - **Negative Prompt** (optional): Describe what NOT to include (e.g., \"blurry, low quality, text\").\n   - **Image Width/Height**: Choose the dimensions (512, 768, 1024, or 1280 pixels).\n   - **Image Quality**: Select `standard` or `premium`.\n   - **Number of Images**: Generate 1-4 images at once.\n   - **Seed** (optional): Set a specific seed for reproducible results (0 = random).\n   - **CFG Scale** (Titan Image only): Controls how closely the image follows the prompt (1-15).\n\n3. The node outputs binary image data that can be:\n   - Saved to disk using the **Write Binary File** node\n   - Uploaded to cloud storage (S3, Google Drive, etc.)\n   - Sent via email or messaging platforms\n   - Further processed in your workflow\n\n#### Image Generation Response Format\n\nFor image generation models, the node returns:\n\n```json\n{\n  \"modelId\": \"arn:aws:bedrock:us-east-1:123456789:application-inference-profile/abc123\",\n  \"configuredModelId\": \"amazon.nova-canvas-v1:0\",\n  \"prompt\": \"A futuristic city at sunset\",\n  \"imageIndex\": 0,\n  \"totalImages\": 1,\n  \"imageWidth\": 1024,\n  \"imageHeight\": 1024,\n  \"imageQuality\": \"standard\",\n  \"timestamp\": \"2026-01-08T10:00:00.000Z\"\n}\n```\n\nThe generated image is available in the `binary.data` property as a PNG file.\n\n### Image Editing Workflow (Inpainting, Outpainting, Variations, Background Removal)\n\nBoth Nova Canvas and Titan Image Generator support advanced image editing capabilities:\n\n#### Image Task Types\n\n| Task Type | Description | Required Fields |\n|-----------|-------------|-----------------|\n| **Text to Image** | Generate a new image from a text prompt | Prompt |\n| **Inpainting** | Modify areas inside a masked region | Source Image, Mask (prompt or image), Prompt |\n| **Outpainting** | Extend or modify areas outside a masked region | Source Image, Mask (prompt or image), Prompt |\n| **Image Variation** | Create variations of an existing image | Source Image, Prompt (optional) |\n| **Background Removal** | Remove the background (outputs transparent PNG) | Source Image |\n\n#### Inpainting Example\n\nReplace part of an image based on a text description of the area to modify:\n\n1. Add a node that provides an image (e.g., **Read Binary File**, **HTTP Request**, or **Form Trigger**).\n2. Add the **AWS Bedrock (AssumeRole)** node.\n3. Configure:\n   - **Model ID**: Select `Amazon Nova Canvas v1` or `Amazon Titan Image Generator v2`\n   - **Image Task Type**: Select `Inpainting (Edit Inside Mask)`\n   - **Source Image Binary Property**: `data` (or the name of your binary property)\n   - **Mask Prompt**: Describe the area to modify (e.g., \"the sky\", \"the person's shirt\")\n   - **Prompt**: Describe what to put in that area (e.g., \"a beautiful sunset sky\")\n   - **Negative Prompt** (optional): What to avoid\n\n#### Outpainting Example\n\nExtend an image beyond its original boundaries:\n\n1. Provide a source image.\n2. Configure:\n   - **Image Task Type**: Select `Outpainting (Edit Outside Mask)`\n   - **Mask Prompt**: Describe the area to preserve (e.g., \"the main subject\")\n   - **Prompt**: Describe what to generate in the extended area\n   - **Outpainting Mode**: `Default` (allows blending) or `Precise` (strict boundary)\n\n#### Image Variation Example\n\nCreate variations of an existing image:\n\n1. Provide a source image.\n2. Configure:\n   - **Image Task Type**: Select `Image Variation`\n   - **Similarity Strength**: 0.2 (more variation) to 1.0 (more similar to original)\n   - **Prompt** (optional): Guide the variation direction\n\n#### Background Removal Example\n\nRemove the background from an image (outputs transparent PNG):\n\n1. Provide a source image.\n2. Configure:\n   - **Image Task Type**: Select `Background Removal`\n   - No prompt needed - the model automatically detects and removes the background\n\n#### Mask Options\n\nFor Inpainting and Outpainting, you can specify the mask in two ways:\n\n1. **Mask Prompt** (recommended): A text description of the area to mask (e.g., \"the sky\", \"the person's face\")\n2. **Mask Image**: A binary black/white image where:\n   - **Black pixels** = area to modify\n   - **White pixels** = area to preserve\n\nIf both are provided, the Mask Image takes precedence.\n\n#### AWS Documentation\n\nFor more details on image editing capabilities, see:\n- [Amazon Nova Canvas User Guide](https://docs.aws.amazon.com/nova/latest/userguide/image-gen-access.html)\n- [Amazon Titan Image Generator User Guide](https://docs.aws.amazon.com/bedrock/latest/userguide/titan-image-models.html)\n\n#### Application Inference Profiles for Image Models\n\nConfigure image generation models in your credentials JSON just like Claude models:\n\n```json\n{\n  \"us.anthropic.claude-3-5-sonnet-20241022-v2:0\": \"0xumpou8xusv\",\n  \"amazon.nova-canvas-v1:0\": \"b3tcu2bezmae\",\n  \"amazon.titan-image-generator-v2:0\": \"12fut6sh2vgi\"\n}\n```\n\n### Response Format (Standalone Node - Text Models)\n\nThe **AWS Bedrock (AssumeRole)** standalone node returns a JSON object with:\n\n```json\n{\n  \"modelId\": \"us.anthropic.claude-3-5-sonnet-20241022-v2:0\",\n  \"prompt\": \"Your original prompt\",\n  \"response\": {\n    \"content\": [\n      {\n        \"text\": \"The AI response text\",\n        \"type\": \"text\"\n      }\n    ],\n    \"usage\": {\n      \"input_tokens\": 25,\n      \"output_tokens\": 150\n    }\n  },\n  \"usage\": {\n    \"input_tokens\": 25,\n    \"output_tokens\": 150\n  },\n  \"content\": \"The AI response text\",\n  \"timestamp\": \"2024-11-12T17:46:00.000Z\"\n}\n```\n\n## Comparison: Chat Model vs Standalone Node\n\n| Feature | AWS Bedrock Chat Model | AWS Bedrock (AssumeRole) |\n|---------|------------------------|--------------------------|\n| **Use Case** | AI Agent workflows | Direct API calls |\n| **Tool Calling** | ✅ Yes (via AI Agent) | ❌ No |\n| **Conversation Memory** | ✅ Yes (via AI Agent) | ❌ No |\n| **Image Analysis** | ❌ Not yet supported | ✅ Yes |\n| **Image Generation** | ❌ No | ✅ Yes (Nova Canvas, Titan Image) |\n| **Batch Processing** | ❌ No | ✅ Yes |\n| **Structured Output** | ✅ Yes (via AI Agent) | ⚠️ Manual parsing |\n| **Best For** | Conversational AI, agents with tools | Simple prompts, image analysis/generation, batch jobs |\n\n## Development\n\n### Prerequisites\n\n- Node.js 18+\n- npm or yarn\n- TypeScript\n\n### Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/cabify/n8n-nodes-aws-bedrock-assumerole.git\ncd n8n-nodes-aws-bedrock-assumerole\n\n# Install dependencies\nnpm install\n\n# Build the project\nnpm run build\n\n# Run linting\nnpm run lint\n\n# Run tests\nnpm test\n```\n\n### Project Structure\n\n```\nn8n-nodes-aws-bedrock-assumerole/\n├── credentials/\n│   └── AwsAssumeRole.credentials.ts    # AWS AssumeRole credential definition\n├── nodes/\n│   └── AwsBedrockAssumeRole.node.ts    # Main node implementation\n├── icons/\n│   ├── aws.svg                         # AWS credential icon\n│   └── bedrock.svg                     # Bedrock node icon\n├── dist/                               # Compiled JavaScript (generated)\n├── package.json                        # Package configuration\n├── tsconfig.json                       # TypeScript configuration\n├── .eslintrc.js                        # ESLint configuration\n├── .prettierrc                         # Prettier configuration\n└── README.md                           # This file\n```\n\n## Troubleshooting\n\n### Common Issues\n\n#### 1. \"Missing AWS base credentials\"\n- Ensure AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are set as environment variables\n- Or fill in the credential fields in the n8n UI\n\n#### 2. \"AssumeRole failed\"\n- Verify the Role ARN is correct\n- Check that the base credentials have `sts:AssumeRole` permission\n- Ensure the target role trusts the base account/role\n\n#### 3. \"Access Denied\" when invoking Bedrock\n- Verify the assumed role has `bedrock:InvokeModel` permission\n- Check that the model ID is available in your AWS region\n- Ensure Bedrock is enabled in your AWS account\n\n#### 4. Node not appearing in n8n\n- Restart n8n after installation\n- Check that the package is installed in the correct location\n- Verify the package.json n8n configuration is correct\n\n### Debug Logging\n\nThe node provides detailed console logging. Check your n8n logs for:\n- `[AWS Bedrock] Resolved credentials`\n- `[AWS Bedrock] AssumeRole successful`\n- `[AWS Bedrock] Model response received`\n## Developers\n\nThis project is developed and maintained by:\n\n- **[@fluty84](https://github.com/fluty84)** - Lead Developer \u0026 Business Automation\n- **[@cHiv0rz](https://github.com/cHiv0rz)** - Infrastructure Support\n\n## Development\n\n### Quick Start with Make\n\nThis project includes a Makefile for easy development and deployment:\n\n```bash\n# Show all available commands\nmake help\n\n# Development\nmake install      # Install dependencies\nmake build        # Build the project\nmake dev          # Build and start Docker for local testing\nmake clean        # Clean build artifacts\n\n# Docker\nmake docker-up    # Start Docker containers\nmake docker-down  # Stop Docker containers\nmake docker-logs  # Show Docker logs\n\n# Deployment\nmake publish      # Publish to npm (interactive)\nmake sync         # Sync repositories (GitHub + GitLab)\nmake release      # Full release: build + publish + sync\n```\n\n### Publishing a New Version\n\nThe `make publish` command provides an interactive workflow that handles everything:\n\n#### Step 1: Version Bump\nChoose the type of version bump:\n- **patch** (1.0.2 → 1.0.3) - Bug fixes\n- **minor** (1.0.2 → 1.1.0) - New features (backwards compatible)\n- **major** (1.0.2 → 2.0.0) - Breaking changes\n- **custom** - Specify version manually\n\n#### Step 2: Changelog Generation\nSelect the types of changes included:\n1. **Added** - New features\n2. **Changed** - Changes in existing functionality\n3. **Deprecated** - Soon-to-be removed features\n4. **Removed** - Removed features\n5. **Fixed** - Bug fixes\n6. **Security** - Security fixes\n\n#### Step 3: Changelog Entries\nEnter detailed changes for each selected section. The script will automatically:\n- Update `CHANGELOG.md` with proper formatting\n- Follow [Keep a Changelog](https://keepachangelog.com/) format\n- Add the current date\n- Insert the new entry at the top\n\n#### Step 4: Build \u0026 Publish\nThe script will:\n- Build the project (`npm run build`)\n- Publish to npm with public access\n- Commit changes to `package.json`, `package-lock.json`, and `CHANGELOG.md`\n- Create a git tag (e.g., `v1.0.2`)\n\n#### Example Workflow\n\n```bash\n# Start the publish process\nmake publish\n\n# Follow the prompts:\n# 1. Select version bump: 1 (patch)\n# 2. Select change types: 5 (Fixed)\n# 3. Enter changes:\n#    - Fixed custom SVG icons not displaying correctly\n#    - Removed unused code and imports\n# 4. Confirm publish: y\n\n# After publishing, sync repositories\nmake sync\n\n# Or do everything in one command:\nmake release\n```\n\n### Repository Sync\n\nThe project supports syncing to multiple repositories:\n- **GitHub**: https://github.com/cabify/n8n-nodes-aws-bedrock-assumerole\n- **GitLab**: https://gitlab.otters.xyz/platform/business-automation/n8n-nodes-aws-bedrock-assumerole\n\nThe `make sync` command will:\n- Push code to both GitHub and GitLab\n- Push all tags to both repositories\n- Verify you're on the main branch\n- Show current status before pushing\n\n### Manual Development\n\nIf you prefer not to use Make:\n\n```bash\n# Install dependencies\nnpm install\n\n# Build\nnpm run build\n\n# Start Docker for testing\ndocker-compose up -d\n\n# View logs\ndocker-compose logs -f n8n\n\n# Publish manually\nnpm version patch  # or minor, major\nnpm run build\nnpm publish --access public\ngit push \u0026\u0026 git push --tags\n```\n\n### Project Structure\n\n```\nn8n-bedrock-node/\n├── credentials/\n│   ├── AwsAssumeRole.credentials.ts  # Credential definition\n│   └── aws.svg                        # AWS icon\n├── nodes/\n│   ├── AwsBedrockAssumeRole.node.ts  # Main node implementation\n│   └── bedrock.svg                    # Bedrock icon\n├── icons/\n│   ├── aws.svg                        # Source AWS icon\n│   └── bedrock.svg                    # Source Bedrock icon\n├── dist/                              # Compiled output\n├── docker-compose.yml                 # Local development setup\n├── Makefile                           # Development commands\n├── publish-npm.sh                     # npm publish script\n├── sync-repos.sh                      # Repository sync script\n└── package.json                       # Package configuration\n```\n\n### Scripts\n\n- `npm run build` - Compile TypeScript and copy icons\n- `npm run copy-icons` - Copy icons to dist directories\n- `npm run lint` - Run ESLint (requires setup)\n- `npm test` - Run tests (if available)\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Support\n\n- 📧 Email: business-automation@cabify.com\n- 🐛 Issues: [GitHub Issues](https://github.com/cabify/n8n-nodes-aws-bedrock-assumerole/issues)\n- 📖 n8n Documentation: [n8n.io/docs](https://docs.n8n.io)\n\n## Acknowledgments\n\n- Built for the [n8n](https://n8n.io) workflow automation platform\n- Uses AWS SDK v3 for optimal performance\n- Inspired by the need for secure cross-account AWS Bedrock access\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcabify%2Fn8n-nodes-aws-bedrock-assumerole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcabify%2Fn8n-nodes-aws-bedrock-assumerole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcabify%2Fn8n-nodes-aws-bedrock-assumerole/lists"}