Skip to content

feat: add Akeyless secrets manager plugin#544

Open
Copilot wants to merge 7 commits intomainfrom
copilot/add-akeyless-plugin
Open

feat: add Akeyless secrets manager plugin#544
Copilot wants to merge 7 commits intomainfrom
copilot/add-akeyless-plugin

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 2, 2026

  • Create Akeyless plugin package structure
  • Implement plugin.ts with auth, resolvers, error handling
  • Write README.md
  • Add changeset
  • Add documentation page (plugins/akeyless.mdx)
  • Add Akeyless to sidebar and overview
  • Address review: remove fake icon
  • Address review: add pathPrefix option
  • Address review: add JSON key extraction + response caching
  • Final review: extract duplicated error handling into shared handleApiError helper
  • Final review: extract duplicated cache wrapper into shared cachedFetch helper
  • Final review: extract duplicated JSON key extraction into shared extractJsonKey helper
  • Final review: restore detailed error tips in shared error handler
  • Verify docs and README match implementation
  • Lint

Copilot AI linked an issue Apr 2, 2026 that may be closed by this pull request
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 2, 2026

🦋 Changeset detected

Latest commit: b9eab94

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@varlock/akeyless-plugin Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copilot AI changed the title [WIP] Add akeyless plugin for secrets management feat: add Akeyless secrets manager plugin Apr 2, 2026
Copilot AI requested a review from theoephraim April 2, 2026 20:44
@philmillman
Copy link
Copy Markdown
Member

@copilot add a docs page

…view listing

Agent-Logs-Url: https://github.com/dmno-dev/varlock/sessions/9f3a323d-52d7-438a-8d31-64c569dc03d0

Co-authored-by: philmillman <3722211+philmillman@users.noreply.github.com>
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages bot commented Apr 3, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
varlock-website bc01bb6 Apr 07 2026, 05:27 AM

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 3, 2026

@copilot add a docs page

Added in e6b3bb0. Created plugins/akeyless.mdx docs page with features, installation, API Key auth setup, gateway support, loading secrets (static/dynamic/rotated), Akeyless setup guide, full reference section, troubleshooting, and resources. Also added Akeyless to the sidebar navigation and plugins overview table.

Copilot AI requested a review from philmillman April 3, 2026 14:45
Copy link
Copy Markdown
Member

@theoephraim theoephraim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot - check the review comments and adjust accordingly


const { SchemaError, ResolutionError } = plugin.ERRORS;

const AKEYLESS_ICON = 'simple-icons:akeyless';
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not a real icon. Just leave it empty if there is no logo available in iconify.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed all simple-icons:akeyless references — icon is now left empty across plugin metadata, data types, and resolver function. See bc01bb6.

DB_PASSWORD=akeyless("/MyApp/DB_PASSWORD")

# Auto-infer secret name from the variable name
API_KEY=akeyless()
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if paths are always longer, does this even make sense?

We should probably add a prefixPath option on the plugin instance (similar to what we have for AWS). This would let us dry up other items, and make this case where we infer the path more usable.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added pathPrefix option on @initAkeyless() (similar to Vault's pathPrefix and AWS's namePrefix). With a prefix set, akeyless() infers "{pathPrefix}/{ITEM_KEY}" which makes the no-arg case much more practical. See bc01bb6.

Dynamic secrets generate on-demand credentials (e.g., temporary database credentials, cloud access tokens). Use the `type=dynamic` parameter:

```env-spec title=".env.schema"
# Fetch a dynamic secret (returns JSON with generated credentials)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this always returns json, we probably need a way of extracting individual json keys/paths.

In this case we also probably need to make sure we cache the fetched item, in case multiple keys from that json object are needed.

This will be useful for dynamic and rotated keys, but also just useful generally, in case a user is storing json objects in static secrets.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added JSON key extraction via #key syntax and key= named parameter for all secret types (static, dynamic, rotated). Also added response caching per secret type + path so multiple items extracting different keys from the same secret share a single API call. Pattern matches the Vault plugin's fetchSecretData cache. See bc01bb6.

… extraction, and response caching

Agent-Logs-Url: https://github.com/dmno-dev/varlock/sessions/69e3ce35-9e73-4d8b-a41a-f265fefa8a4d

Co-authored-by: theoephraim <1158956+theoephraim@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 7, 2026

@copilot - check the review comments and adjust accordingly

All three review comments addressed in bc01bb6: removed fake icon, added pathPrefix option, and added JSON key extraction with response caching.

Copilot AI requested a review from theoephraim April 7, 2026 05:29
Copilot AI and others added 2 commits April 7, 2026 05:50
…ror handling, and JSON key extraction

Agent-Logs-Url: https://github.com/dmno-dev/varlock/sessions/9b69a8a3-6372-423e-a2f3-bb9598c8c651

Co-authored-by: theoephraim <1158956+theoephraim@users.noreply.github.com>
Copilot AI requested a review from theoephraim April 7, 2026 05:53
Add support for API Key authentication and multiple instances.
@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new bot commented Apr 7, 2026

Open in StackBlitz

npm i https://pkg.pr.new/dmno-dev/varlock@544
npm i https://pkg.pr.new/dmno-dev/varlock/@varlock/astro-integration@544
npm i https://pkg.pr.new/dmno-dev/varlock/@varlock/vite-integration@544
npm i https://pkg.pr.new/dmno-dev/varlock/@varlock/akeyless-plugin@544

commit: b9eab94

@theoephraim theoephraim marked this pull request as ready for review April 7, 2026 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] akeyless plugin

3 participants