mirror of
https://github.com/fosrl/pangolin.git
synced 2026-03-15 03:17:19 -05:00
[PR #1733] [MERGED] feat: blueprint ui on dashboard #1199
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/fosrl/pangolin/pull/1733
Author: @Fredkiss3
Created: 10/22/2025
Status: ✅ Merged
Merged: 10/30/2025
Merged by: @oschwartz10612
Base:
dev← Head:feat-blueprint-ui-on-dashboard📝 Commits (10+)
3633e02🔨 run next server with turbopack (easy win)5fd104b🗃️ addbluePrintRunsmodelba74558🎨 format with prettierd84ee3d🌐 add blueprint section title in the sidebar in messages (en-USfor now)e575fae🚧 SQLite database schema with modes (is it okay ?)202d207🚧 add blueprint to the sidebar and scaffold page6521b66🍱 add jsonschema for blueprint yaml validation9024b2a🗃️ finish db schemas for blueprints259cea1✨ add API endpoint for listing blueprintsa5b48ab🚧 blueprints page📊 Changes
45 files changed (+1695 additions, -142 deletions)
View changed files
➕
docker-compose.drizzle.yml(+15 -0)📝
docker-compose.pgr.yml(+1 -1)📝
messages/en-US.json(+19 -0)📝
next.config.mjs(+2 -1)📝
package-lock.json(+114 -0)📝
package.json(+6 -0)📝
server/auth/actions.ts(+2 -1)📝
server/db/pg/schema/schema.ts(+17 -2)📝
server/db/sqlite/driver.ts(+7 -2)📝
server/db/sqlite/schema/schema.ts(+18 -0)📝
server/lib/blueprints/applyBlueprint.ts(+59 -11)📝
server/lib/blueprints/applyNewtDockerBlueprint.ts(+6 -1)📝
server/nextServer.ts(+1 -1)📝
server/openApi.ts(+2 -1)📝
server/routers/blueprints/applyJSONBlueprint.ts(+9 -23)➕
server/routers/blueprints/applyYAMLBlueprint.ts(+146 -0)➕
server/routers/blueprints/getBlueprint.ts(+110 -0)➕
server/routers/blueprints/index.ts(+4 -0)➕
server/routers/blueprints/listBlueprints.ts(+144 -0)➕
server/routers/blueprints/types.ts(+7 -0)...and 25 more files
📄 Description
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Main changes:
applyBlueprintfunction to save the result of a blueprint run in the database, to not break the existing the logic, the blueprint json contents is parsed to yaml when saving its content in the database, and a name is generated with faker if not providedOther changes:
applyBlueprintfrom the integration API toapplyJSONBlueprintand put all the blueprint API endpoints intoblueprints/folderdevelopmentfor sqlite drivercache(getOrg)is called, the current way it's done doesn't cache (or technically deduplicate) anything, it's just executing the function everytime it's caleld.cacheneeds to be declared on the top level to actually deduplicate function calls, this way the functiongetOrgonly gets executed once if called at multiple places during the processing of a requestc7df70143e/src/app/%5BorgId%5D/settings/domains/page.tsx (L41)c7df70143e/src/lib/api/getCachedOrg.ts (L1-L12)not-found.tsxpage at the settings layout level to not hide the sidebar if there is a 404.asChild(asChildrequire only a single child component)Screenshots
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.