Skip to content

feat(auth): complete security and authorization architecture - #33

Merged
yacosta738 merged 11 commits into
mainfrom
feat/security-authz-architecture
May 31, 2026
Merged

feat(auth): complete security and authorization architecture#33
yacosta738 merged 11 commits into
mainfrom
feat/security-authz-architecture

Conversation

@yacosta738

Copy link
Copy Markdown
Contributor

Summary

Implement complete security and authorization architecture for Rook proxy. The system had a partial authz layer (route classification, HMAC-SHA256 API key auth). This PR fills critical gaps:

  • SQLite-backed session auth for MANAGEMENT routes with Argon2id password hashing
  • First-boot admin creation with NULL password hash, TUI password setter
  • Login endpoint with secure cookies (HttpOnly, SameSite=Lax, Secure)
  • Session validation middleware replacing JWT-based auth for dashboard routes
  • CSRF protection via double-submit cookie pattern
  • Login rate limiting (5 attempts/min per IP)
  • Per-key API rate limiting (Free: 100/10s, Pro: 1K/100s, Enterprise: 10K/1000s)
  • Rename RouteClassAuthTier for semantic clarity

Changes

Core Auth Components

  • crates/domain/rook-core/src/model.rs — User, Session, UserId, SessionId, PasswordHash types
  • crates/domain/rook-core/src/ports.rs — UserRepositoryPort, SessionRepositoryPort, PasswordHasher traits
  • crates/infrastructure/auth-sqlite/src/lib.rs — SqliteUserRepository, SqliteSessionRepository + migrations
  • crates/infrastructure/encryption-inmemory/src/password.rs — Argon2idHasher (64MB, 3 iterations, 1 parallelism)

Use Cases

  • crates/application/rook-usecases/src/auth/ensure_admin_user.rs — First-boot admin creation
  • crates/application/rook-usecases/src/auth/set_admin_password.rs — TUI password setter
  • crates/application/rook-usecases/src/auth/login.rs — Login with session creation
  • crates/application/rook-usecases/src/auth/logout.rs — Session revocation
  • crates/application/rook-usecases/src/auth/validate_session.rs — Session validation

Transport Layer

  • crates/infrastructure/transport-axum/src/authz.rs — AuthTier enum, session validation middleware
  • crates/infrastructure/transport-axum/src/handlers/auth.rs — POST /login, GET /logout handlers
  • crates/infrastructure/transport-axum/src/middleware/login_rate_limiter.rs — Per-IP rate limiter
  • crates/infrastructure/transport-axum/src/middleware/csrf_guard.rs — CSRF double-submit validation
  • crates/infrastructure/transport-axum/src/middleware/api_key_rate_limiter.rs — Per-key rate limiter
  • crates/infrastructure/transport-axum/src/routes.rs — Route wiring with rate limiters
  • crates/infrastructure/transport-axum/tests/auth_integration_tests.rs — 21 integration tests

DI & Bootstrap

  • apps/rook/src/di.rs — All auth components wired, EnsureAdminUser called at startup

Architecture Docs

  • openspec/ARCHITECTURE.md — Security architecture documented
  • openspec/DOMAIN.md — Auth domain models documented

Testing

  • 217 tests passing across workspace
  • 21 new integration tests for auth flows
  • All cargo clippy --workspace --all-targets -- -D warnings clean
  • cargo audit — no CVEs

Known Gaps (Non-Blocking)

Issue Notes
POST /logout returns 501 Needs session_repo wiring to handler — revocation logic exists
Per-key API rate limiter Wired into DI but not actively enforced on routes
rook admin set-password CLI Use case implemented, CLI wiring pending

Checklist

  • Tests added/updated
  • Documentation updated (openspec/)
  • cargo clippy --workspace --all-targets -- -D warnings passes
  • cargo test --workspace --all-features passes
  • cargo audit passes with no CVEs

Related Issues

Closes implementation of security-authz-architecture-notes SDD change

…ting, and build integration

- Add initial Vue 3 dashboard app structure with Pinia, Vue Router, and i18n setup
- Implement reusable UI components (Avatar, Breadcrumb, Sidebar, Sheet, Tooltip, DropdownMenu, etc.)
- Add utility functions and context for sidebar state management
- Configure Vite, Tailwind, and Vitest for development and testing
- Integrate dashboard build into Rust build process via build.rs and build.sh
- Update .gitignore, pnpm-workspace.yaml, and editor configs for dashboard workspace
- Extend Rust backend to embed and serve dashboard assets
- Add test scaffolding and example specs for dashboard
- Apply consistent indentation and line wrapping for function calls and match arms
- Reformat long argument lists and chained method calls for clarity
- Adjust test and trait implementations for improved readability
- Add missing newlines at end of files where necessary
@coderabbitai

coderabbitai Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3b58b9d4-b0d6-438a-b39a-ff1b7148c5d5

📥 Commits

Reviewing files that changed from the base of the PR and between 13cb09c and 57cd6d6.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (299)
  • .agents/skills/frontend-platform/accessibility/SKILL.md
  • .agents/skills/frontend-platform/accessibility/references/A11Y-PATTERNS.md
  • .agents/skills/frontend-platform/accessibility/references/WCAG.md
  • .agents/skills/frontend-platform/animate-text/SKILL.md
  • .agents/skills/frontend-platform/animate-text/assets/catalog.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/blur-out-up.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/bottom-up-letters.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/depth-parallax-words.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/fade-through.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/focus-blur-resolve.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/kinetic-center-build.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/line-by-line-slide.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/mask-reveal-up.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/micro-scale-fade.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/per-character-rise.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/per-word-crossfade.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/scale-down-fade.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/shared-axis-x.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/shared-axis-y.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/shared-axis-z.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/shimmer-sweep.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/short-slide-down.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/short-slide-right.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/soft-blur-in.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/spring-scale-in.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/stagger-from-center.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/stagger-from-edges.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/top-down-letters.json
  • .agents/skills/frontend-platform/animate-text/assets/effects/typewriter.json
  • .agents/skills/frontend-platform/animate-text/assets/library-adapters.json
  • .agents/skills/frontend-platform/animate-text/assets/renderer-recipes.json
  • .agents/skills/frontend-platform/animate-text/assets/runtime-presets.json
  • .agents/skills/frontend-platform/animate-text/assets/samples.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/blur-out-up.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/bottom-up-letters.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/depth-parallax-words.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/fade-through.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/focus-blur-resolve.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/kinetic-center-build.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/line-by-line-slide.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/mask-reveal-up.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/micro-scale-fade.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/per-character-rise.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/per-word-crossfade.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/scale-down-fade.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/shared-axis-x.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/shared-axis-y.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/shared-axis-z.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/shimmer-sweep.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/short-slide-down.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/short-slide-right.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/soft-blur-in.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/spring-scale-in.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/stagger-from-center.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/stagger-from-edges.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/top-down-letters.json
  • .agents/skills/frontend-platform/animate-text/assets/specs/typewriter.json
  • .agents/skills/frontend-platform/animate-text/assets/stage-presets.json
  • .agents/skills/frontend-platform/animate-text/references/catalog.md
  • .agents/skills/frontend-platform/animate-text/references/implementation-notes.md
  • .agents/skills/frontend-platform/animate-text/references/schema.md
  • .agents/skills/frontend-platform/animate-text/references/selection-guide.md
  • .agents/skills/frontend-platform/animate-text/scripts/find-spec.mjs
  • .agents/skills/frontend-platform/animate-text/scripts/get-effect.mjs
  • .agents/skills/frontend-platform/animate-text/scripts/get-spec.mjs
  • .agents/skills/frontend-platform/animate-text/scripts/list-specs.mjs
  • .agents/skills/frontend-platform/astrolicious-astro/SKILL.md
  • .agents/skills/frontend-platform/best-practices/SKILL.md
  • .agents/skills/frontend-platform/best-practices/references/REFERENCE.md
  • .agents/skills/frontend-platform/chrome-extensions/SKILL.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/api-calling.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/auth-identity.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/content-scripts.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/context-menus.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/csp-sandbox.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/declarative-net-request.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/devtools.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/icons.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/media-capture.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/message-passing.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/omnibox.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/popup-ui.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/prompt-api.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/service-worker.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/side-panel.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/storage.md
  • .agents/skills/frontend-platform/chrome-extensions/references/extensions/tab-management.md
  • .agents/skills/frontend-platform/chrome-extensions/references/webstore/chromewebstore-template.md
  • .agents/skills/frontend-platform/chrome-extensions/references/webstore/privacy-policy.md
  • .agents/skills/frontend-platform/chrome-extensions/references/webstore/review-checklist.md
  • .agents/skills/frontend-platform/chrome-extensions/references/webstore/store-listing.md
  • .agents/skills/frontend-platform/core-web-vitals/SKILL.md
  • .agents/skills/frontend-platform/core-web-vitals/references/LCP.md
  • .agents/skills/frontend-platform/frontend-design/SKILL.md
  • .agents/skills/frontend-platform/modern-web-guidance/SKILL.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/accessibility/accessibility.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/accessibility/accessible-error-announcement.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/built-in-ai/language-detection.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/built-in-ai/language-model.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/built-in-ai/summarizer.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/built-in-ai/translator.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/css-layout/css-layout.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/css/css.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/css/highlight-text-ranges.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/animated-select-picker.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/autofill-address-form.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/autofill-highlight-inputs.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/autofill-payment-form.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/autofill-sign-in-form.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/autofill-sign-up-form.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/brand-consistent-forms.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/branded-select-styling.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/custom-select-picker-layouts.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/form-fields-automatically-fit-contents.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/forms.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/required-field-feedback.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/rich-media-picker.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/select-menu-interaction.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/forms/validate-input-after-interaction.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/html/html.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/passkeys/passkey-authentication.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/passkeys/passkey-conditional-create.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/passkeys/passkey-management.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/passkeys/passkey-reauthentication.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/passkeys/passkey-registration.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/passkeys/passkeys.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/batch-analytics-events.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/break-up-long-tasks.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/calculate-total-foreground-time.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/conditional-async-dependencies.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/defer-rendering-heavy-content.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/defer-work-until-scroll-ends.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/deprioritize-background-fetches.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/detect-initial-visibility-state.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/efficient-background-processing.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/faster-spa-view-transitions.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/full-session-analytics.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/identify-heavy-scripts.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/identify-inp-causes.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/improve-next-page-load-performance.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/interactions-in-complex-layouts.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/optimize-image-priority.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/optimize-preload-priority.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/optimize-script-priority.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/performance.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/resolution-optimized-pseudo-elements.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/schedule-tasks-by-priority.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/performance/sequence-distributed-events.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/privacy/privacy.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/security/security.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/adapt-scrollbar-to-contrast-preferences.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/anchor-positioning-tab-underline.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/animate-element-entry-exit.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/animate-to-from-top-layer.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/animate-to-intrinsic-sizes.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/apply-webgl-shaders.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/calculate-event-differentials.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/calculate-with-intrinsic-sizes.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/capture-location-agnostic-data.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/carousel-slide-effects.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/carousel-snap-highlights.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/child-state-based-styling.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/complex-shapes.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/component-specific-light-dark-theme.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/consistent-cross-document-transitions.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/content-based-styling.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/coordinate-global-events.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/cross-document-transitions.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/customize-scrollbar-color-and-thickness.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/dark-mode.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/declarative-button-actions.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/declarative-dialog-popover-control.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/deliver-optimized-decorative-images.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/design-token-reactivity.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/directional-navigation-transitions.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/dynamic-sibling-animations.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/dynamic-sibling-styling.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/export-html-media-from-canvas.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/expose-canvas-content-to-browser-features.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/flicker-free-client-side-ab-testing.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/fluid-scaling.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/format-human-readable-durations.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/group-element-transitions.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/improve-text-layout-and-legibility.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/individual-transform-properties.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/interactive-content-in-3d-scenes.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/interactive-content-reveal.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/interest-triggered-action-previews.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/interest-triggered-tooltips.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/light-dismiss-a-dialog.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/manage-recurring-intervals.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/model-partial-time-concepts.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/move-dom-element-without-losing-state.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/navigation-drawer.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/overflow-clipping-control.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/parallax-scroll-effects.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/persistent-app-tours.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/persistent-toast-notifications.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/persistent-top-layer-ui.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/physics-based-easing.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/platform-controls-dismiss-dialog.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/position-aware-tooltips.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/precise-text-alignment.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/prevent-text-wrapping.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/pull-to-reveal.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/reduce-style-repetition.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/resilient-context-menus-and-nested-dropdowns.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/same-document-transitions.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/scroll-entry-exit-effects.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/scroll-position-aware-elements.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/scroll-progress-indicator.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/scroll-snap-realtime-feedback.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/scroll-snap-state-sync.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/scroll-target-on-load.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/scrollability-affordance-hints.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/scrollytelling.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/search-hidden-content.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/shaped-cutouts.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/shrinking-header-on-scroll.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/size-aware-styling.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/soft-edge-content-fade.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/stabilize-reactive-state.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/stack-drill-down.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/style-parent-with-has.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/support-global-calendar-systems.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/swipe-to-remove.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/visually-stable-font-fallbacks.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/visually-stable-mixed-fonts.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/user-experience/visually-texture-content.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/webmcp/agentic-forms.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/webmcp/agentic-javascript-tools.md
  • .agents/skills/frontend-platform/modern-web-guidance/guides/webmcp/webmcp.md
  • .agents/skills/frontend-platform/nothing-design/SKILL.md
  • .agents/skills/frontend-platform/nothing-design/references/components.md
  • .agents/skills/frontend-platform/nothing-design/references/examples.md
  • .agents/skills/frontend-platform/nothing-design/references/platform-mapping.md
  • .agents/skills/frontend-platform/nothing-design/references/tokens.md
  • .agents/skills/frontend-platform/performance/SKILL.md
  • .agents/skills/frontend-platform/seo/SKILL.md
  • .agents/skills/frontend-platform/vue/SKILL.md
  • .agents/skills/languages-typing/rust/rust-anti-patterns.md
  • .agents/skills/languages-typing/rust/rust-api-design.md
  • .agents/skills/languages-typing/rust/rust-async-patterns.md
  • .agents/skills/languages-typing/rust/rust-documentation.md
  • .agents/skills/languages-typing/rust/rust-error-handling.md
  • .agents/skills/languages-typing/rust/rust-linting.md
  • .agents/skills/languages-typing/rust/rust-memory.md
  • .agents/skills/languages-typing/rust/rust-naming.md
  • .agents/skills/languages-typing/rust/rust-testing.md
  • .agents/skills/languages-typing/rust/rust-tooling.md
  • .agents/skills/languages-typing/typescript/SKILL.md
  • .agents/skills/pinned-tag/SKILL.md
  • .agents/skills/testing/vitest/GENERATION.md
  • .agents/skills/testing/vitest/SKILL.md
  • .agents/skills/testing/vitest/references/advanced-environments.md
  • .agents/skills/testing/vitest/references/advanced-projects.md
  • .agents/skills/testing/vitest/references/advanced-type-testing.md
  • .agents/skills/testing/vitest/references/advanced-vi.md
  • .agents/skills/testing/vitest/references/core-cli.md
  • .agents/skills/testing/vitest/references/core-config.md
  • .agents/skills/testing/vitest/references/core-describe.md
  • .agents/skills/testing/vitest/references/core-expect.md
  • .agents/skills/testing/vitest/references/core-hooks.md
  • .agents/skills/testing/vitest/references/core-test-api.md
  • .agents/skills/testing/vitest/references/features-concurrency.md
  • .agents/skills/testing/vitest/references/features-context.md
  • .agents/skills/testing/vitest/references/features-coverage.md
  • .agents/skills/testing/vitest/references/features-filtering.md
  • .agents/skills/testing/vitest/references/features-mocking.md
  • .agents/skills/testing/vitest/references/features-snapshots.md
  • .github/workflows/ci.yml
  • .github/workflows/security-deep.yml
  • .gitignore
  • apps/rook/Cargo.toml
  • apps/rook/build.rs
  • apps/rook/dashboard/.editorconfig
  • apps/rook/dashboard/.gitattributes
  • apps/rook/dashboard/.gitignore
  • apps/rook/dashboard/README.md
  • apps/rook/dashboard/biome.json
  • apps/rook/dashboard/build.sh
  • apps/rook/dashboard/components.json
  • apps/rook/dashboard/e2e/tsconfig.json
  • apps/rook/dashboard/e2e/vue.spec.ts
  • apps/rook/dashboard/env.d.ts
  • apps/rook/dashboard/index.html
  • apps/rook/dashboard/package.json
  • apps/rook/dashboard/playwright.config.ts
  • apps/rook/dashboard/pnpm-workspace.yaml
  • apps/rook/dashboard/src/App.vue
  • apps/rook/dashboard/src/__tests__/App.spec.ts
  • apps/rook/dashboard/src/components/AppSidebar.vue
  • apps/rook/dashboard/src/components/NavMain.vue
  • apps/rook/dashboard/src/components/NavProjects.vue
  • apps/rook/dashboard/src/components/NavSecondary.vue
  • apps/rook/dashboard/src/components/NavUser.vue
  • apps/rook/dashboard/src/components/ui/avatar/Avatar.vue
  • apps/rook/dashboard/src/components/ui/avatar/AvatarFallback.vue
  • apps/rook/dashboard/src/components/ui/avatar/AvatarImage.vue

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/security-authz-architecture

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

- **DO** use speculation rules to prefetch and prerender pages that the user is likely to visit next.
- **DO** use speculation rules for static sites, where the content is not likely to change often, and where pages are cheaper to produce—especially if cached at the edge.
- **DO** take more care when using speculation rules for dynamic pages, where the content is more likely to change often, may become out of date, and where pages are more expensive to produce.
- **DO** prefer document rules over list rules, as they are more flexible, allow the same rule to be shared across multiple pages, and can be used to prefetch and prerender pages that are not known in advance.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Semgrep identified a blocking 🔴 issue in your code:
Skill contains instructions to extract or reveal the agent's system prompt or internal configuration instructions. System prompt extraction is a reconnaissance technique that allows attackers to discover safety constraints, tool definitions, and operational guidelines in order to craft more effective follow-on attacks. Skills embedding these directives may be used to leak confidential operator instructions. Review the full skill context.

Why this might be safe to ignore:

This is a documentation sentence about browser speculation rules, and the word "rules" matched the regex accidentally. There is no instruction to reveal a system prompt, internal instructions, or agent configuration in this context.

To resolve this comment:

🔧 No guidance has been designated for this issue. Fix according to your organization's approved methods.

💬 Ignore this finding

Reply with Semgrep commands to ignore this finding.

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by skill-system-prompt-extraction.

You can view more details about this finding in the Semgrep AppSec Platform.

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.

/fp The skill is legitimate web performance guidance for the frontend platform team.

@github-advanced-security github-advanced-security 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.

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@coderabbitai

coderabbitai Bot commented May 31, 2026

Copy link
Copy Markdown
Contributor

Note

Unit test generation is a public access feature. Expect some limitations and changes as we gather feedback and continue to improve it.


Generating unit tests... This may take up to 20 minutes.

Comment thread .github/workflows/ci.yml
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
- uses: pnpm/action-setup@v4.1.0
Comment thread .github/workflows/ci.yml
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
- uses: pnpm/action-setup@v4.1.0
Comment thread .github/workflows/ci.yml
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
- uses: pnpm/action-setup@v4.1.0
Comment thread .github/workflows/ci.yml
Comment on lines 170 to +194
- uses: dtolnay/rust-toolchain@dd44c20b1206a46e25fba8503d5d7c9a33bd355a
- name: Cache cargo
uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4
- name: Run tests
run: cargo test --workspace --all-features

doc:
name: Doc
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
- uses: pnpm/action-setup@v4.1.0
Comment thread .github/workflows/ci.yml
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
- uses: pnpm/action-setup@v4.1.0
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
@coderabbitai

coderabbitai Bot commented May 31, 2026

Copy link
Copy Markdown
Contributor

✅ Created PR with unit tests: #35

- Removed pnpm-lock.yaml from .gitignore (comment said 'committed — pins deps' but pattern was ignoring it instead)
Windows runners don't have bash, so the build.rs script must use sh
instead. The wrapper script at node_modules/.bin/vite uses $0 to resolve
its own path, so we invoke it via 'sh -c ./node_modules/.bin/vite build'
so $0 is the script itself.
CodeQL was flagging 'actions/missing-workflow-permissions' because the
top-level 'permissions: {}' was empty. Set contents:read at workflow
level to satisfy the code scanning rule.
@yacosta738
yacosta738 merged commit 82e7352 into main May 31, 2026
20 of 22 checks passed
@yacosta738
yacosta738 deleted the feat/security-authz-architecture branch May 31, 2026 07:34
This was referenced May 31, 2026
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