cec0d92c25
Generalize the half-built discovery plugins into a real plugin system: plugin TYPES (the plugins/<category>/<type>.js modules with manifests) and loadable, configurable, multi-copy plugin INSTANCES (PluginInstance ORM model) managed from a dedicated /plugins page and /api/plugins API, with per-instance secrets in OpenBao at secret/plugins/<id>/conf. - plugin_registry.js: getTypes/getModule/splitConfig/mask + required-field helpers - PluginInstance model (Sequelize): id/pluginType/category/name/slug(unique)/ enabled/cron/config(json, non-secret)/lastRun*; registered in models/index.js - plugin_secrets.js: read/write/remove/mergeForRun over @simpleworkjs/bao-conf - scheduler.js: schedules from the DB registry; per-instance stable BullMQ JobScheduler ids (plugin:<id>) for load/unload; legacy migration from conf.discovery.plugins on first boot (idempotent, empty-table-guarded) - api_plugins.js (replaces routes/plugins.js): types/list/get/create/update/ secrets/test/load/unload/run/delete/runs; admin-gated; secrets always masked - /plugins page (plugins.ejs) + nav; Agents & Scheduler tab removed from /directory; /docs/agents aliased to /docs/plugins - proxmox/unifi/nmap gained manifests (configSchema/validate/run alias) - tests/plugins.test.js: registry unit + plugin_secrets (mocked bao-conf) + PluginInstance model round-trip/unique-slug - docs (plugins.md, vault.md, _config.yml, API.md) + 1.16.1 -> 1.17.0 Requires theta-suite >= v1.30.1 for the sso-broker secret/plugins/* grant; fails-soft with a clear error if absent. Co-Authored-By: Claude <noreply@anthropic.com>
56 lines
1.6 KiB
YAML
56 lines
1.6 KiB
YAML
title: SSO Manager
|
|
description: A self-hosted OpenID Connect provider with a bundled OpenLDAP directory and a web management UI, for home labs and small businesses that want their own identity provider.
|
|
url: "https://theta42.github.io"
|
|
baseurl: "/sso-manager-node"
|
|
logo: /assets/img/theta42.svg
|
|
lang: en_US
|
|
|
|
plugins:
|
|
- jekyll-seo-tag
|
|
- jekyll-sitemap
|
|
|
|
github:
|
|
repository_url: https://github.com/theta42/sso-manager-node
|
|
zip_url: https://github.com/theta42/sso-manager-node/archive/refs/heads/master.zip
|
|
tar_url: https://github.com/theta42/sso-manager-node/archive/refs/heads/master.tar.gz
|
|
repository_name: theta42/sso-manager-node
|
|
|
|
nav:
|
|
- title: Home
|
|
page: /
|
|
icon: fa-house
|
|
- title: Deployment
|
|
page: /deployment.html
|
|
icon: fa-server
|
|
- title: Configuration
|
|
page: /configuration.html
|
|
icon: fa-gears
|
|
- title: OAuth
|
|
page: /oauth.html
|
|
icon: fa-key
|
|
- title: LDAP
|
|
page: /ldap.html
|
|
icon: fa-address-book
|
|
- title: Directory
|
|
page: /directory.html
|
|
icon: fa-server
|
|
- title: Plugins
|
|
page: /plugins.html
|
|
icon: fa-plug
|
|
# API.md lives at the repo root, not under docs/, so Jekyll never renders an
|
|
# api.html for it — link the source directly, same as the Changelog.
|
|
- title: API
|
|
url: https://github.com/theta42/sso-manager-node/blob/master/API.md
|
|
icon: fa-code
|
|
- title: Changelog
|
|
url: https://github.com/theta42/sso-manager-node/blob/master/CHANGELOG.md
|
|
icon: fa-list
|
|
|
|
defaults:
|
|
- scope:
|
|
path: ""
|
|
type: "pages"
|
|
values:
|
|
layout: default
|
|
image: /assets/img/theta42.svg
|