{"_id":"serverless-plugin-lambda-deployments","_rev":"4-547372b76f397de01cdcd2b3b1b7eb91","name":"serverless-plugin-lambda-deployments","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"serverless-plugin-lambda-deployments","version":"0.1.0","keywords":["aws","lambda","serverless","alias","deployment"],"author":{"name":"Ariel Santos","email":"ariel.santos@draftea.com"},"license":"ISC","_id":"serverless-plugin-lambda-deployments@0.1.0","maintainers":[{"name":"draftea-infra","email":"infra@draftea.com"}],"homepage":"https://github.com/Drafteame/serverless-plugin-lambda-deployments#readme","bugs":{"url":"https://github.com/Drafteame/serverless-plugin-lambda-deployments/issues"},"dist":{"shasum":"8a143ddf55b485486f9081fd29b5b5cf49ba6c7b","tarball":"https://registry.npmjs.org/serverless-plugin-lambda-deployments/-/serverless-plugin-lambda-deployments-0.1.0.tgz","fileCount":27,"integrity":"sha512-hxvqOBSOMfL95407Emvhz+urG7DOOAEh0kk6sA2Hu4Ngp/zAAN91IHQd14HOszzOP0a/OoLj9g9qkLcJJwReTg==","signatures":[{"sig":"MEUCID4v9KN+Nw4rzFExMctxvw4OP9sx2vVCq2/2tWbRpyV2AiEA+qorO95AbbU576e+dUrar+xxLCulg7D25kSt1ioPqXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49956},"main":"serverless-plugin-lambda-deployments.js","engines":{"node":">=18.0.0"},"gitHead":"0b17640f8fedaa6a598f12e707cf831492923ad1","scripts":{"lint":"standard","test":"npm run lint && NODE_ENV=test ./node_modules/mocha/bin/mocha.js $(find ./ -name '*.test.js' -not -path '.*/node_modules/*')","watch":"NODE_ENV=test ./node_modules/mocha/bin/mocha.js -w $(find ./ -name '*.test.js' -not -path '*/node_modules/*')"},"_npmUser":{"name":"draftea-infra","email":"infra@draftea.com"},"standard":{"globals":["describe","context","it","before","after","beforeEach","afterEach"]},"repository":{"url":"git+https://github.com/Drafteame/serverless-plugin-lambda-deployments.git","type":"git"},"_npmVersion":"10.8.2","description":"Serverless Framework v3 plugin for Lambda alias management","directories":{},"_nodeVersion":"20.20.2","dependencies":{"flat":"^6.0.1","lodash":"^4.18.1","omit-empty":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.5.0","mocha":"^11.7.5","standard":"*","serverless":"^3.40.0","get-installed-path":"^4.0.8"},"peerDependencies":{"serverless":">= 1.26.0"},"_npmOperationalInternal":{"tmp":"tmp/serverless-plugin-lambda-deployments_0.1.0_1778676735294_0.10207645948081234","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"serverless-plugin-lambda-deployments","version":"0.1.1","keywords":["aws","lambda","serverless","alias","deployment"],"author":{"name":"Ariel Santos","email":"ariel.santos@draftea.com"},"license":"ISC","_id":"serverless-plugin-lambda-deployments@0.1.1","maintainers":[{"name":"draftea-infra","email":"infra@draftea.com"}],"homepage":"https://github.com/Drafteame/serverless-plugin-lambda-deployments#readme","bugs":{"url":"https://github.com/Drafteame/serverless-plugin-lambda-deployments/issues"},"dist":{"shasum":"573a9bed589821b7303478412cea2128886a578b","tarball":"https://registry.npmjs.org/serverless-plugin-lambda-deployments/-/serverless-plugin-lambda-deployments-0.1.1.tgz","fileCount":27,"integrity":"sha512-hBVBuwR2TlpQZLQRGSr1+1+S9UZzXD4+zwS47aUYoJEAbpZGZlDn1UBfi7bYaxquDjAZo2wwumwFIK7bujexOg==","signatures":[{"sig":"MEUCIGpigMmQ8/ahu7PWJWoWXkm7Jvha+UbL0wCChdLPbgbPAiEA+YTvZJnLqJ5310BrVIQ00qn/ofqJ0xvlAMsHxsj72Xc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/serverless-plugin-lambda-deployments@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49975},"main":"serverless-plugin-lambda-deployments.js","engines":{"node":">=18.0.0"},"gitHead":"e6cc490d831e450529ef1973a8443b67f6e5a295","scripts":{"lint":"standard","test":"npm run lint && NODE_ENV=test ./node_modules/mocha/bin/mocha.js $(find ./ -name '*.test.js' -not -path '.*/node_modules/*')","watch":"NODE_ENV=test ./node_modules/mocha/bin/mocha.js -w $(find ./ -name '*.test.js' -not -path '*/node_modules/*')"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:227caab0-a957-4a41-aa0a-78c87cd5c1df"}},"standard":{"globals":["describe","context","it","before","after","beforeEach","afterEach"]},"repository":{"url":"git+https://github.com/Drafteame/serverless-plugin-lambda-deployments.git","type":"git"},"_npmVersion":"11.11.0","description":"Serverless Framework v3 plugin for Lambda alias management","directories":{},"_nodeVersion":"24.14.1","dependencies":{"flat":"^6.0.1","lodash":"^4.18.1","omit-empty":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.5.0","mocha":"^11.7.5","standard":"*","serverless":"^3.40.0","get-installed-path":"^4.0.8"},"peerDependencies":{"serverless":">= 1.26.0"},"_npmOperationalInternal":{"tmp":"tmp/serverless-plugin-lambda-deployments_0.1.1_1778678697578_0.8419497319937546","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"serverless-plugin-lambda-deployments","version":"0.2.0","keywords":["aws","lambda","serverless","alias","deployment"],"author":{"name":"Ariel Santos","email":"ariel.santos@draftea.com"},"license":"ISC","_id":"serverless-plugin-lambda-deployments@0.2.0","maintainers":[{"name":"draftea-infra","email":"infra@draftea.com"}],"homepage":"https://github.com/Drafteame/serverless-plugin-lambda-deployments#readme","bugs":{"url":"https://github.com/Drafteame/serverless-plugin-lambda-deployments/issues"},"dist":{"shasum":"b80a7d6132f664912c833b2e06565dfdd9ee3a54","tarball":"https://registry.npmjs.org/serverless-plugin-lambda-deployments/-/serverless-plugin-lambda-deployments-0.2.0.tgz","fileCount":27,"integrity":"sha512-BsC3XXziuLZxoikDS1o54yBzkabjpIjQQHbq2eHY6Mk36j6MHMfqc+r/oDRPOoIW2v4+fBPl8VrXvd0sxy/JKA==","signatures":[{"sig":"MEUCIAzQsaFC8ORKY5Ee09RDTSy+Gr0qDPNf8iP7qU9z/w2AAiEArDUeeneZUinE3f4kvDtz0L+pPETscmXUJ01+elZCRj0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/serverless-plugin-lambda-deployments@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":51230},"main":"serverless-plugin-lambda-deployments.js","engines":{"node":">=18.0.0"},"gitHead":"1eb0072084fabc360ceaaa349c6a46ca4c3348b9","scripts":{"lint":"standard","test":"npm run lint && NODE_ENV=test ./node_modules/mocha/bin/mocha.js $(find ./ -name '*.test.js' -not -path '.*/node_modules/*')","watch":"NODE_ENV=test ./node_modules/mocha/bin/mocha.js -w $(find ./ -name '*.test.js' -not -path '*/node_modules/*')"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:227caab0-a957-4a41-aa0a-78c87cd5c1df"}},"standard":{"globals":["describe","context","it","before","after","beforeEach","afterEach"]},"repository":{"url":"git+https://github.com/Drafteame/serverless-plugin-lambda-deployments.git","type":"git"},"_npmVersion":"11.11.0","description":"Serverless Framework v3 plugin for Lambda alias management","directories":{},"_nodeVersion":"24.14.1","dependencies":{"flat":"^6.0.1","lodash":"^4.18.1","omit-empty":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.5.0","mocha":"^11.7.5","standard":"*","serverless":"^3.40.0","get-installed-path":"^4.0.8"},"peerDependencies":{"serverless":">= 1.26.0"},"_npmOperationalInternal":{"tmp":"tmp/serverless-plugin-lambda-deployments_0.2.0_1778706823964_0.892836867395157","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"serverless-plugin-lambda-deployments","engines":{"node":">=18.0.0"},"version":"0.3.0","description":"Serverless Framework v3 plugin for Lambda alias management","main":"serverless-plugin-lambda-deployments.js","scripts":{"test":"npm run lint && NODE_ENV=test ./node_modules/mocha/bin/mocha.js $(find ./ -name '*.test.js' -not -path '.*/node_modules/*')","watch":"NODE_ENV=test ./node_modules/mocha/bin/mocha.js -w $(find ./ -name '*.test.js' -not -path '*/node_modules/*')","lint":"standard"},"author":{"name":"Ariel Santos","email":"ariel.santos@draftea.com"},"license":"ISC","repository":{"url":"git+https://github.com/Drafteame/serverless-plugin-lambda-deployments.git","type":"git"},"dependencies":{"flat":"^6.0.1","lodash":"^4.18.1","omit-empty":"^1.0.0"},"devDependencies":{"chai":"^4.5.0","get-installed-path":"^4.0.8","mocha":"^11.7.5","serverless":"^3.40.0","standard":"*"},"peerDependencies":{"serverless":">= 1.26.0"},"keywords":["aws","lambda","serverless","alias","deployment"],"standard":{"globals":["describe","context","it","before","after","beforeEach","afterEach"]},"gitHead":"9996cb9c1ebba86def64a3580f9301fea37f0579","_id":"serverless-plugin-lambda-deployments@0.3.0","bugs":{"url":"https://github.com/Drafteame/serverless-plugin-lambda-deployments/issues"},"homepage":"https://github.com/Drafteame/serverless-plugin-lambda-deployments#readme","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-UpZyTnmaVPqVxGb6p99vYw5UkQJ1EMpFBtXYYJ94WROlfL3Mo2ZScJYe9+O62p1i+S9pSn45/uph+b5AO6OgEQ==","shasum":"cf4c147d8af7c292e5cba68ffdaf76f7e25191e3","tarball":"https://registry.npmjs.org/serverless-plugin-lambda-deployments/-/serverless-plugin-lambda-deployments-0.3.0.tgz","fileCount":27,"unpackedSize":51526,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/serverless-plugin-lambda-deployments@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDER3t/UQZtJ3f1vYZRcBWpy3w5irQjiOWnbWxsT1fJWQIhAMJCYVnnlVU3baxzS2PGdiGFkZAWa7CFzU6q5RxjD2s2"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:227caab0-a957-4a41-aa0a-78c87cd5c1df"}},"directories":{},"maintainers":[{"name":"draftea-infra","email":"infra@draftea.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/serverless-plugin-lambda-deployments_0.3.0_1778710548310_0.9257365956721546"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-13T12:52:15.170Z","modified":"2026-05-13T22:15:48.775Z","0.1.0":"2026-05-13T12:52:15.505Z","0.1.1":"2026-05-13T13:24:57.741Z","0.2.0":"2026-05-13T21:13:44.106Z","0.3.0":"2026-05-13T22:15:48.464Z"},"bugs":{"url":"https://github.com/Drafteame/serverless-plugin-lambda-deployments/issues"},"author":{"name":"Ariel Santos","email":"ariel.santos@draftea.com"},"license":"ISC","homepage":"https://github.com/Drafteame/serverless-plugin-lambda-deployments#readme","keywords":["aws","lambda","serverless","alias","deployment"],"repository":{"url":"git+https://github.com/Drafteame/serverless-plugin-lambda-deployments.git","type":"git"},"description":"Serverless Framework v3 plugin for Lambda alias management","maintainers":[{"name":"draftea-infra","email":"infra@draftea.com"}],"readme":"[![npm version](https://badge.fury.io/js/serverless-plugin-lambda-deployments.svg)](https://badge.fury.io/js/serverless-plugin-lambda-deployments)\n\n# serverless-plugin-lambda-deployments\n\nA Serverless Framework v3 plugin that manages Lambda function aliases, providing a stable deployment target that decouples your triggers from specific function versions. Use it as a base for any deployment strategy you want to implement.\n\n## Contents\n\n- [Supported events](#supported-events)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Configuration reference](#configuration-reference)\n- [SQS support](#sqs-support)\n- [License](#license)\n- [Credits](#credits)\n\n## Supported events\n\nThe plugin automatically redirects all triggers to the alias for the following event types:\n\n- **HTTP / REST API** (`http`) — API Gateway v1\n- **HTTP API** (`httpApi`) — API Gateway v2, including authorizers\n- **SQS** (`sqs`)\n- **DynamoDB Streams** (`stream`)\n- **Kinesis** (`stream`)\n- **SNS** (`sns`)\n- **S3** (`s3`)\n- **Schedule / EventBridge** (`schedule`)\n- **CloudWatch Logs** (`cloudwatchLog`)\n- **IoT** (`iot`)\n- **AppSync** (`appSync`)\n- **Destinations** (`destinations` — `onSuccess` / `onFailure`)\n\n## Installation\n\n```bash\nnpm install --save-dev serverless-plugin-lambda-deployments\n```\n\n## Usage\n\nAdd the plugin to your `serverless.yml`:\n\n```yaml\nplugins:\n  - serverless-plugin-lambda-deployments\n```\n\nThen add `deploymentSettings` to any function you want to manage:\n\n```yaml\nfunctions:\n  myFunction:\n    handler: src/handler.main\n    events:\n      - http: GET /my-endpoint\n    deploymentSettings:\n      alias: live\n```\n\nOn each deploy, the plugin publishes a new Lambda version and switches the alias to point to it instantly. Rollback is a manual alias update:\n\n```bash\naws lambda update-alias \\\n  --function-name my-function \\\n  --name live \\\n  --function-version <previous-version>\n```\n\n## Configuration reference\n\n| Field | Required | Description |\n|---|---|---|\n| `alias` | yes | Name of the Lambda alias to create (e.g. `live`) |\n| `stages` | no | List of stages where the plugin is active. If omitted, applies to all stages |\n| `provisionedConcurrency` | no | Number of provisioned concurrency instances to keep warm |\n| `enabled` | no | Set to `false` to exclude a specific function from the plugin. Default: `true` |\n\n### Global defaults\n\nIf `custom.deploymentSettings` includes an `alias`, the plugin applies to **all functions automatically** — no need to add `deploymentSettings` to each one. A function can override the global config by defining its own `deploymentSettings`.\n\n```yaml\ncustom:\n  deploymentSettings:\n    alias: live\n    stages:\n      - prod\n      - staging\n\nfunctions:\n  functionA:\n    handler: src/functionA.main\n    # inherits alias: live from global\n\n  functionB:\n    handler: src/functionB.main\n    # inherits alias: live from global\n\n  functionC:\n    handler: src/functionC.main\n    deploymentSettings:\n      alias: canary   # overrides global for this function only\n\n  functionD:\n    handler: src/functionD.main\n    deploymentSettings:\n      enabled: false  # excluded from the plugin\n```\n\nIf `custom.deploymentSettings` does **not** include an `alias`, the global config is only used as a source of default values. Each function must define its own `deploymentSettings` with at least an `alias` to be processed by the plugin — functions without it are ignored.\n\n```yaml\ncustom:\n  deploymentSettings:\n    stages:           # no alias → does not activate the plugin globally\n      - prod\n\nfunctions:\n  functionA:\n    handler: src/functionA.main\n    deploymentSettings:\n      alias: live     # required — plugin processes this function\n\n  functionB:\n    handler: src/functionB.main\n    # no deploymentSettings → plugin ignores this function\n```\n\n> **Note on `stages`:** the stage filter is evaluated from `custom.deploymentSettings.stages`. If a function defines its own `stages`, it affects the merged config but not the global stage check. For consistent behavior, define `stages` only in `custom.deploymentSettings`.\n\n## SQS support\n\nSQS works out of the box. The plugin automatically intercepts the Event Source Mapping that Serverless generates from `events.sqs` and points it to the alias.\n\n```yaml\nfunctions:\n  sqsProcessor:\n    handler: src/sqs.main\n    events:\n      - sqs:\n          arn: !GetAtt MyQueue.Arn\n          batchSize: 10\n    deploymentSettings:\n      alias: live\n```\n\n## License\n\nISC © Draftea\n\n## Credits\n\nInspired by [davidgf/serverless-plugin-canary-deployments](https://github.com/davidgf/serverless-plugin-canary-deployments) by David García Fernández, licensed under ISC.\n","readmeFilename":"README.md"}