Skip to content

Add Akeyless plugin workspace#9436

Open
baraka-akeyless wants to merge 33 commits into
backstage:mainfrom
baraka-akeyless:migrate-akeyless-workspace
Open

Add Akeyless plugin workspace#9436
baraka-akeyless wants to merge 33 commits into
backstage:mainfrom
baraka-akeyless:migrate-akeyless-workspace

Conversation

@baraka-akeyless

@baraka-akeyless baraka-akeyless commented Jun 9, 2026

Copy link
Copy Markdown

Summary

  • Adds a new workspaces/akeyless workspace with @backstage-community/plugin-akeyless and @backstage-community/plugin-akeyless-backend
  • Phase 1: Catalog-linked secret discovery (list items + Akeyless Console deep links)
  • Phase 2: CRUD for static secrets (view/create/update/delete) with path-scoped backend validation
  • Includes standalone dev apps, example entity annotations, changeset for initial release, and @baraka-akeyless as CODEOWNER

Standalone development repo: https://github.com/akeyless-community/akeyless-backstage-plugin

Test plan

  • yarn install in workspaces/akeyless
  • yarn workspace @backstage-community/plugin-akeyless-backend test
  • yarn workspace @backstage-community/plugin-akeyless test
  • yarn workspace @backstage-community/plugin-akeyless-backend lint
  • yarn workspace @backstage-community/plugin-akeyless lint
  • yarn tsc && yarn build:all in workspaces/akeyless
  • CI green on this PR
  • Manual smoke test with valid AKEYLESS_* credentials and annotated catalog entity

Made with Cursor

baraka-akeyless and others added 2 commits June 9, 2026 17:46
Migrate the Akeyless frontend and backend plugins into a new workspace, including catalog-linked discovery, phase 2 CRUD for static secrets, dev environments, and changeset for initial release.

Signed-off-by: baraka-akeyless <barak.a@akeyless.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: baraka-akeyless <barak.a@akeyless.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings June 9, 2026 14:53
@baraka-akeyless
baraka-akeyless requested review from a team and backstage-service as code owners June 9, 2026 14:53
@baraka-akeyless
baraka-akeyless requested a review from awanlin June 9, 2026 14:53
@backstage-goalie

backstage-goalie Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Changed Packages

Package Name Package Path Changeset Bump Current Version
@backstage-community/plugin-akeyless-backend workspaces/akeyless/plugins/akeyless-backend minor v0.0.0
@backstage-community/plugin-akeyless-common workspaces/akeyless/plugins/akeyless-common minor v0.0.0
@backstage-community/plugin-akeyless workspaces/akeyless/plugins/akeyless minor v0.0.0

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds a new Akeyless Backstage workspace with a frontend plugin (entity card + table + optional static-secret CRUD UI) and a matching backend plugin (Akeyless auth + list + optional CRUD endpoints), along with workspace scaffolding and repository plumbing (labeler, CODEOWNERS, tooling configs).

Changes:

  • Introduces @backstage-community/plugin-akeyless (frontend) with entity card/table and optional static-secret CRUD dialogs.
  • Introduces @backstage-community/plugin-akeyless-backend (backend) exposing list + CRUD endpoints with config-driven auth and path-scope enforcement.
  • Adds a new workspaces/akeyless workspace (Backstage/Yarn tooling, example entities, configs) and updates repo automation (labeler/CODEOWNERS/resolutions).

Reviewed changes

Copilot reviewed 47 out of 50 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
workspaces/akeyless/tsconfig.json Adds workspace TypeScript configuration for packages/plugins compilation.
workspaces/akeyless/plugins/akeyless/src/plugin.ts Registers the classic frontend plugin and API factory.
workspaces/akeyless/plugins/akeyless/src/plugin.test.ts Adds a minimal smoke test for plugin export.
workspaces/akeyless/plugins/akeyless/src/index.ts Exposes public frontend plugin API (plugin, card, constants, api ref/types).
workspaces/akeyless/plugins/akeyless/src/constants.ts Defines entity annotation constants and default secret type filters.
workspaces/akeyless/plugins/akeyless/src/conditions.ts Adds availability predicate based on entity annotations.
workspaces/akeyless/plugins/akeyless/src/components/SecretCrudDialog/index.ts Exports CRUD dialog component and mode type.
workspaces/akeyless/plugins/akeyless/src/components/SecretCrudDialog/SecretCrudDialog.tsx Implements create/edit dialog UI and submission handling.
workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/index.tsx Exports the table component and entity-to-config helper.
workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx Implements table rendering, listing, view value modal, and CRUD actions.
workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessCard/index.ts Exports the entity card wrapper.
workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessCard/EntityAkeylessCard.tsx Renders missing-annotation empty state or the secrets table.
workspaces/akeyless/plugins/akeyless/src/api.ts Adds frontend API ref + client for calling the backend endpoints.
workspaces/akeyless/plugins/akeyless/src/alpha.tsx Adds new-frontend-system (alpha) extensions (API + entity card/content).
workspaces/akeyless/plugins/akeyless/package.json Defines frontend plugin package metadata, deps, and entrypoints.
workspaces/akeyless/plugins/akeyless/README.md Documents frontend installation and entity annotations.
workspaces/akeyless/plugins/akeyless/.eslintrc.js Adds plugin-local ESLint config factory hookup.
workspaces/akeyless/plugins/akeyless-backend/src/types/akeyless-modules.d.ts Adds ambient typings for Akeyless SDK modules used by the backend.
workspaces/akeyless/plugins/akeyless-backend/src/service/router.ts Provides legacy-style createRouter entrypoint.
workspaces/akeyless/plugins/akeyless-backend/src/service/plugin.ts Registers the new backend plugin with core services and auth policy.
workspaces/akeyless/plugins/akeyless-backend/src/service/akeylessApi.ts Implements Akeyless SDK client (auth, list recursion, CRUD).
workspaces/akeyless/plugins/akeyless-backend/src/service/AkeylessBuilder.ts Builds the Express router and enforces CRUD + path scope checks.
workspaces/akeyless/plugins/akeyless-backend/src/service/AkeylessBuilder.test.ts Adds backend tests for health + CRUD-disabled behavior.
workspaces/akeyless/plugins/akeyless-backend/src/pathUtils.ts Adds path normalization/joining and scope assertion helpers.
workspaces/akeyless/plugins/akeyless-backend/src/index.ts Exports backend entrypoints and default backend plugin.
workspaces/akeyless/plugins/akeyless-backend/src/config.ts Adds backend config parsing + profile/method validation.
workspaces/akeyless/plugins/akeyless-backend/package.json Defines backend plugin package metadata and dependencies.
workspaces/akeyless/plugins/akeyless-backend/config.d.ts Adds configuration schema typings for consumers.
workspaces/akeyless/plugins/akeyless-backend/README.md Documents backend install, config examples, and REST API.
workspaces/akeyless/plugins/akeyless-backend/.eslintrc.js Adds plugin-local ESLint config factory hookup.
workspaces/akeyless/package.json Adds the workspace package definition and tooling scripts.
workspaces/akeyless/examples/entities.yaml Adds example catalog entities with Akeyless annotations.
workspaces/akeyless/bcp.json Adds Backstage community plugin settings for this workspace.
workspaces/akeyless/backstage.json Pins Backstage version for the workspace (1.51.0).
workspaces/akeyless/app-config.yaml Adds a runnable local app config for the workspace.
workspaces/akeyless/README.md Adds workspace-level documentation and dev instructions.
workspaces/akeyless/.yarnrc.yml Adds Yarn plugin-backstage configuration.
workspaces/akeyless/.yarn/plugins/@yarnpkg/plugin-backstage.cjs Adds the Backstage Yarn plugin bundle to the workspace.
workspaces/akeyless/.prettierignore Adds workspace Prettier ignore patterns.
workspaces/akeyless/.gitignore Adds workspace ignore rules.
workspaces/akeyless/.eslintrc.js Adds workspace ESLint base config forwarding.
workspaces/akeyless/.eslintignore Adds workspace ESLint ignore for Playwright config.
workspaces/akeyless/.dockerignore Adds workspace Docker ignore patterns.
workspaces/akeyless/.changeset/config.json Adds Changesets configuration for publishing.
workspaces/akeyless/.changeset/akeyless-initial-release.md Adds initial release changeset for both packages.
workspaces/akeyless/.changeset/README.md Adds Changesets README.
scripts/set-resolutions.js Updates repo script to include the new workspace package in resolution updates.
.github/pr-labeler.yml Adds workspace/akeyless PR labeling rules and area-maintainers scope.
.github/CODEOWNERS Adds CODEOWNERS entry for the new workspace.
Comments suppressed due to low confidence (4)

workspaces/akeyless/plugins/akeyless/package.json:1

  • The package entrypoints (main/types/exports) point at src/*, but files only publishes dist. As published, consumers will fail to resolve the entrypoints (and Node can’t execute TS/TSX). Set main/types/exports to the built dist/* outputs (and include an ./alpha dist target), or include src in files (not recommended for published packages). This is critical for publish/install correctness.
    workspaces/akeyless/plugins/akeyless/package.json:1
  • The package entrypoints (main/types/exports) point at src/*, but files only publishes dist. As published, consumers will fail to resolve the entrypoints (and Node can’t execute TS/TSX). Set main/types/exports to the built dist/* outputs (and include an ./alpha dist target), or include src in files (not recommended for published packages). This is critical for publish/install correctness.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • This .catch(() => …) swallows all errors from listSecrets, which can mislead users into thinking there are simply “No items found” when the real problem is auth/config/404/etc. Consider propagating the error so the existing error render path is used, or capture the error per-path (and render an error row / post an alert) rather than silently returning an empty result.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • If fetching the current secret value fails, the edit dialog still opens with an empty value, and the user can accidentally overwrite the secret with an empty string by clicking Save. A safer approach is to (a) only open the edit dialog after the value load succeeds, or (b) add a loading/error state to the edit dialog and disable submit until the initial value is loaded (and show an error if it can’t be fetched).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/set-resolutions.js
Comment thread workspaces/akeyless/plugins/akeyless-backend/src/pathUtils.ts
Comment thread workspaces/akeyless/plugins/akeyless-backend/src/service/plugin.ts Outdated
Comment thread workspaces/akeyless/plugins/akeyless-backend/src/service/akeylessApi.ts Outdated
Comment thread workspaces/akeyless/plugins/akeyless-backend/src/pathUtils.ts
Comment thread workspaces/akeyless/plugins/akeyless-backend/src/pathUtils.ts
Comment thread workspaces/akeyless/plugins/akeyless-backend/src/pathUtils.ts
baraka-akeyless and others added 2 commits June 9, 2026 18:08
Export public API types with release tags, generate report.api.md files, and dedupe workspace lockfile for verify step.

Signed-off-by: baraka-akeyless <barak.a@akeyless.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
Prevent yarn dedupe from resolving @types/node to v25, which conflicts with webpack-env types during strict type checking.

Signed-off-by: baraka-akeyless <barak.a@akeyless.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings June 9, 2026 15:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 50 out of 53 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (8)

workspaces/akeyless/plugins/akeyless/package.json:1

  • This package publishes only "dist" (via "files"), but "main"/"types"/"exports" currently point to "src/*". When published, consumers may not be able to resolve the entrypoints because "src" won't be included. Fix by pointing "main"/"types"/"exports"/"typesVersions" to the built artifacts in "dist" (or include "src" in "files" if publishing TS sources is intentional).
    workspaces/akeyless/plugins/akeyless/package.json:1
  • This package publishes only "dist" (via "files"), but "main"/"types"/"exports" currently point to "src/*". When published, consumers may not be able to resolve the entrypoints because "src" won't be included. Fix by pointing "main"/"types"/"exports"/"typesVersions" to the built artifacts in "dist" (or include "src" in "files" if publishing TS sources is intentional).
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • Throwing during render will crash the entity page if EntityAkeylessTable is rendered without valid annotations (including cases like whitespace-only values). Prefer rendering an in-UI error/empty state (e.g., MissingAnnotationEmptyState or an Alert) so the rest of the app remains usable.
    workspaces/akeyless/plugins/akeyless/src/conditions.ts:1
  • This treats whitespace-only annotation values as "available" (e.g., " "), which can lead to downstream failures (e.g., parsing into an empty path list and then throwing). Consider trimming and checking for a non-empty string (e.g., value?.trim().length > 0) before returning true.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • If the secret-types annotation is present but parses to an empty list (e.g., empty string, commas only, whitespace), "itemTypes" becomes [] and the backend will be asked to list with no types, likely returning nothing. Consider falling back to DEFAULT_SECRET_TYPES when the parsed list is empty.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • Links that open a new tab/window should include rel="noopener noreferrer" to prevent reverse-tabnabbing. If @backstage/core-components Link forwards "rel" to the underlying anchor, add it here for each target="_blank".
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • Links that open a new tab/window should include rel="noopener noreferrer" to prevent reverse-tabnabbing. If @backstage/core-components Link forwards "rel" to the underlying anchor, add it here for each target="_blank".
    workspaces/akeyless/plugins/akeyless/src/api.ts:1
  • This is part of the public API surface (exported in index.ts), but the methods are missing JSDoc. Adding brief docs for each method (params + behavior, especially for "contextPath" semantics and error behavior) will improve API Extractor output and consumer usability.

Comment thread scripts/set-resolutions.js
Comment thread workspaces/akeyless/plugins/akeyless-backend/README.md Outdated
Comment thread workspaces/akeyless/plugins/akeyless-backend/src/pathUtils.ts
Restore set-resolutions shebang, improve error handling and path safety tests, align backend health/docs with CRUD behavior, and update API reports.

Signed-off-by: baraka-akeyless <barak.a@akeyless.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings June 10, 2026 05:10
@baraka-akeyless
baraka-akeyless force-pushed the migrate-akeyless-workspace branch from ae445ec to 465e25a Compare June 10, 2026 05:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 51 out of 54 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (20)

workspaces/akeyless/plugins/akeyless/package.json:1

  • The package is configured to publish only "dist" (via "files"), but "main"/"types"/"exports" all point at source files under "src/*". This will break consumers because those files won’t be included in the published tarball. Fix by either (A) publishing source (add "src" to "files") or (B) pointing "main"/"types"/"exports" to the built outputs in "dist" (typical for Backstage packages).
    workspaces/akeyless/plugins/akeyless/package.json:1
  • The package is configured to publish only "dist" (via "files"), but "main"/"types"/"exports" all point at source files under "src/*". This will break consumers because those files won’t be included in the published tarball. Fix by either (A) publishing source (add "src" to "files") or (B) pointing "main"/"types"/"exports" to the built outputs in "dist" (typical for Backstage packages).
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • Several icon-only controls/links have no accessible name (e.g., wrapping and with only an icon). Add an explicit accessible label (e.g., aria-label on Link/IconButton, or visually-hidden text) so screen readers can announce what each control does.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • Several icon-only controls/links have no accessible name (e.g., wrapping and with only an icon). Add an explicit accessible label (e.g., aria-label on Link/IconButton, or visually-hidden text) so screen readers can announce what each control does.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • Several icon-only controls/links have no accessible name (e.g., wrapping and with only an icon). Add an explicit accessible label (e.g., aria-label on Link/IconButton, or visually-hidden text) so screen readers can announce what each control does.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • Several icon-only controls/links have no accessible name (e.g., wrapping and with only an icon). Add an explicit accessible label (e.g., aria-label on Link/IconButton, or visually-hidden text) so screen readers can announce what each control does.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • Several icon-only controls/links have no accessible name (e.g., wrapping and with only an icon). Add an explicit accessible label (e.g., aria-label on Link/IconButton, or visually-hidden text) so screen readers can announce what each control does.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • The table introduces substantial new behavior (annotation parsing, list aggregation across paths, CRUD enablement gating, and multiple dialog flows for view/edit/delete). The current frontend tests only assert the plugin export; please add targeted tests for akeylessSecretConfig parsing + key UI flows (e.g., CRUD enabled/disabled, error row, and opening view/edit/delete dialogs) to prevent regressions.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • The table introduces substantial new behavior (annotation parsing, list aggregation across paths, CRUD enablement gating, and multiple dialog flows for view/edit/delete). The current frontend tests only assert the plugin export; please add targeted tests for akeylessSecretConfig parsing + key UI flows (e.g., CRUD enabled/disabled, error row, and opening view/edit/delete dialogs) to prevent regressions.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • The table introduces substantial new behavior (annotation parsing, list aggregation across paths, CRUD enablement gating, and multiple dialog flows for view/edit/delete). The current frontend tests only assert the plugin export; please add targeted tests for akeylessSecretConfig parsing + key UI flows (e.g., CRUD enabled/disabled, error row, and opening view/edit/delete dialogs) to prevent regressions.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • The table introduces substantial new behavior (annotation parsing, list aggregation across paths, CRUD enablement gating, and multiple dialog flows for view/edit/delete). The current frontend tests only assert the plugin export; please add targeted tests for akeylessSecretConfig parsing + key UI flows (e.g., CRUD enabled/disabled, error row, and opening view/edit/delete dialogs) to prevent regressions.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • The table introduces substantial new behavior (annotation parsing, list aggregation across paths, CRUD enablement gating, and multiple dialog flows for view/edit/delete). The current frontend tests only assert the plugin export; please add targeted tests for akeylessSecretConfig parsing + key UI flows (e.g., CRUD enabled/disabled, error row, and opening view/edit/delete dialogs) to prevent regressions.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • The table introduces substantial new behavior (annotation parsing, list aggregation across paths, CRUD enablement gating, and multiple dialog flows for view/edit/delete). The current frontend tests only assert the plugin export; please add targeted tests for akeylessSecretConfig parsing + key UI flows (e.g., CRUD enabled/disabled, error row, and opening view/edit/delete dialogs) to prevent regressions.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • The table introduces substantial new behavior (annotation parsing, list aggregation across paths, CRUD enablement gating, and multiple dialog flows for view/edit/delete). The current frontend tests only assert the plugin export; please add targeted tests for akeylessSecretConfig parsing + key UI flows (e.g., CRUD enabled/disabled, error row, and opening view/edit/delete dialogs) to prevent regressions.
    workspaces/akeyless/plugins/akeyless-backend/src/service/akeylessApi.ts:1
  • The backend caches the Akeyless auth token indefinitely and never retries authentication on auth failures. If the token expires (common for API tokens), the backend may enter a permanent failure mode until restart. Consider tracking token expiry (if the SDK returns it) or clearing/re-authenticating the token on 401/403 responses from the Akeyless SDK calls.
    workspaces/akeyless/plugins/akeyless-backend/src/service/akeylessApi.ts:1
  • The backend caches the Akeyless auth token indefinitely and never retries authentication on auth failures. If the token expires (common for API tokens), the backend may enter a permanent failure mode until restart. Consider tracking token expiry (if the SDK returns it) or clearing/re-authenticating the token on 401/403 responses from the Akeyless SDK calls.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • Using join(',') to create dependency keys is brittle (paths/types containing commas can cause false cache hits) and obscures intent. Prefer a stable memoized key (e.g., JSON.stringify of the arrays) or a deep-compare dependency helper so dependency tracking accurately reflects changes in secretPaths/itemTypes.
    workspaces/akeyless/plugins/akeyless/src/components/EntityAkeylessTable/EntityAkeylessTable.tsx:1
  • Using join(',') to create dependency keys is brittle (paths/types containing commas can cause false cache hits) and obscures intent. Prefer a stable memoized key (e.g., JSON.stringify of the arrays) or a deep-compare dependency helper so dependency tracking accurately reflects changes in secretPaths/itemTypes.
    workspaces/akeyless/plugins/akeyless/src/components/SecretCrudDialog/SecretCrudDialog.tsx:1
  • Name is trimmed before submit, but value is submitted as-is and the button only checks + "!value" + . If whitespace-only values should be rejected, consider using + "!value.trim()" + for consistency. If whitespace is valid, it may be worth documenting that explicitly in the UI/helper text.
    workspaces/akeyless/plugins/akeyless/src/components/SecretCrudDialog/SecretCrudDialog.tsx:1
  • Name is trimmed before submit, but value is submitted as-is and the button only checks + "!value" + . If whitespace-only values should be rejected, consider using + "!value.trim()" + for consistency. If whitespace is valid, it may be worth documenting that explicitly in the UI/helper text.

Comment thread workspaces/akeyless/plugins/akeyless-backend/package.json
Comment thread workspaces/akeyless/plugins/akeyless-backend/package.json
@baraka-akeyless

Copy link
Copy Markdown
Author

Community contribution adding Akeyless secrets plugin, please review
Checks passing — happy to address any feedback when the team has time to review.

@baraka-akeyless

Copy link
Copy Markdown
Author

Hello Community,
Can someone please review my PR and let me know if any change is needed?

@baraka-akeyless

Copy link
Copy Markdown
Author

Hello Community,
Can someone review my PR please?
It is waiting for 2 weeks plus now, and we have customers waiting for it.
Thanks!

@baraka-akeyless

Copy link
Copy Markdown
Author

Hey @awanlin
Can you please review my PR?
Thanks and have a great weekend

@awanlin awanlin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi @baraka-akeyless, this is a volunteer run repo where reviewers are doing so on their own time as they have capacity. If you need to have fast turn around time then you're better off hosting this your self. Self-hosting is a pretty common pattern across the community and organizations that have built plugins for their own services.

Given that, are you open to this having slow review or will you self host? If you still want to contribute it here I'll give it look over next Friday if time permits.

@baraka-akeyless

baraka-akeyless commented Jul 12, 2026

Copy link
Copy Markdown
Author

@awanlin thanks for your reply.
As I haven’t seen any comment , and I am new in this community, I didn’t know it takes a lot of time.
Sorry for being too pushy, I will wait for your review patiently now

Expand README documentation, improve accessibility labels, add frontend tests, re-authenticate on expired Akeyless tokens, and tighten CRUD validation.

Signed-off-by: baraka-akeyless <barak.a@akeyless.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings July 13, 2026 05:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 54 out of 57 changed files in this pull request and generated 3 comments.

Comment thread workspaces/akeyless/plugins/akeyless-backend/README.md Outdated
Comment thread workspaces/akeyless/plugins/akeyless-backend/README.md Outdated
Use TestApiRegistry varargs for alert API mock, dedupe yarn.lock duplicates, and fix SecretCrudDialog close timing plus config docs.

Signed-off-by: baraka-akeyless <barak.a@akeyless.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings July 13, 2026 05:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 54 out of 57 changed files in this pull request and generated 3 comments.

Comment thread workspaces/akeyless/plugins/akeyless-backend/src/pathUtils.ts
Comment thread workspaces/akeyless/plugins/akeyless/src/api.ts

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 60 out of 63 changed files in this pull request and generated no new comments.

@awanlin awanlin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice work @baraka-akeyless, thanks for following up on the various Copilot comments, most of my comments should be pretty easy to address 👍

Comment thread .github/CODEOWNERS
Comment thread scripts/set-resolutions.js
Comment thread workspaces/akeyless/plugins/akeyless-backend/config.d.ts
Comment thread workspaces/akeyless/plugins/akeyless-backend/config.d.ts
Comment thread workspaces/akeyless/plugins/akeyless-backend/config.d.ts
Comment thread workspaces/akeyless/plugins/akeyless/README.md Outdated
Comment thread workspaces/akeyless/plugins/akeyless/README.md Outdated
Comment thread workspaces/akeyless/plugins/akeyless/README.md Outdated
Comment thread workspaces/akeyless/plugins/akeyless/README.md Outdated
Comment thread workspaces/akeyless/backstage.json Outdated
Add akeyless-common for shared types, default allowCrud to false with
stronger docs, mark auth secrets with @visibility secret, replace ambient
SDK module declarations with a typed wrapper, bump Backstage to 1.53.0,
and align README/frontend system wording with current conventions.

Signed-off-by: baraka-akeyless <barak.a@akeyless.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings July 17, 2026 20:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 70 out of 74 changed files in this pull request and generated 1 comment.

Comment thread scripts/set-resolutions.js
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: baraka_akeyless <79786471+baraka-akeyless@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 17, 2026 20:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 70 out of 74 changed files in this pull request and generated 1 comment.

Comment thread workspaces/akeyless/plugins/akeyless-backend/README.md Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: baraka_akeyless <79786471+baraka-akeyless@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 17, 2026 20:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 70 out of 74 changed files in this pull request and generated no new comments.

Reformat the API table after Copilot Autofix and keep only the
akeyless workspace entry in set-resolutions.js per maintainer review.

Signed-off-by: baraka-akeyless <barak.a@akeyless.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
Copilot AI review requested due to automatic review settings July 17, 2026 20:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 70 out of 74 changed files in this pull request and generated 3 comments.

Comment thread scripts/set-resolutions.js
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: baraka_akeyless <79786471+baraka-akeyless@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 17, 2026 20:40
Include akeylessApi in the listSecrets effect deps, avoid JSON.stringify
in dependency arrays, and key EntityAkeylessTable by entity ref so UI
state does not leak across catalog entities.

Signed-off-by: baraka-akeyless <barak.a@akeyless.io>
Co-authored-by: Cursor <cursoragent@cursor.com>
@baraka-akeyless

Copy link
Copy Markdown
Author

@awanlin Thanks for the feedback.
I believe I managed to cover your requests

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 70 out of 74 changed files in this pull request and generated 1 comment.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: baraka_akeyless <79786471+baraka-akeyless@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 70 out of 74 changed files in this pull request and generated 1 comment.

Comment on lines +28 to +31
export function normalizeAnnotatedPath(path: string): string {
const segments = path.trim().split('/').filter(Boolean);
return segments.length === 0 ? '/' : `/${segments.join('/')}`;
}

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 70 out of 74 changed files in this pull request and generated 2 comments.

Comment on lines +175 to +199
const openViewDialog = useCallback(
async (secret: AkeylessSecret) => {
setViewSecret(secret);
setViewVisible(false);
setViewValue(undefined);
setViewLoading(true);
try {
const response = await akeylessApi.getStaticSecretValue(
secret.fullPath,
secret.path,
);
setViewValue(response.value);
} catch (viewError) {
alertApi.post({
message:
viewError instanceof Error
? viewError.message
: 'Failed to load secret value',
severity: 'error',
});
setViewSecret(undefined);
} finally {
setViewLoading(false);
}
},
Comment on lines +161 to +165
private async getToken(): Promise<string> {
if (!this.token) {
this.token = await this.authenticate();
}
return this.token;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants