Skip to content

Pr/new plugins#3069

Open
moshloop wants to merge 8 commits into
mainfrom
pr/new-plugins
Open

Pr/new plugins#3069
moshloop wants to merge 8 commits into
mainfrom
pr/new-plugins

Conversation

@moshloop
Copy link
Copy Markdown
Member

@moshloop moshloop commented May 8, 2026

No description provided.

moshloop added 8 commits May 8, 2026 10:59
Add HTML login form for basic authentication with support for both HTML and JSON responses. Implement logout endpoint, bearer token auto-detection in browser login, and improved token management.

Key changes:
- Add ShowBasicLoginForm and BasicLogout handlers for basic auth
- Implement sanitizeNext and wantsHTML helpers for secure redirects
- Add rejectUnauthenticated to handle browser vs API client responses
- Extract bearer tokens with scope counting and audience matching
- Add browser teardown with graceful escalation (CDP close → SIGTERM → SIGKILL)
- Implement token auto-detection with configurable wait timeout
- Add context add command with automatic token resolution
- Refactor RandomBase64 to panic on error instead of returning error
- Replace custom StringList type with pq.StringArray in OIDC models
- Add BuildCommit global variable
- Fix /end_session endpoint name in skip auth paths
- Improve HTTP client observability in OIDC client

BREAKING CHANGE: RandomBase64 now panics on crypto/rand failure instead of returning an error
…ands

Add comprehensive CLI support for access control management and playbook operations:

- New `access` command hierarchy with subcommands for users, groups, roles, and matrix view
- Support for listing, getting, and filtering external users, groups, and roles
- Access matrix visualization with optional group expansion
- New `playbook list` command to enumerate available playbooks
- Enhanced `playbook run` to support both local YAML and remote API-based execution
- Remote playbook execution with polling, parameter passing, and status tracking
- New `plugin` command to invoke plugin operations directly
- Refactored `catalog` commands using clicky entity framework for consistent UX
- Added catalog tree visualization with relationship traversal
- Enhanced catalog get with sections for changes, insights, access logs, and playbook runs
- New database queries for access control and playbook listing
- SDK client methods for playbook operations and HTML response detection
- Comprehensive test coverage for CLI helpers and SDK functionality

Breaking changes:
- `catalog query` is now an alias for `catalog list --query`
- Catalog command structure reorganized under clicky entity framework
…ctions, plugin types, and catalog improvements

Add support for Access and AccessLogs section types in applications with corresponding UI filters and data structures. Introduce Plugin resource type for binary-backed Mission Control plugins with spec and status. Refactor FacetOptions to use embedded FacetRenderOptions struct. Add PDF configuration support to views. Enhance playbook listing to support fetching all playbooks without target filters. Add catalog report generation, config relationships, and bulk delete endpoints. Improve artifact handling with config change support and simplified blob-based downloads. Update OpenAPI schemas and CRDs accordingly.

BREAKING CHANGE: FacetOptions now embeds FacetRenderOptions instead of having PDFOptions field; playbook list endpoint now allows optional target parameters instead of requiring exactly one.
- Add .gavel.yaml configuration for betterleaks linting with rules to ignore kubernetes secrets and API keys in deployment files
- Update flanksource/clicky from v1.21.4 to v1.21.8
- Add new dependencies: flanksource/deps, fsnotify, golang-sql/sqlexp, hashicorp/go-plugin, hashicorp/golang-lru/v2, microsoft/go-mssqldb
- Add GORM database drivers for MySQL, PostgreSQL, and SQL Server as direct dependencies
- Expand .gitignore to exclude build artifacts, test reports, plugin outputs, and UI build files
- Reorganize go.mod to move previously indirect dependencies to direct requires section
- Update google.golang.org/protobuf from indirect to direct dependency
@gitguardian
Copy link
Copy Markdown

gitguardian Bot commented May 8, 2026

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
32461050 Triggered Generic Password 48c468e plugin/host/host_service.go View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 8, 2026

Important

Review skipped

Too many files!

This PR contains 289 files, which is 139 over the limit of 150.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 94400fe2-ef42-4895-9d43-4dfa51646133

📥 Commits

Reviewing files that changed from the base of the PR and between abc5412 and 0256c70.

⛔ Files ignored due to path filters (11)
  • go.sum is excluded by !**/*.sum
  • plugin/proto/plugin.pb.go is excluded by !**/*.pb.go
  • plugin/proto/plugin_grpc.pb.go is excluded by !**/*.pb.go
  • plugins/kubernetes-logs/ui-src/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • report/package-lock.json is excluded by !**/package-lock.json
  • report/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • ui/assets/favicon.svg is excluded by !**/*.svg
  • ui/assets/logo.svg is excluded by !**/*.svg
  • ui/frontend/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • ui/frontend/public/favicon.svg is excluded by !**/*.svg
  • ui/frontend/public/logo.svg is excluded by !**/*.svg
📒 Files selected for processing (289)
  • .gavel.yaml
  • .github/workflows/lint.yml
  • .github/workflows/test.yml
  • .gitignore
  • Makefile
  • Taskfile.yml
  • api/application.go
  • api/catalog_report.go
  • api/global.go
  • api/openapi-full.yaml
  • api/openapi.yaml
  • api/playbook.go
  • api/rbac_report.go
  • api/scraper_report.go
  • api/v1/playbook_actions.go
  • api/v1/plugin_types.go
  • api/v1/view_types.go
  • api/v1/zz_generated.deepcopy.go
  • api/view.go
  • api/zz_generated.deepcopy.go
  • application/application.go
  • application/render_facet.go
  • artifacts/controllers.go
  • auth/basic.go
  • auth/basic_static/embed.go
  • auth/basic_static/login.html
  • auth/middleware.go
  • auth/oidc/models.go
  • auth/oidc/routes.go
  • auth/oidc/storage.go
  • auth/oidc_test.go
  • auth/oidcclient/oidcclient.go
  • catalog/controllers.go
  • catalog/controllers_test.go
  • catalog/report_controllers.go
  • catalog/suite_test.go
  • cmd/access.go
  • cmd/access_groups.go
  • cmd/access_matrix.go
  • cmd/access_roles.go
  • cmd/access_users.go
  • cmd/application.go
  • cmd/auth_login.go
  • cmd/catalog.go
  • cmd/catalog_entity.go
  • cmd/catalog_get.go
  • cmd/catalog_get_test.go
  • cmd/catalog_report.go
  • cmd/catalog_tree.go
  • cmd/connection_browser.go
  • cmd/connection_browser_teardown.go
  • cmd/connection_test_cmd.go
  • cmd/context.go
  • cmd/context_test.go
  • cmd/jwt_secret.go
  • cmd/jwt_secret_test.go
  • cmd/playbook.go
  • cmd/playbook_test.go
  • cmd/plugin.go
  • cmd/rbac.go
  • cmd/root.go
  • cmd/server.go
  • cmd/view.go
  • config/crds/mission-control.flanksource.com_applications.yaml
  • config/crds/mission-control.flanksource.com_playbooks.yaml
  • config/crds/mission-control.flanksource.com_views.yaml
  • config/schemas/application.schema.json
  • config/schemas/playbook-spec.schema.json
  • config/schemas/playbook.schema.json
  • config/schemas/view.schema.json
  • connection/jwt.go
  • db/access_query.go
  • db/applications.go
  • db/playbooks.go
  • db/rbac.go
  • db/rbac_test.go
  • echo/get_resource.go
  • echo/search.go
  • echo/search_clicky.go
  • echo/serve.go
  • go.mod
  • main.go
  • mcp/access.go
  • pkg/httpobservability/httpobservability.go
  • playbook/controllers.go
  • playbook/playbook_test.go
  • playbook/webhook_test.go
  • plugin/controller/controller.go
  • plugin/controller/proxy.go
  • plugin/grpc.go
  • plugin/handshake.go
  • plugin/host/host_service.go
  • plugin/host/host_service_test.go
  • plugin/host/suite_test.go
  • plugin/proto/plugin.proto
  • plugin/registry/reconciler.go
  • plugin/registry/registry.go
  • plugin/sdk/clicky.go
  • plugin/sdk/host_client.go
  • plugin/sdk/sdk.go
  • plugin/sdk/serve.go
  • plugin/sdk/server.go
  • plugin/sdk/suite_test.go
  • plugin/sdk/version.go
  • plugin/sdk/version_test.go
  • plugin/supervisor/suite_test.go
  • plugin/supervisor/supervisor.go
  • plugin/supervisor/supervisor_test.go
  • plugin/supervisor/wire.go
  • plugins/kubernetes-logs/Plugin.yaml
  • plugins/kubernetes-logs/README.md
  • plugins/kubernetes-logs/client.go
  • plugins/kubernetes-logs/http.go
  • plugins/kubernetes-logs/internal/gen-checksum/main.go
  • plugins/kubernetes-logs/logs.go
  • plugins/kubernetes-logs/main.go
  • plugins/kubernetes-logs/postprocess.go
  • plugins/kubernetes-logs/resolve.go
  • plugins/kubernetes-logs/ui-src/index.html
  • plugins/kubernetes-logs/ui-src/package.json
  • plugins/kubernetes-logs/ui-src/pnpm-workspace.yaml
  • plugins/kubernetes-logs/ui-src/src/LogsApp.tsx
  • plugins/kubernetes-logs/ui-src/src/main.tsx
  • plugins/kubernetes-logs/ui-src/src/styles.css
  • plugins/kubernetes-logs/ui-src/src/version.ts
  • plugins/kubernetes-logs/ui-src/tsconfig.json
  • plugins/kubernetes-logs/ui-src/vite.config.ts
  • plugins/kubernetes-logs/ui_checksum.go
  • rbac_report/export.go
  • rbac_report/render_facet.go
  • rbac_report/report.go
  • report/.gitignore
  • report/Application.tsx
  • report/CatalogReport.tsx
  • report/FindingsReport.tsx
  • report/KitchenSink.tsx
  • report/MatrixDemo.tsx
  • report/RBACByUserReport.tsx
  • report/RBACMatrixReport.tsx
  • report/RBACReport.tsx
  • report/ViewReport.tsx
  • report/build-kitchen-sink.ts
  • report/catalog-report-types.ts
  • report/catalog/change_mappings.go
  • report/catalog/change_mappings_test.go
  • report/catalog/default-settings.yaml
  • report/catalog/expand_groups.go
  • report/catalog/expand_groups_test.go
  • report/catalog/export.go
  • report/catalog/render_facet.go
  • report/catalog/report.go
  • report/catalog/report_test.go
  • report/catalog/schema_contract_test.go
  • report/catalog/settings.go
  • report/catalog/settings_test.go
  • report/components/ApplicationDetails.tsx
  • report/components/ArtifactAppendix.tsx
  • report/components/AuditPage.tsx
  • report/components/BackupActivityCalendar.tsx
  • report/components/BackupChanges.tsx
  • report/components/BackupsSection.tsx
  • report/components/CatalogAccessLogsSection.tsx
  • report/components/CatalogAccessSection.tsx
  • report/components/CatalogList.tsx
  • report/components/ConfigChangesExamples.tsx
  • report/components/ConfigChangesSection.tsx
  • report/components/ConfigInsightsSection.tsx
  • report/components/ConfigItemCard.tsx
  • report/components/ConfigLink.tsx
  • report/components/ConfigRelationshipGraph.tsx
  • report/components/ConfigTreeSection.tsx
  • report/components/CoverPage.tsx
  • report/components/DeploymentChanges.tsx
  • report/components/DynamicSection.tsx
  • report/components/FindingsSection.tsx
  • report/components/GitRef.tsx
  • report/components/IncidentsSection.tsx
  • report/components/PageFooter.tsx
  • report/components/PageHeader.tsx
  • report/components/RBACChangelogSection.tsx
  • report/components/RBACChanges.tsx
  • report/components/RBACCoverContent.tsx
  • report/components/RBACMatrixSection.tsx
  • report/components/RBACResourceSection.tsx
  • report/components/RBACSummarySection.tsx
  • report/components/RBACUserSection.tsx
  • report/components/ScraperCard.tsx
  • report/components/ViewResultSection.tsx
  • report/components/change-section-utils.ts
  • report/components/config-change-entry.tsx
  • report/components/config-changes-builtin-extensions.tsx
  • report/components/config-changes-extension.ts
  • report/components/rbac-visual.tsx
  • report/components/utils.ts
  • report/config-types.ts
  • report/embed.go
  • report/facet.go
  • report/facet_test.go
  • report/finding-schema.json
  • report/icon-setup.ts
  • report/icons.ts
  • report/kitchen-sink-data.ts
  • report/kitchen-sink.json
  • report/kitchen-sink/ApplicationPage.tsx
  • report/kitchen-sink/CatalogPage.tsx
  • report/kitchen-sink/ChangesPage.tsx
  • report/kitchen-sink/ConfigComponentsPage.tsx
  • report/kitchen-sink/DynamicSectionsPage.tsx
  • report/kitchen-sink/InsightsAndGraphPage.tsx
  • report/kitchen-sink/KitchenSinkTypes.ts
  • report/kitchen-sink/LayoutComponentsPage.tsx
  • report/kitchen-sink/RBACPage.tsx
  • report/kitchen-sink/ViewPage.tsx
  • report/mission-control.ts
  • report/package.json
  • report/rbac-types.ts
  • report/sample-findings.json
  • report/scraper-types.ts
  • report/scraper/scraper.go
  • report/suite_test.go
  • report/testdata/kitchen-sink.yaml
  • report/types.ts
  • report/view-types.ts
  • sdk/client.go
  • sdk/client_test.go
  • tests/e2e/oidc/oidc_login_test.go
  • ui/assets.go
  • ui/bundle_checksum.go
  • ui/dev.go
  • ui/dev_test.go
  • ui/frontend/index.html
  • ui/frontend/package.json
  • ui/frontend/pnpm-workspace.yaml
  • ui/frontend/src/App.tsx
  • ui/frontend/src/CatalogSidebar.tsx
  • ui/frontend/src/CommandPalette.tsx
  • ui/frontend/src/ConfigIcon.test.ts
  • ui/frontend/src/ConfigIcon.tsx
  • ui/frontend/src/ItemView.tsx
  • ui/frontend/src/TypeView.tsx
  • ui/frontend/src/access/AccessBrowser.tsx
  • ui/frontend/src/api.ts
  • ui/frontend/src/api/access.test.ts
  • ui/frontend/src/api/access.ts
  • ui/frontend/src/api/configs.ts
  • ui/frontend/src/api/hooks.ts
  • ui/frontend/src/api/http.test.ts
  • ui/frontend/src/api/http.ts
  • ui/frontend/src/api/playbooks.test.ts
  • ui/frontend/src/api/playbooks.ts
  • ui/frontend/src/api/search.ts
  • ui/frontend/src/api/settings.ts
  • ui/frontend/src/api/types.ts
  • ui/frontend/src/buildTree.test.ts
  • ui/frontend/src/buildTree.ts
  • ui/frontend/src/components/ConfigItemSelector.tsx
  • ui/frontend/src/config-detail/CatalogReportDialog.test.ts
  • ui/frontend/src/config-detail/CatalogReportDialog.tsx
  • ui/frontend/src/config-detail/ConfigItemDetail.tsx
  • ui/frontend/src/config-detail/PluginTab.tsx
  • ui/frontend/src/config-detail/TagList.tsx
  • ui/frontend/src/config-detail/config-changes/BackupActivityCalendar.tsx
  • ui/frontend/src/config-detail/config-changes/BackupChanges.tsx
  • ui/frontend/src/config-detail/config-changes/ConfigChangesSection.tsx
  • ui/frontend/src/config-detail/config-changes/DeploymentChanges.tsx
  • ui/frontend/src/config-detail/config-changes/change-section-utils.ts
  • ui/frontend/src/config-detail/config-changes/config-change-entry.tsx
  • ui/frontend/src/config-detail/config-changes/config-changes-builtin-extensions.tsx
  • ui/frontend/src/config-detail/config-changes/config-changes-extension.ts
  • ui/frontend/src/config-detail/config-changes/configTypeIcon.tsx
  • ui/frontend/src/config-detail/config-changes/facet-components.tsx
  • ui/frontend/src/config-detail/config-changes/icon.tsx
  • ui/frontend/src/config-detail/config-changes/types.ts
  • ui/frontend/src/config-detail/config-changes/utils.ts
  • ui/frontend/src/config-detail/use-plugin-tabs.ts
  • ui/frontend/src/config-detail/utils.test.ts
  • ui/frontend/src/config-detail/utils.ts
  • ui/frontend/src/config-list.test.ts
  • ui/frontend/src/config-list.ts
  • ui/frontend/src/index.css
  • ui/frontend/src/layout/DetailPageLayout.tsx
  • ui/frontend/src/main.tsx
  • ui/frontend/src/playbooks/PlaybookBrowser.test.ts
  • ui/frontend/src/playbooks/PlaybookBrowser.tsx
  • ui/frontend/src/playbooks/playbook-ui-helpers.ts
  • ui/frontend/src/settings/SettingsBrowser.tsx
  • ui/frontend/tsconfig.json
  • ui/frontend/tsconfig.tsbuildinfo
  • ui/frontend/vite.config.ts

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 pr/new-plugins
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch pr/new-plugins

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.

@socket-security
Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm entities is 91.0% likely obfuscated

Confidence: 0.91

Location: Package overview

From: plugins/kubernetes-logs/ui-src/pnpm-lock.yamlnpm/@preact/preset-vite@2.10.5npm/entities@4.5.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/entities@4.5.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm entities is 91.0% likely obfuscated

Confidence: 0.91

Location: Package overview

From: plugins/kubernetes-logs/ui-src/pnpm-lock.yamlnpm/@flanksource/clicky-ui@0.2.1npm/entities@6.0.1

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/entities@6.0.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

Comment thread auth/basic.go
if raw == "" {
return "/ui"
}
if !strings.HasPrefix(raw, "/") || strings.HasPrefix(raw, "//") {
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