Skip to content

Add/Edit Bookmark Dialog - #278

Open
F3l1x1vo wants to merge 17 commits into
mainfrom
feat/app-bookmark-dialog
Open

Add/Edit Bookmark Dialog#278
F3l1x1vo wants to merge 17 commits into
mainfrom
feat/app-bookmark-dialog

Conversation

@F3l1x1vo

@F3l1x1vo F3l1x1vo commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

This PR adds a bookmark modal for adding and editing bookmarks. Currently, they are saved in localStorage (not a database like we hoped. The database is a v1 feature of the S3 Storage Browser and not yet available on the parent branch). Migrating these bookmarks to the database is an issue for later (#277).

The bookmarks are currently shown in a section on the dashboard but we will change the display of these as well (#271)


Closes #270

@F3l1x1vo
F3l1x1vo requested a review from dklOrdix July 31, 2026 07:26
@F3l1x1vo F3l1x1vo self-assigned this Jul 31, 2026
@F3l1x1vo
F3l1x1vo changed the base branch from feat/iframe-modularization to main July 31, 2026 08:11
@F3l1x1vo
F3l1x1vo force-pushed the feat/app-bookmark-dialog branch from c622e28 to fbfa6e6 Compare July 31, 2026 08:17
F3l1x1vo and others added 14 commits September 2, 2026 07:23
* Add OPA client for admin rights checking

- New OPA client module (src/lib/server/opa.ts) using plain fetch
- Separate handleOpaAdmin middleware hook (fail-closed)
- Admin status exposed to client via event.locals.isAdmin and $page.data
- Prometheus metrics: opa_request_duration_seconds + opa_request_total
- Helm chart for OPA 1.16.2 (dev/opa/)
- Sample Rego policy with admin email domain check
- Dev setup: alice is admin (alice@admin.example.com)
- Configurable via STACKABLE_COCKPIT_OPA_ENABLED/URL/TIMEOUT env vars

* Replace custom OPA fetch client with @open-policy-agent/opa SDK

Uses OPAClient.evaluate() with fromResult callback instead of raw fetch.
Same external interface (checkAdmin), same error handling (fail-closed).

* fix YAML format

* fix YAML format

* fix YAML format

* fix: handle bare boolean responses from OPA admin check

The fromResult callback expected { admin: true } but OPA may return a
bare boolean. Now handles both formats.

* chore: remove merge artifact feature flags

Remove unused archivePreviewMaxBytes and commented-out env vars
(INFINITE_SCROLL, CUT_COPY, PASTE, RENAME, MOVE) that have no
corresponding code.

---------

Co-authored-by: F3l1x1vo <fli@ordix.de>
@F3l1x1vo
F3l1x1vo force-pushed the feat/app-bookmark-dialog branch from 286a34a to 7a7d76c Compare September 2, 2026 05:23
F3l1x1vo and others added 3 commits September 2, 2026 07:47
* #270 add bookmark dialog

* add edit bookmarks dialog

* fix cancel editing bookmark

* fix darkmode for icons, cursor pointer over boxes

* update product icons to use colored versions where possible

* scaled icons down to 64x64

* Revert "scaled icons down to 64x64"

This reverts commit 740391c.

* revert image downscale, use svelte enhanced image component to downscale images

* #271 overhaul dashboard layout design

* fix unit test

* Add OPA client for admin rights checking (#276)

* Add OPA client for admin rights checking

- New OPA client module (src/lib/server/opa.ts) using plain fetch
- Separate handleOpaAdmin middleware hook (fail-closed)
- Admin status exposed to client via event.locals.isAdmin and $page.data
- Prometheus metrics: opa_request_duration_seconds + opa_request_total
- Helm chart for OPA 1.16.2 (dev/opa/)
- Sample Rego policy with admin email domain check
- Dev setup: alice is admin (alice@admin.example.com)
- Configurable via STACKABLE_COCKPIT_OPA_ENABLED/URL/TIMEOUT env vars

* Replace custom OPA fetch client with @open-policy-agent/opa SDK

Uses OPAClient.evaluate() with fromResult callback instead of raw fetch.
Same external interface (checkAdmin), same error handling (fail-closed).

* fix YAML format

* fix YAML format

* fix YAML format

* fix: handle bare boolean responses from OPA admin check

The fromResult callback expected { admin: true } but OPA may return a
bare boolean. Now handles both formats.

* chore: remove merge artifact feature flags

Remove unused archivePreviewMaxBytes and commented-out env vars
(INFINITE_SCROLL, CUT_COPY, PASTE, RENAME, MOVE) that have no
corresponding code.

---------

Co-authored-by: F3l1x1vo <fli@ordix.de>

* chore: dedupe packages

* #270 add admin check to pinning, add OPA tests

* fix unit test

* #270 show pin for all only to admins

* fix unit test

* pull from feat/app-bookmark-dialog

* pull from feat/app-bookmark-dialog

---------

Co-authored-by: dklOrdix <dkl@ordix.de>
… as tools inside the cockpit (#283)

* #270 add bookmark dialog

* add edit bookmarks dialog

* fix cancel editing bookmark

* fix darkmode for icons, cursor pointer over boxes

* update product icons to use colored versions where possible

* scaled icons down to 64x64

* Revert "scaled icons down to 64x64"

This reverts commit 740391c.

* revert image downscale, use svelte enhanced image component to downscale images

* #275 allow users to pin bookmarks

* #275 #280 add bookmarks to sidebar navigation, show external apps in cockpit

* fix unit test

* Add OPA client for admin rights checking (#276)

* Add OPA client for admin rights checking

- New OPA client module (src/lib/server/opa.ts) using plain fetch
- Separate handleOpaAdmin middleware hook (fail-closed)
- Admin status exposed to client via event.locals.isAdmin and $page.data
- Prometheus metrics: opa_request_duration_seconds + opa_request_total
- Helm chart for OPA 1.16.2 (dev/opa/)
- Sample Rego policy with admin email domain check
- Dev setup: alice is admin (alice@admin.example.com)
- Configurable via STACKABLE_COCKPIT_OPA_ENABLED/URL/TIMEOUT env vars

* Replace custom OPA fetch client with @open-policy-agent/opa SDK

Uses OPAClient.evaluate() with fromResult callback instead of raw fetch.
Same external interface (checkAdmin), same error handling (fail-closed).

* fix YAML format

* fix YAML format

* fix YAML format

* fix: handle bare boolean responses from OPA admin check

The fromResult callback expected { admin: true } but OPA may return a
bare boolean. Now handles both formats.

* chore: remove merge artifact feature flags

Remove unused archivePreviewMaxBytes and commented-out env vars
(INFINITE_SCROLL, CUT_COPY, PASTE, RENAME, MOVE) that have no
corresponding code.

---------

Co-authored-by: F3l1x1vo <fli@ordix.de>

* fix unit test

* Add OPA client for admin rights checking (#276)

* Add OPA client for admin rights checking

- New OPA client module (src/lib/server/opa.ts) using plain fetch
- Separate handleOpaAdmin middleware hook (fail-closed)
- Admin status exposed to client via event.locals.isAdmin and $page.data
- Prometheus metrics: opa_request_duration_seconds + opa_request_total
- Helm chart for OPA 1.16.2 (dev/opa/)
- Sample Rego policy with admin email domain check
- Dev setup: alice is admin (alice@admin.example.com)
- Configurable via STACKABLE_COCKPIT_OPA_ENABLED/URL/TIMEOUT env vars

* Replace custom OPA fetch client with @open-policy-agent/opa SDK

Uses OPAClient.evaluate() with fromResult callback instead of raw fetch.
Same external interface (checkAdmin), same error handling (fail-closed).

* fix YAML format

* fix YAML format

* fix YAML format

* fix: handle bare boolean responses from OPA admin check

The fromResult callback expected { admin: true } but OPA may return a
bare boolean. Now handles both formats.

* chore: remove merge artifact feature flags

Remove unused archivePreviewMaxBytes and commented-out env vars
(INFINITE_SCROLL, CUT_COPY, PASTE, RENAME, MOVE) that have no
corresponding code.

---------

Co-authored-by: F3l1x1vo <fli@ordix.de>

* fix auth port, implement open in new tab option, fix custom link resolve

* #270 add admin check to pinning, add OPA tests

* fix unit test

* #270 show pin for all only to admins

* fix unit test

* pull from feat/app-bookmark-dialog

---------

Co-authored-by: dklOrdix <dkl@ordix.de>
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.

2 participants