@synap-core/workspace-templates 0.11.0 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +483 -0
- package/automations/bookmark-enrichment.automation.json +321 -0
- package/automations/github-pr-events.automation.json +505 -0
- package/automations/mail-feed.automation.json +86 -0
- package/automations/ship-a-change-checks-green.automation.json +106 -0
- package/automations/ship-a-change-checks-red.automation.json +106 -0
- package/automations/ship-a-change-deployed.automation.json +56 -0
- package/automations/ship-a-change-pr-merged.automation.json +110 -0
- package/automations/ship-a-change-pr-opened.automation.json +104 -0
- package/automations/url-bookmark-capture.automation.json +132 -0
- package/capabilities/agency-skills.capability.json +157 -0
- package/capabilities/apify.capability.json +265 -0
- package/capabilities/apollo.capability.json +120 -0
- package/capabilities/arch-backend.capability.json +97 -0
- package/capabilities/arch-client-intelligence.capability.json +401 -0
- package/capabilities/backblaze-b2.capability.json +205 -0
- package/capabilities/cal-com.capability.json +266 -0
- package/capabilities/canva.capability.json +274 -0
- package/capabilities/claude-code-routines.capability.json +172 -0
- package/capabilities/claude-managed-agents.capability.json +215 -0
- package/capabilities/client-comms-report.capability.json +246 -0
- package/capabilities/content-idea-to-production.capability.json +29 -0
- package/capabilities/datagouv.capability.json +315 -0
- package/capabilities/discord-bot.capability.json +157 -0
- package/capabilities/dropbox.capability.json +281 -0
- package/capabilities/exa.capability.json +109 -0
- package/capabilities/fal-ai.capability.json +83 -0
- package/capabilities/fal-media-lab.capability.json +158 -0
- package/capabilities/fireflies.capability.json +191 -0
- package/capabilities/freellmapi.capability.json +114 -0
- package/capabilities/generic-apikey.capability.json +92 -0
- package/capabilities/github-merge.capability.json +99 -0
- package/capabilities/github-read.capability.json +325 -0
- package/capabilities/governance-tighten-recommender.capability.json +81 -0
- package/capabilities/jev.capability.json +226 -0
- package/capabilities/lead-conversion-enrollment.capability.json +246 -0
- package/capabilities/mail-feed.capability.json +277 -0
- package/capabilities/mailgun.capability.json +52 -0
- package/capabilities/nango-google.capability.json +639 -0
- package/capabilities/notion.capability.json +417 -0
- package/capabilities/omniroute.capability.json +137 -0
- package/capabilities/posthog-analytics.capability.json +258 -0
- package/capabilities/postiz.capability.json +467 -0
- package/capabilities/proactive-digest.capability.json +190 -0
- package/capabilities/proton.capability.json +288 -0
- package/capabilities/replicate-rvm.capability.json +97 -0
- package/capabilities/research-methods.capability.json +57 -0
- package/capabilities/shopify.capability.json +395 -0
- package/capabilities/slack.capability.json +369 -0
- package/capabilities/stripe.capability.json +420 -0
- package/capabilities/telegram-bridge.capability.json +56 -0
- package/capabilities/treg.capability.json +102 -0
- package/capabilities/unipile-linkedin.capability.json +471 -0
- package/capabilities/vercel.capability.json +424 -0
- package/dist/define-CPS0n8BV.d.ts +1331 -0
- package/dist/index.d.ts +189 -900
- package/dist/index.js +24654 -21639
- package/dist/index.js.map +1 -1
- package/dist/wire.d.ts +222 -0
- package/dist/wire.js +77 -0
- package/dist/wire.js.map +1 -0
- package/package.json +41 -27
- package/packs/bookmark-views-pack.json +33 -0
- package/packs/crm-pack.json +76 -0
- package/packs/customer-profile.json +28 -0
- package/packs/deep-research.playbook.json +30 -0
- package/packs/event-views-pack.json +33 -0
- package/packs/habit-profile.json +27 -0
- package/packs/hr-pack.json +54 -0
- package/packs/invoice-profile.json +28 -0
- package/packs/knowledge-base-pack.json +56 -0
- package/packs/meeting-profile.json +29 -0
- package/packs/product-profile.json +30 -0
- package/packs/project-management-pack.json +49 -0
- package/packs/recipe-profile.json +29 -0
- package/packs/task-views-pack.json +39 -0
- package/retired.yaml +136 -0
- package/skills/app-factory-build-slice/SKILL.md +70 -0
- package/skills/app-factory-build-slice.catalog.json +17 -0
- package/skills/app-factory-design-canvas/SKILL.md +96 -0
- package/skills/app-factory-design-canvas.catalog.json +17 -0
- package/skills/app-factory-design-review/SKILL.md +99 -0
- package/skills/app-factory-design-review.catalog.json +18 -0
- package/skills/app-factory-research/SKILL.md +123 -0
- package/skills/app-factory-research.catalog.json +17 -0
- package/skills/bookmark-enrichment/SKILL.md +40 -0
- package/skills/carousel-format/carousel-format.skill.json +18 -0
- package/skills/collage-broll/collage-broll.skill.json +20 -0
- package/skills/content-taste/content-taste.skill.json +18 -0
- package/skills/creative-director/creative-director.skill.json +18 -0
- package/skills/design-critique/SKILL.md +135 -0
- package/skills/design-critique.catalog.json +12 -0
- package/skills/designing-with-real-components/SKILL.md +140 -0
- package/skills/designing-with-real-components.catalog.json +12 -0
- package/skills/edit-loop/edit-loop.skill.json +25 -0
- package/skills/facecam-edit/facecam-edit.skill.json +24 -0
- package/skills/mapping-the-server/SKILL.md +54 -0
- package/skills/math-explainer-manimgx/math-explainer-manimgx.skill.json +20 -0
- package/skills/motion-quality-gates/motion-quality-gates.skill.json +20 -0
- package/skills/open-design-edit/open-design-edit.skill.json +24 -0
- package/skills/reading-client-progress/SKILL.md +65 -0
- package/skills/routing-to-channels/SKILL.md +54 -0
- package/skills/stellar-scf-grants-advisor/ASSOCIATE-CHEATSHEET.md +133 -0
- package/skills/stellar-scf-grants-advisor/ASSOCIATE-ONBOARDING-GUIDE.md +761 -0
- package/skills/stellar-scf-grants-advisor/CLIENT-FAQ.md +181 -0
- package/skills/stellar-scf-grants-advisor/PARTNER-HANDOVER.md +130 -0
- package/skills/stellar-scf-grants-advisor/SKILL.md +102 -0
- package/skills/stellar-scf-grants-advisor/examples/README.md +43 -0
- package/skills/stellar-scf-grants-advisor/examples/chat-summary-templates.md +158 -0
- package/skills/stellar-scf-grants-advisor/examples/corpus-comparable-rows.md +136 -0
- package/skills/stellar-scf-grants-advisor/examples/q10-team-rewrites.md +109 -0
- package/skills/stellar-scf-grants-advisor/examples/q2-description-rewrites.md +88 -0
- package/skills/stellar-scf-grants-advisor/examples/q6-integration-rewrites.md +107 -0
- package/skills/stellar-scf-grants-advisor/examples/tranche-structures.md +176 -0
- package/skills/stellar-scf-grants-advisor/reference/01-methodology.md +96 -0
- package/skills/stellar-scf-grants-advisor/reference/02-scoring-framework.md +199 -0
- package/skills/stellar-scf-grants-advisor/reference/03-rejection-patterns.md +241 -0
- package/skills/stellar-scf-grants-advisor/reference/04-winner-patterns.md +120 -0
- package/skills/stellar-scf-grants-advisor/reference/05-comeback-patterns.md +92 -0
- package/skills/stellar-scf-grants-advisor/reference/06-budget-benchmarks.md +125 -0
- package/skills/stellar-scf-grants-advisor/reference/07-integration-list.md +147 -0
- package/skills/stellar-scf-grants-advisor/reference/08-abstract-fields.md +258 -0
- package/skills/stellar-scf-grants-advisor/reference/09-build-fields.md +259 -0
- package/skills/stellar-scf-grants-advisor/reference/10-corpus-winners.md +135 -0
- package/skills/stellar-scf-grants-advisor/reference/11-corpus-rejects.md +267 -0
- package/skills/stellar-scf-grants-advisor/reference/12-client-communication.md +131 -0
- package/skills/stellar-scf-grants-advisor/reference/13-excel-output-spec.md +199 -0
- package/skills/stellar-scf-grants-advisor/reference/14-worked-examples.md +160 -0
- package/skills/stellar-scf-grants-advisor/templates/abstract-review-builder.py +253 -0
- package/skills/stellar-scf-grants-advisor/templates/build-review-builder.py +213 -0
- package/skills/video-direction/video-direction.skill.json +20 -0
- package/skills/video-style-vocabulary/video-style-vocabulary.skill.json +20 -0
- package/skills/video-toolbox/video-toolbox.skill.json +20 -0
- package/src/__fixtures__/lifecycle-presets.flat-before.json +205 -0
- package/src/agency-os.yaml +122 -0
- package/src/agent-os-skill-slugs.test.ts +65 -0
- package/src/apify-social-reader.test.ts +317 -0
- package/src/base.template.test.ts +25 -19
- package/src/base.yaml +95 -39
- package/src/blockchain-ecosystem.yaml +1 -0
- package/src/brand-library.yaml +525 -14
- package/src/builder-dev-fold.template.test.ts +113 -0
- package/src/builder.yaml +798 -92
- package/src/business-model-catalog-description.test.ts +47 -0
- package/src/business-model-grp.template.test.ts +214 -0
- package/src/business-model.yaml +598 -0
- package/src/catalog-safety.test.ts +198 -0
- package/src/catalog.template-items.test.ts +75 -0
- package/src/catalog.ts +85 -2
- package/src/civic-france.yaml +102 -0
- package/src/concept-guard.test.ts +28 -8
- package/src/concept-guard.ts +2 -2
- package/src/content-creation.template.test.ts +52 -0
- package/src/content-creation.yaml +192 -0
- package/src/content-os.edit-loop.template.test.ts +210 -0
- package/src/content-os.publish-due-posts.template.test.ts +261 -0
- package/src/content-os.template.test.ts +322 -0
- package/src/content-os.video-takes.template.test.ts +338 -0
- package/src/content-os.work-a-take.template.test.ts +125 -0
- package/src/content-os.yaml +1830 -39
- package/src/content-studio-retired.template.test.ts +82 -0
- package/src/corpus-flow-validity.test.ts +4 -5
- package/src/crm-absorbs-outreach.template.test.ts +117 -0
- package/src/crm-build-plan.template.test.ts +128 -0
- package/src/crm-lists.template.test.ts +96 -0
- package/src/crm-messages-cadence.template.test.ts +164 -0
- package/src/crm-one-send-door.template.test.ts +65 -0
- package/src/crm.yaml +1456 -181
- package/src/decisions-wave.template.test.ts +186 -0
- package/src/define.ts +130 -17
- package/src/design-to-implementation.template.test.ts +94 -0
- package/src/dist-freshness.test.ts +97 -0
- package/src/domain-template-type.test.ts +75 -0
- package/src/ecosystem.yaml +27 -66
- package/src/enterprise-os.yaml +10 -134
- package/src/facecam-edit.audio-studio.test.ts +188 -0
- package/src/fal-generate-image.test.ts +200 -0
- package/src/fal-media-lab-pod-files.test.ts +180 -0
- package/src/finance.yaml +254 -1
- package/src/foundation.yaml +130 -28
- package/src/frame-host-modules.d.mts +6 -0
- package/src/frame-host-modules.mjs +58 -0
- package/src/generate.mjs +9 -3
- package/src/github-merge.test.ts +210 -0
- package/src/grants.yaml +57 -17
- package/src/hr.yaml +39 -6
- package/src/index.ts +36 -1
- package/src/intent.test.ts +161 -0
- package/src/internal-runbook.yaml +19 -1
- package/src/jev.test.ts +356 -0
- package/src/legal.yaml +33 -1
- package/src/life-os.yaml +65 -240
- package/src/lifecycle-coverage.test.ts +124 -0
- package/src/lifecycle-declarations.test.ts +252 -0
- package/src/lifecycle-presets.test.ts +468 -0
- package/src/lifecycle-presets.ts +494 -0
- package/src/lifecycle-stuck.test.ts +46 -0
- package/src/lifecycle-waits.parity.test.ts +319 -0
- package/src/marketing.yaml +108 -4
- package/src/meetings-knowledge.yaml +18 -0
- package/src/networking.yaml +23 -2
- package/src/operations.yaml +304 -4
- package/src/pipeline-views.template.test.ts +88 -0
- package/src/playbook-goal-placeholders.test.ts +57 -0
- package/src/postiz-contract.test.ts +134 -0
- package/src/presentation-declarations.test.ts +174 -0
- package/src/process-contract.validate.test.ts +352 -0
- package/src/project-management.yaml +39 -740
- package/src/publish-body.d.mts +29 -0
- package/src/publish-body.mjs +74 -0
- package/src/publish-body.test.ts +74 -0
- package/src/publish-official-lib.test.ts +176 -0
- package/src/replicate-rvm.test.ts +504 -0
- package/src/research-base.yaml +119 -20
- package/src/research-decision.yaml +60 -3
- package/src/reserved-profile-slugs.test.ts +83 -0
- package/src/retired-goal-kinds.test.ts +58 -0
- package/src/role-reference-and-step-domain.test.ts +192 -0
- package/src/seed-obligation.test.ts +176 -0
- package/src/send-message-maps.test.ts +227 -0
- package/src/shared-role-ssot.test.ts +42 -1
- package/src/ship-a-change.template.test.ts +177 -0
- package/src/skills.test.ts +170 -0
- package/src/social.yaml +85 -27
- package/src/space-packages.freshness.test.ts +97 -0
- package/src/space-packages.generated.ts +40 -0
- package/src/space-packages.test.ts +125 -0
- package/src/space-packages.ts +73 -0
- package/src/start.test.ts +188 -0
- package/src/task-intents.test.ts +293 -0
- package/src/templates.ts +21639 -21522
- package/src/types.ts +443 -60
- package/src/unipile-publish-post.test.ts +162 -0
- package/src/validate-flow.drift.test.ts +2 -3
- package/src/validate-flow.ts +32 -2
- package/src/validate-onboarding.test.ts +59 -0
- package/src/validate.test.ts +156 -3
- package/src/validate.ts +1384 -7
- package/src/wire-core.ts +231 -0
- package/src/wire.test.ts +159 -0
- package/src/wire.ts +107 -0
- package/src/__fixtures__/report-automation-flow.json +0 -393
- package/src/agent-fleet.yaml +0 -1645
- package/src/business-developer.template.test.ts +0 -351
- package/src/business-developer.yaml +0 -860
- package/src/content-studio.yaml +0 -361
- package/src/dev-dashboard.yaml +0 -990
- package/src/outreach-comms.yaml +0 -486
- package/src/the-arch.yaml +0 -201
package/src/dev-dashboard.yaml
DELETED
|
@@ -1,990 +0,0 @@
|
|
|
1
|
-
# Dev Dashboard workspace template — Infrastructure Command Center
|
|
2
|
-
# Internal DevOps inventory product. Union of:
|
|
3
|
-
# synap-backend/templates/packages/dev-dashboard.package.json (primary)
|
|
4
|
-
# synap-control-plane-api/templates/Synap Dev Dashboard.json (cross-check, richer seed data)
|
|
5
|
-
# Validated against types.ts at build time.
|
|
6
|
-
# NOTE: distinct from builder.yaml (the DevPlane + agent layer). Both are kept.
|
|
7
|
-
|
|
8
|
-
meta:
|
|
9
|
-
slug: dev-dashboard
|
|
10
|
-
domain: build
|
|
11
|
-
name: "Synap Dev — Infrastructure Command Center"
|
|
12
|
-
description: "Internal DevOps dashboard for monitoring Synap infrastructure. Tracks services, vendors, and environments with health status, architecture flow map, and quick access to admin panels."
|
|
13
|
-
icon: server
|
|
14
|
-
color: "#3B82F6"
|
|
15
|
-
tags: [devops, infrastructure, monitoring, services, vendors, credentials]
|
|
16
|
-
isPublic: false
|
|
17
|
-
|
|
18
|
-
workspace:
|
|
19
|
-
name: "Synap Dev — Infrastructure Command Center"
|
|
20
|
-
description: "Internal DevOps dashboard for monitoring Synap infrastructure. Tracks services, vendors, and environments with health status, architecture flow map, and quick access to admin panels."
|
|
21
|
-
proposalId: dev-dashboard-v1
|
|
22
|
-
subtype: infrastructure
|
|
23
|
-
workspaceType: operational
|
|
24
|
-
|
|
25
|
-
profiles:
|
|
26
|
-
- slug: service
|
|
27
|
-
displayName: Service
|
|
28
|
-
icon: server
|
|
29
|
-
color: "#3B82F6"
|
|
30
|
-
description: "A Synap infrastructure service or application with monitoring, deployment, and connection details."
|
|
31
|
-
scope: WORKSPACE
|
|
32
|
-
properties:
|
|
33
|
-
- slug: service-type
|
|
34
|
-
label: Service Type
|
|
35
|
-
valueType: string
|
|
36
|
-
inputType: select
|
|
37
|
-
enumValues: [Frontend, Backend API, Worker, Bridge, Landing Page]
|
|
38
|
-
- slug: service-url
|
|
39
|
-
label: Service URL
|
|
40
|
-
valueType: string
|
|
41
|
-
placeholder: "https://..."
|
|
42
|
-
constraints:
|
|
43
|
-
format: url
|
|
44
|
-
- slug: github-url
|
|
45
|
-
label: GitHub URL
|
|
46
|
-
valueType: string
|
|
47
|
-
placeholder: "https://github.com/..."
|
|
48
|
-
constraints:
|
|
49
|
-
format: url
|
|
50
|
-
- slug: health-endpoint
|
|
51
|
-
label: Health Check URL
|
|
52
|
-
valueType: string
|
|
53
|
-
placeholder: "https://.../health"
|
|
54
|
-
constraints:
|
|
55
|
-
format: url
|
|
56
|
-
- slug: deploy-url
|
|
57
|
-
label: Deploy Dashboard URL
|
|
58
|
-
valueType: string
|
|
59
|
-
placeholder: "https://..."
|
|
60
|
-
constraints:
|
|
61
|
-
format: url
|
|
62
|
-
- slug: server-host
|
|
63
|
-
label: Server Host (SSH)
|
|
64
|
-
valueType: string
|
|
65
|
-
placeholder: "user@host"
|
|
66
|
-
- slug: admin-panel-url
|
|
67
|
-
label: Admin Panel URL
|
|
68
|
-
valueType: string
|
|
69
|
-
placeholder: "https://..."
|
|
70
|
-
constraints:
|
|
71
|
-
format: url
|
|
72
|
-
- slug: monitoring-url
|
|
73
|
-
label: Monitoring URL
|
|
74
|
-
valueType: string
|
|
75
|
-
placeholder: "https://..."
|
|
76
|
-
constraints:
|
|
77
|
-
format: url
|
|
78
|
-
- slug: docs-url
|
|
79
|
-
label: Documentation URL
|
|
80
|
-
valueType: string
|
|
81
|
-
placeholder: "https://..."
|
|
82
|
-
constraints:
|
|
83
|
-
format: url
|
|
84
|
-
- slug: health-status
|
|
85
|
-
label: Health Status
|
|
86
|
-
valueType: string
|
|
87
|
-
inputType: select
|
|
88
|
-
enumValues: [Healthy, Degraded, Down, Unknown]
|
|
89
|
-
- slug: tech-stack
|
|
90
|
-
label: Tech Stack
|
|
91
|
-
valueType: array
|
|
92
|
-
- slug: port
|
|
93
|
-
label: Port
|
|
94
|
-
valueType: number
|
|
95
|
-
placeholder: "3000"
|
|
96
|
-
- slug: environment
|
|
97
|
-
label: Environment
|
|
98
|
-
valueType: string
|
|
99
|
-
inputType: select
|
|
100
|
-
enumValues: [Production, Staging, Development]
|
|
101
|
-
- slug: deployment-branch
|
|
102
|
-
label: Deployment Branch
|
|
103
|
-
valueType: string
|
|
104
|
-
placeholder: "main"
|
|
105
|
-
- slug: last-deploy
|
|
106
|
-
label: Last Deploy
|
|
107
|
-
valueType: date
|
|
108
|
-
- slug: service-notes
|
|
109
|
-
label: Notes
|
|
110
|
-
valueType: string
|
|
111
|
-
inputType: textarea
|
|
112
|
-
|
|
113
|
-
- slug: vendor
|
|
114
|
-
displayName: Vendor
|
|
115
|
-
icon: package
|
|
116
|
-
color: "#8B5CF6"
|
|
117
|
-
description: "External services, tools, and providers used by the Synap platform."
|
|
118
|
-
scope: WORKSPACE
|
|
119
|
-
profileKind: role
|
|
120
|
-
applicableKinds:
|
|
121
|
-
- company
|
|
122
|
-
properties:
|
|
123
|
-
- slug: vendor-type
|
|
124
|
-
label: Vendor Type
|
|
125
|
-
valueType: string
|
|
126
|
-
inputType: select
|
|
127
|
-
enumValues:
|
|
128
|
-
[Hosting, AI, Auth, Database, Monitoring, CI/CD, DNS, Email, Other]
|
|
129
|
-
- slug: vendor-url
|
|
130
|
-
label: Vendor URL
|
|
131
|
-
valueType: string
|
|
132
|
-
placeholder: "https://..."
|
|
133
|
-
constraints:
|
|
134
|
-
format: url
|
|
135
|
-
- slug: admin-url
|
|
136
|
-
label: Admin Console URL
|
|
137
|
-
valueType: string
|
|
138
|
-
placeholder: "https://..."
|
|
139
|
-
constraints:
|
|
140
|
-
format: url
|
|
141
|
-
- slug: docs-url
|
|
142
|
-
label: Documentation URL
|
|
143
|
-
valueType: string
|
|
144
|
-
placeholder: "https://..."
|
|
145
|
-
constraints:
|
|
146
|
-
format: url
|
|
147
|
-
- slug: status-page-url
|
|
148
|
-
label: Status Page URL
|
|
149
|
-
valueType: string
|
|
150
|
-
placeholder: "https://status.example.com"
|
|
151
|
-
constraints:
|
|
152
|
-
format: url
|
|
153
|
-
- slug: api-key-ref
|
|
154
|
-
label: API Key
|
|
155
|
-
valueType: string
|
|
156
|
-
- slug: pricing-model
|
|
157
|
-
label: Pricing Model
|
|
158
|
-
valueType: string
|
|
159
|
-
inputType: select
|
|
160
|
-
enumValues: [Free, Pay-as-you-go, Monthly, Annual]
|
|
161
|
-
- slug: monthly-cost
|
|
162
|
-
label: "Monthly Cost (€)"
|
|
163
|
-
valueType: number
|
|
164
|
-
placeholder: "0"
|
|
165
|
-
- slug: vendor-status
|
|
166
|
-
label: Status
|
|
167
|
-
valueType: string
|
|
168
|
-
inputType: select
|
|
169
|
-
enumValues: [Active, Trial, Deprecated]
|
|
170
|
-
- slug: vendor-notes
|
|
171
|
-
label: Notes
|
|
172
|
-
valueType: string
|
|
173
|
-
inputType: textarea
|
|
174
|
-
|
|
175
|
-
- slug: environment
|
|
176
|
-
displayName: Environment
|
|
177
|
-
icon: cloud
|
|
178
|
-
color: "#10B981"
|
|
179
|
-
description: "Deployment environments for Synap services (production, staging, dev)."
|
|
180
|
-
scope: WORKSPACE
|
|
181
|
-
properties:
|
|
182
|
-
- slug: env-type
|
|
183
|
-
label: Environment Type
|
|
184
|
-
valueType: string
|
|
185
|
-
inputType: select
|
|
186
|
-
enumValues: [Production, Staging, Development, Preview]
|
|
187
|
-
- slug: env-url
|
|
188
|
-
label: Base URL
|
|
189
|
-
valueType: string
|
|
190
|
-
placeholder: "https://..."
|
|
191
|
-
constraints:
|
|
192
|
-
format: url
|
|
193
|
-
- slug: branch
|
|
194
|
-
label: Deployed Branch
|
|
195
|
-
valueType: string
|
|
196
|
-
placeholder: "main"
|
|
197
|
-
- slug: last-deploy
|
|
198
|
-
label: Last Deploy
|
|
199
|
-
valueType: date
|
|
200
|
-
- slug: env-status
|
|
201
|
-
label: Status
|
|
202
|
-
valueType: string
|
|
203
|
-
inputType: select
|
|
204
|
-
enumValues: [Active, Maintenance, Down]
|
|
205
|
-
- slug: env-notes
|
|
206
|
-
label: Notes
|
|
207
|
-
valueType: string
|
|
208
|
-
inputType: textarea
|
|
209
|
-
|
|
210
|
-
- slug: repository
|
|
211
|
-
displayName: Repository
|
|
212
|
-
icon: git-branch
|
|
213
|
-
color: "#F97316"
|
|
214
|
-
description: "A Git repository with branch info, CI status, and contributor activity."
|
|
215
|
-
scope: WORKSPACE
|
|
216
|
-
properties:
|
|
217
|
-
- slug: repo-url
|
|
218
|
-
label: Repository URL
|
|
219
|
-
valueType: string
|
|
220
|
-
placeholder: "https://github.com/..."
|
|
221
|
-
constraints:
|
|
222
|
-
format: url
|
|
223
|
-
- slug: main-branch
|
|
224
|
-
label: Main Branch
|
|
225
|
-
valueType: string
|
|
226
|
-
placeholder: "main"
|
|
227
|
-
- slug: active-branches
|
|
228
|
-
label: Active Branches
|
|
229
|
-
valueType: array
|
|
230
|
-
- slug: ci-status
|
|
231
|
-
label: CI Status
|
|
232
|
-
valueType: string
|
|
233
|
-
inputType: select
|
|
234
|
-
enumValues: [Passing, Failing, Pending, Unknown]
|
|
235
|
-
- slug: ci-url
|
|
236
|
-
label: CI Dashboard URL
|
|
237
|
-
valueType: string
|
|
238
|
-
placeholder: "https://github.com/.../actions"
|
|
239
|
-
constraints:
|
|
240
|
-
format: url
|
|
241
|
-
- slug: last-commit
|
|
242
|
-
label: Last Commit
|
|
243
|
-
valueType: string
|
|
244
|
-
- slug: last-commit-date
|
|
245
|
-
label: Last Commit Date
|
|
246
|
-
valueType: date
|
|
247
|
-
- slug: language
|
|
248
|
-
label: Primary Language
|
|
249
|
-
valueType: string
|
|
250
|
-
inputType: select
|
|
251
|
-
enumValues: [TypeScript, JavaScript, Python, Rust, Go, Other]
|
|
252
|
-
- slug: package-manager
|
|
253
|
-
label: Package Manager
|
|
254
|
-
valueType: string
|
|
255
|
-
inputType: select
|
|
256
|
-
enumValues: [pnpm, npm, yarn, bun, cargo, pip]
|
|
257
|
-
- slug: monorepo
|
|
258
|
-
label: Monorepo
|
|
259
|
-
valueType: boolean
|
|
260
|
-
- slug: repo-notes
|
|
261
|
-
label: Notes
|
|
262
|
-
valueType: string
|
|
263
|
-
inputType: textarea
|
|
264
|
-
|
|
265
|
-
- slug: credential
|
|
266
|
-
displayName: Credential
|
|
267
|
-
icon: key
|
|
268
|
-
color: "#F59E0B"
|
|
269
|
-
description: "API keys, SSH keys, and secrets linked to vault items"
|
|
270
|
-
scope: WORKSPACE
|
|
271
|
-
properties:
|
|
272
|
-
- slug: credential-type
|
|
273
|
-
label: Type
|
|
274
|
-
valueType: string
|
|
275
|
-
inputType: select
|
|
276
|
-
enumValues:
|
|
277
|
-
[api_key, ssh_key, password, token, certificate, env_variable, other]
|
|
278
|
-
placeholder: "Select credential type"
|
|
279
|
-
- slug: service-name
|
|
280
|
-
label: Service
|
|
281
|
-
valueType: string
|
|
282
|
-
inputType: text
|
|
283
|
-
placeholder: "e.g. Hetzner, Stripe, GitHub"
|
|
284
|
-
- slug: vault-ref
|
|
285
|
-
label: Vault Item Name
|
|
286
|
-
valueType: string
|
|
287
|
-
inputType: text
|
|
288
|
-
placeholder: "Name of the vault item storing this secret"
|
|
289
|
-
- slug: last-rotated
|
|
290
|
-
label: Last Rotated
|
|
291
|
-
valueType: date
|
|
292
|
-
inputType: date
|
|
293
|
-
- slug: expires-at
|
|
294
|
-
label: Expires At
|
|
295
|
-
valueType: date
|
|
296
|
-
inputType: date
|
|
297
|
-
- slug: environment
|
|
298
|
-
label: Environment
|
|
299
|
-
valueType: string
|
|
300
|
-
inputType: select
|
|
301
|
-
enumValues: [production, staging, development, all]
|
|
302
|
-
placeholder: "Environment"
|
|
303
|
-
- slug: notes
|
|
304
|
-
label: Notes
|
|
305
|
-
valueType: string
|
|
306
|
-
inputType: textarea
|
|
307
|
-
placeholder: "Permissions, rotation policy, who has access..."
|
|
308
|
-
|
|
309
|
-
views:
|
|
310
|
-
- name: Infrastructure Map
|
|
311
|
-
type: flow
|
|
312
|
-
scopeProfileSlug: service
|
|
313
|
-
config:
|
|
314
|
-
nodes:
|
|
315
|
-
- id: browser
|
|
316
|
-
type: entity
|
|
317
|
-
position: { x: 0, y: 0 }
|
|
318
|
-
label: Browser
|
|
319
|
-
data: { entityIndex: 8 }
|
|
320
|
-
- id: control-plane
|
|
321
|
-
type: entity
|
|
322
|
-
position: { x: 0, y: 250 }
|
|
323
|
-
label: Control Plane
|
|
324
|
-
data: { entityIndex: 3 }
|
|
325
|
-
- id: synap-app
|
|
326
|
-
type: entity
|
|
327
|
-
position: { x: 400, y: 0 }
|
|
328
|
-
label: Synap App
|
|
329
|
-
data: { entityIndex: 0 }
|
|
330
|
-
- id: control-plane-api
|
|
331
|
-
type: entity
|
|
332
|
-
position: { x: 400, y: 250 }
|
|
333
|
-
label: Control Plane API
|
|
334
|
-
data: { entityIndex: 2 }
|
|
335
|
-
- id: synap-backend
|
|
336
|
-
type: entity
|
|
337
|
-
position: { x: 400, y: 500 }
|
|
338
|
-
label: Synap Backend
|
|
339
|
-
data: { entityIndex: 1 }
|
|
340
|
-
- id: intelligence-service
|
|
341
|
-
type: entity
|
|
342
|
-
position: { x: 800, y: 0 }
|
|
343
|
-
label: Intelligence Service
|
|
344
|
-
data: { entityIndex: 4 }
|
|
345
|
-
- id: zeroclaw-bridge
|
|
346
|
-
type: entity
|
|
347
|
-
position: { x: 800, y: 250 }
|
|
348
|
-
label: ZeroClaw Bridge
|
|
349
|
-
data: { entityIndex: 7 }
|
|
350
|
-
- id: life-feed
|
|
351
|
-
type: entity
|
|
352
|
-
position: { x: 800, y: 500 }
|
|
353
|
-
label: Life Feed
|
|
354
|
-
data: { entityIndex: 6 }
|
|
355
|
-
- id: landing-page
|
|
356
|
-
type: entity
|
|
357
|
-
position: { x: 400, y: 750 }
|
|
358
|
-
label: Landing Page
|
|
359
|
-
data: { entityIndex: 5 }
|
|
360
|
-
edges:
|
|
361
|
-
- id: e-browser-app
|
|
362
|
-
source: browser
|
|
363
|
-
target: synap-app
|
|
364
|
-
label: "embeds workspace"
|
|
365
|
-
animated: false
|
|
366
|
-
- id: e-cp-cpapi
|
|
367
|
-
source: control-plane
|
|
368
|
-
target: control-plane-api
|
|
369
|
-
label: "frontend → API"
|
|
370
|
-
animated: false
|
|
371
|
-
- id: e-app-backend
|
|
372
|
-
source: synap-app
|
|
373
|
-
target: synap-backend
|
|
374
|
-
label: "API calls"
|
|
375
|
-
animated: true
|
|
376
|
-
- id: e-app-intel
|
|
377
|
-
source: synap-app
|
|
378
|
-
target: intelligence-service
|
|
379
|
-
label: "AI features"
|
|
380
|
-
animated: true
|
|
381
|
-
- id: e-cpapi-backend
|
|
382
|
-
source: control-plane-api
|
|
383
|
-
target: synap-backend
|
|
384
|
-
label: "pod management"
|
|
385
|
-
animated: false
|
|
386
|
-
- id: e-backend-intel
|
|
387
|
-
source: synap-backend
|
|
388
|
-
target: intelligence-service
|
|
389
|
-
label: "agent orchestration"
|
|
390
|
-
animated: true
|
|
391
|
-
- id: e-backend-zeroclaw
|
|
392
|
-
source: synap-backend
|
|
393
|
-
target: zeroclaw-bridge
|
|
394
|
-
label: "security scanning"
|
|
395
|
-
animated: false
|
|
396
|
-
- id: e-zeroclaw-intel
|
|
397
|
-
source: zeroclaw-bridge
|
|
398
|
-
target: intelligence-service
|
|
399
|
-
label: "AI analysis"
|
|
400
|
-
animated: false
|
|
401
|
-
- id: e-app-lifefeed
|
|
402
|
-
source: synap-app
|
|
403
|
-
target: life-feed
|
|
404
|
-
label: "real-time events"
|
|
405
|
-
animated: false
|
|
406
|
-
|
|
407
|
-
- name: Service Health
|
|
408
|
-
type: kanban
|
|
409
|
-
scopeProfileSlug: service
|
|
410
|
-
config:
|
|
411
|
-
groupByField: health-status
|
|
412
|
-
|
|
413
|
-
- name: Architecture Graph
|
|
414
|
-
type: graph
|
|
415
|
-
scopeProfileSlugs: [service, vendor, repository]
|
|
416
|
-
config:
|
|
417
|
-
layout: force
|
|
418
|
-
showRelations: true
|
|
419
|
-
|
|
420
|
-
- name: Deploy Timeline
|
|
421
|
-
type: table
|
|
422
|
-
scopeProfileSlug: service
|
|
423
|
-
config:
|
|
424
|
-
visibleColumns:
|
|
425
|
-
[
|
|
426
|
-
service-type,
|
|
427
|
-
environment,
|
|
428
|
-
deployment-branch,
|
|
429
|
-
last-deploy,
|
|
430
|
-
health-status,
|
|
431
|
-
]
|
|
432
|
-
sortBy: last-deploy
|
|
433
|
-
sortDirection: desc
|
|
434
|
-
|
|
435
|
-
- name: Vendor Costs
|
|
436
|
-
type: table
|
|
437
|
-
scopeProfileSlug: vendor
|
|
438
|
-
config:
|
|
439
|
-
visibleColumns: [vendor-type, pricing-model, monthly-cost, vendor-status]
|
|
440
|
-
sortBy: monthly-cost
|
|
441
|
-
sortDirection: desc
|
|
442
|
-
|
|
443
|
-
- name: Services by Type
|
|
444
|
-
type: kanban
|
|
445
|
-
scopeProfileSlug: service
|
|
446
|
-
config:
|
|
447
|
-
groupByField: service-type
|
|
448
|
-
|
|
449
|
-
- name: All Services
|
|
450
|
-
type: table
|
|
451
|
-
scopeProfileSlug: service
|
|
452
|
-
config:
|
|
453
|
-
columns:
|
|
454
|
-
- { key: service-type }
|
|
455
|
-
- { key: environment }
|
|
456
|
-
- { key: health-status }
|
|
457
|
-
- { key: tech-stack }
|
|
458
|
-
- { key: service-url }
|
|
459
|
-
sort:
|
|
460
|
-
field: service-type
|
|
461
|
-
direction: asc
|
|
462
|
-
|
|
463
|
-
- name: Vendors
|
|
464
|
-
type: table
|
|
465
|
-
scopeProfileSlug: vendor
|
|
466
|
-
config:
|
|
467
|
-
columns:
|
|
468
|
-
- { key: vendor-type }
|
|
469
|
-
- { key: pricing-model }
|
|
470
|
-
- { key: monthly-cost }
|
|
471
|
-
- { key: vendor-status }
|
|
472
|
-
- { key: vendor-url }
|
|
473
|
-
sort:
|
|
474
|
-
field: monthly-cost
|
|
475
|
-
direction: desc
|
|
476
|
-
|
|
477
|
-
- name: Repositories
|
|
478
|
-
type: table
|
|
479
|
-
scopeProfileSlug: repository
|
|
480
|
-
config:
|
|
481
|
-
columns:
|
|
482
|
-
- { key: language }
|
|
483
|
-
- { key: package-manager }
|
|
484
|
-
- { key: monorepo }
|
|
485
|
-
- { key: ci-status }
|
|
486
|
-
- { key: main-branch }
|
|
487
|
-
sort:
|
|
488
|
-
field: language
|
|
489
|
-
direction: asc
|
|
490
|
-
|
|
491
|
-
- name: Services Dashboard
|
|
492
|
-
type: bento
|
|
493
|
-
config:
|
|
494
|
-
layout: fixed
|
|
495
|
-
blocks:
|
|
496
|
-
- id: platform-metrics
|
|
497
|
-
kind: widget
|
|
498
|
-
widgetType: dev-platform-metrics
|
|
499
|
-
pos: { x: 0, y: 0, w: 12, h: 3 }
|
|
500
|
-
config: {}
|
|
501
|
-
- id: intelligence-usage
|
|
502
|
-
kind: widget
|
|
503
|
-
widgetType: dev-intelligence-usage
|
|
504
|
-
pos: { x: 0, y: 3, w: 6, h: 4 }
|
|
505
|
-
config: {}
|
|
506
|
-
- id: service-health
|
|
507
|
-
kind: widget
|
|
508
|
-
widgetType: dev-service-health
|
|
509
|
-
pos: { x: 6, y: 3, w: 6, h: 4 }
|
|
510
|
-
config: {}
|
|
511
|
-
- id: agent-activity
|
|
512
|
-
kind: widget
|
|
513
|
-
widgetType: dev-agent-activity
|
|
514
|
-
pos: { x: 0, y: 7, w: 4, h: 5 }
|
|
515
|
-
config: {}
|
|
516
|
-
- id: pod-status
|
|
517
|
-
kind: widget
|
|
518
|
-
widgetType: dev-pod-status
|
|
519
|
-
pos: { x: 4, y: 7, w: 4, h: 5 }
|
|
520
|
-
config: {}
|
|
521
|
-
- id: quick-links
|
|
522
|
-
kind: widget
|
|
523
|
-
widgetType: dev-quick-links
|
|
524
|
-
pos: { x: 8, y: 7, w: 4, h: 5 }
|
|
525
|
-
config: {}
|
|
526
|
-
- id: cost-summary
|
|
527
|
-
kind: widget
|
|
528
|
-
widgetType: dev-cost-summary
|
|
529
|
-
pos: { x: 0, y: 12, w: 12, h: 3 }
|
|
530
|
-
config: {}
|
|
531
|
-
|
|
532
|
-
- name: Credentials
|
|
533
|
-
type: table
|
|
534
|
-
scopeProfileSlug: credential
|
|
535
|
-
config: {}
|
|
536
|
-
|
|
537
|
-
entityLinks:
|
|
538
|
-
- sourceProfileSlug: service
|
|
539
|
-
targetProfileSlug: vendor
|
|
540
|
-
type: uses
|
|
541
|
-
- sourceProfileSlug: service
|
|
542
|
-
targetProfileSlug: environment
|
|
543
|
-
type: deployed_on
|
|
544
|
-
- sourceProfileSlug: service
|
|
545
|
-
targetProfileSlug: service
|
|
546
|
-
type: depends_on
|
|
547
|
-
- sourceProfileSlug: environment
|
|
548
|
-
targetProfileSlug: vendor
|
|
549
|
-
type: hosted_on
|
|
550
|
-
- sourceProfileSlug: repository
|
|
551
|
-
targetProfileSlug: service
|
|
552
|
-
type: powers
|
|
553
|
-
- sourceProfileSlug: repository
|
|
554
|
-
targetProfileSlug: repository
|
|
555
|
-
type: depends_on
|
|
556
|
-
|
|
557
|
-
displayTemplates:
|
|
558
|
-
- name: Service Card
|
|
559
|
-
description: "Infrastructure service with health status, stack, and links"
|
|
560
|
-
entityType: service
|
|
561
|
-
targetType: entity
|
|
562
|
-
isDefault: true
|
|
563
|
-
config:
|
|
564
|
-
layout:
|
|
565
|
-
structure:
|
|
566
|
-
header:
|
|
567
|
-
enabled: true
|
|
568
|
-
slots: [health-status, service-type]
|
|
569
|
-
layout: horizontal
|
|
570
|
-
sidebar:
|
|
571
|
-
enabled: true
|
|
572
|
-
slots: [environment, port, deployment-branch, last-deploy]
|
|
573
|
-
position: right
|
|
574
|
-
width: "260px"
|
|
575
|
-
layout: vertical
|
|
576
|
-
content:
|
|
577
|
-
enabled: true
|
|
578
|
-
slots: [tech-stack, service-url, github-url, health-endpoint]
|
|
579
|
-
layout: vertical
|
|
580
|
-
fieldMapping:
|
|
581
|
-
health-status:
|
|
582
|
-
slot: health-status
|
|
583
|
-
renderer: { type: badge, size: md }
|
|
584
|
-
showLabel: false
|
|
585
|
-
order: 1
|
|
586
|
-
service-type:
|
|
587
|
-
slot: service-type
|
|
588
|
-
renderer: { type: badge, size: sm }
|
|
589
|
-
showLabel: false
|
|
590
|
-
order: 2
|
|
591
|
-
environment:
|
|
592
|
-
slot: environment
|
|
593
|
-
renderer: { type: badge, size: sm }
|
|
594
|
-
label: Environment
|
|
595
|
-
order: 3
|
|
596
|
-
port:
|
|
597
|
-
slot: port
|
|
598
|
-
renderer: { type: number }
|
|
599
|
-
label: Port
|
|
600
|
-
order: 4
|
|
601
|
-
deployment-branch:
|
|
602
|
-
slot: deployment-branch
|
|
603
|
-
renderer: { type: text }
|
|
604
|
-
label: Branch
|
|
605
|
-
order: 5
|
|
606
|
-
last-deploy:
|
|
607
|
-
slot: last-deploy
|
|
608
|
-
renderer: { type: date, format: relative }
|
|
609
|
-
label: Last Deploy
|
|
610
|
-
order: 6
|
|
611
|
-
tech-stack:
|
|
612
|
-
slot: tech-stack
|
|
613
|
-
renderer: { type: badge }
|
|
614
|
-
label: Tech Stack
|
|
615
|
-
order: 7
|
|
616
|
-
service-url:
|
|
617
|
-
slot: service-url
|
|
618
|
-
renderer: { type: link }
|
|
619
|
-
label: Service URL
|
|
620
|
-
order: 8
|
|
621
|
-
github-url:
|
|
622
|
-
slot: github-url
|
|
623
|
-
renderer: { type: link }
|
|
624
|
-
label: GitHub
|
|
625
|
-
order: 9
|
|
626
|
-
health-endpoint:
|
|
627
|
-
slot: health-endpoint
|
|
628
|
-
renderer: { type: link }
|
|
629
|
-
label: Health Check
|
|
630
|
-
order: 10
|
|
631
|
-
colors:
|
|
632
|
-
accent: "#3B82F6"
|
|
633
|
-
styling:
|
|
634
|
-
borderRadius: "10px"
|
|
635
|
-
|
|
636
|
-
- name: Vendor Card
|
|
637
|
-
description: "External vendor with pricing, status, and admin links"
|
|
638
|
-
entityType: vendor
|
|
639
|
-
targetType: entity
|
|
640
|
-
isDefault: true
|
|
641
|
-
config:
|
|
642
|
-
layout:
|
|
643
|
-
structure:
|
|
644
|
-
header:
|
|
645
|
-
enabled: true
|
|
646
|
-
slots: [vendor-status, vendor-type]
|
|
647
|
-
layout: horizontal
|
|
648
|
-
sidebar:
|
|
649
|
-
enabled: true
|
|
650
|
-
slots: [pricing-model, monthly-cost]
|
|
651
|
-
position: right
|
|
652
|
-
width: "240px"
|
|
653
|
-
layout: vertical
|
|
654
|
-
content:
|
|
655
|
-
enabled: true
|
|
656
|
-
slots: [vendor-url, admin-url, docs-url, status-page-url]
|
|
657
|
-
layout: vertical
|
|
658
|
-
fieldMapping:
|
|
659
|
-
vendor-status:
|
|
660
|
-
slot: vendor-status
|
|
661
|
-
renderer: { type: badge, size: md }
|
|
662
|
-
showLabel: false
|
|
663
|
-
order: 1
|
|
664
|
-
vendor-type:
|
|
665
|
-
slot: vendor-type
|
|
666
|
-
renderer: { type: badge, size: sm }
|
|
667
|
-
showLabel: false
|
|
668
|
-
order: 2
|
|
669
|
-
pricing-model:
|
|
670
|
-
slot: pricing-model
|
|
671
|
-
renderer: { type: badge, size: sm }
|
|
672
|
-
label: Pricing
|
|
673
|
-
order: 3
|
|
674
|
-
monthly-cost:
|
|
675
|
-
slot: monthly-cost
|
|
676
|
-
renderer: { type: number, format: currency }
|
|
677
|
-
label: Monthly Cost
|
|
678
|
-
order: 4
|
|
679
|
-
vendor-url:
|
|
680
|
-
slot: vendor-url
|
|
681
|
-
renderer: { type: link }
|
|
682
|
-
label: Website
|
|
683
|
-
order: 5
|
|
684
|
-
admin-url:
|
|
685
|
-
slot: admin-url
|
|
686
|
-
renderer: { type: link }
|
|
687
|
-
label: Admin Console
|
|
688
|
-
order: 6
|
|
689
|
-
docs-url:
|
|
690
|
-
slot: docs-url
|
|
691
|
-
renderer: { type: link }
|
|
692
|
-
label: Documentation
|
|
693
|
-
order: 7
|
|
694
|
-
status-page-url:
|
|
695
|
-
slot: status-page-url
|
|
696
|
-
renderer: { type: link }
|
|
697
|
-
label: Status Page
|
|
698
|
-
order: 8
|
|
699
|
-
colors:
|
|
700
|
-
accent: "#8B5CF6"
|
|
701
|
-
styling:
|
|
702
|
-
borderRadius: "10px"
|
|
703
|
-
|
|
704
|
-
- name: Environment Card
|
|
705
|
-
description: "Deployment environment with status and branch info"
|
|
706
|
-
entityType: environment
|
|
707
|
-
targetType: entity
|
|
708
|
-
isDefault: true
|
|
709
|
-
config:
|
|
710
|
-
layout:
|
|
711
|
-
structure:
|
|
712
|
-
header:
|
|
713
|
-
enabled: true
|
|
714
|
-
slots: [env-status, env-type]
|
|
715
|
-
layout: horizontal
|
|
716
|
-
sidebar:
|
|
717
|
-
enabled: true
|
|
718
|
-
slots: [branch, last-deploy]
|
|
719
|
-
position: right
|
|
720
|
-
width: "240px"
|
|
721
|
-
layout: vertical
|
|
722
|
-
content:
|
|
723
|
-
enabled: true
|
|
724
|
-
slots: [env-url]
|
|
725
|
-
layout: vertical
|
|
726
|
-
fieldMapping:
|
|
727
|
-
env-status:
|
|
728
|
-
slot: env-status
|
|
729
|
-
renderer: { type: badge, size: md }
|
|
730
|
-
showLabel: false
|
|
731
|
-
order: 1
|
|
732
|
-
env-type:
|
|
733
|
-
slot: env-type
|
|
734
|
-
renderer: { type: badge, size: sm }
|
|
735
|
-
showLabel: false
|
|
736
|
-
order: 2
|
|
737
|
-
branch:
|
|
738
|
-
slot: branch
|
|
739
|
-
renderer: { type: text }
|
|
740
|
-
label: Branch
|
|
741
|
-
order: 3
|
|
742
|
-
last-deploy:
|
|
743
|
-
slot: last-deploy
|
|
744
|
-
renderer: { type: date, format: relative }
|
|
745
|
-
label: Last Deploy
|
|
746
|
-
order: 4
|
|
747
|
-
env-url:
|
|
748
|
-
slot: env-url
|
|
749
|
-
renderer: { type: link }
|
|
750
|
-
label: URL
|
|
751
|
-
order: 5
|
|
752
|
-
colors:
|
|
753
|
-
accent: "#10B981"
|
|
754
|
-
styling:
|
|
755
|
-
borderRadius: "10px"
|
|
756
|
-
|
|
757
|
-
- name: Repository Card
|
|
758
|
-
description: "Git repository with CI status and branch info"
|
|
759
|
-
entityType: repository
|
|
760
|
-
targetType: entity
|
|
761
|
-
isDefault: true
|
|
762
|
-
config:
|
|
763
|
-
layout:
|
|
764
|
-
structure:
|
|
765
|
-
header:
|
|
766
|
-
enabled: true
|
|
767
|
-
slots: [ci-status, language]
|
|
768
|
-
layout: horizontal
|
|
769
|
-
sidebar:
|
|
770
|
-
enabled: true
|
|
771
|
-
slots: [main-branch, package-manager, monorepo]
|
|
772
|
-
position: right
|
|
773
|
-
width: "240px"
|
|
774
|
-
layout: vertical
|
|
775
|
-
content:
|
|
776
|
-
enabled: true
|
|
777
|
-
slots: [repo-url, ci-url]
|
|
778
|
-
layout: vertical
|
|
779
|
-
fieldMapping:
|
|
780
|
-
ci-status:
|
|
781
|
-
slot: ci-status
|
|
782
|
-
renderer: { type: badge, size: md }
|
|
783
|
-
showLabel: false
|
|
784
|
-
order: 1
|
|
785
|
-
language:
|
|
786
|
-
slot: language
|
|
787
|
-
renderer: { type: badge, size: sm }
|
|
788
|
-
showLabel: false
|
|
789
|
-
order: 2
|
|
790
|
-
main-branch:
|
|
791
|
-
slot: main-branch
|
|
792
|
-
renderer: { type: text }
|
|
793
|
-
label: Main Branch
|
|
794
|
-
order: 3
|
|
795
|
-
package-manager:
|
|
796
|
-
slot: package-manager
|
|
797
|
-
renderer: { type: badge, size: sm }
|
|
798
|
-
label: Package Manager
|
|
799
|
-
order: 4
|
|
800
|
-
monorepo:
|
|
801
|
-
slot: monorepo
|
|
802
|
-
renderer: { type: checkbox }
|
|
803
|
-
label: Monorepo
|
|
804
|
-
order: 5
|
|
805
|
-
repo-url:
|
|
806
|
-
slot: repo-url
|
|
807
|
-
renderer: { type: link }
|
|
808
|
-
label: Repository
|
|
809
|
-
order: 6
|
|
810
|
-
ci-url:
|
|
811
|
-
slot: ci-url
|
|
812
|
-
renderer: { type: link }
|
|
813
|
-
label: CI Dashboard
|
|
814
|
-
order: 7
|
|
815
|
-
colors:
|
|
816
|
-
accent: "#F97316"
|
|
817
|
-
styling:
|
|
818
|
-
borderRadius: "10px"
|
|
819
|
-
|
|
820
|
-
# Top-level workspace dashboard (from bentoLayout + bentoViewBlocks union)
|
|
821
|
-
bento:
|
|
822
|
-
blocks:
|
|
823
|
-
- kind: widget
|
|
824
|
-
widgetType: welcome-header
|
|
825
|
-
pos: { x: 0, y: 0, w: 12, h: 2 }
|
|
826
|
-
config: {}
|
|
827
|
-
- kind: widget
|
|
828
|
-
widgetType: entity-count
|
|
829
|
-
pos: { x: 0, y: 2, w: 3, h: 2 }
|
|
830
|
-
config:
|
|
831
|
-
profileSlug: service
|
|
832
|
-
label: Services
|
|
833
|
-
- kind: widget
|
|
834
|
-
widgetType: entity-count
|
|
835
|
-
pos: { x: 3, y: 2, w: 3, h: 2 }
|
|
836
|
-
config:
|
|
837
|
-
profileSlug: vendor
|
|
838
|
-
label: Vendors
|
|
839
|
-
- kind: widget
|
|
840
|
-
widgetType: entity-count
|
|
841
|
-
pos: { x: 6, y: 2, w: 3, h: 2 }
|
|
842
|
-
config:
|
|
843
|
-
profileSlug: service
|
|
844
|
-
label: Healthy
|
|
845
|
-
filter:
|
|
846
|
-
health-status: Healthy
|
|
847
|
-
- kind: widget
|
|
848
|
-
widgetType: entity-count
|
|
849
|
-
pos: { x: 9, y: 2, w: 3, h: 2 }
|
|
850
|
-
config:
|
|
851
|
-
profileSlug: environment
|
|
852
|
-
label: Environments
|
|
853
|
-
- kind: widget
|
|
854
|
-
widgetType: dev-service-health
|
|
855
|
-
pos: { x: 0, y: 4, w: 3, h: 3 }
|
|
856
|
-
config: {}
|
|
857
|
-
- kind: widget
|
|
858
|
-
widgetType: dev-cost-summary
|
|
859
|
-
pos: { x: 3, y: 4, w: 3, h: 3 }
|
|
860
|
-
config: {}
|
|
861
|
-
- kind: widget
|
|
862
|
-
widgetType: dev-quick-links
|
|
863
|
-
pos: { x: 6, y: 4, w: 6, h: 3 }
|
|
864
|
-
config:
|
|
865
|
-
title: Quick Links
|
|
866
|
-
links:
|
|
867
|
-
- {
|
|
868
|
-
label: GitHub,
|
|
869
|
-
url: "https://github.com/synapsh",
|
|
870
|
-
color: "#24292E",
|
|
871
|
-
}
|
|
872
|
-
- {
|
|
873
|
-
label: Hetzner Console,
|
|
874
|
-
url: "https://console.hetzner.cloud",
|
|
875
|
-
color: "#D50C2D",
|
|
876
|
-
}
|
|
877
|
-
- {
|
|
878
|
-
label: Vercel Dashboard,
|
|
879
|
-
url: "https://vercel.com/dashboard",
|
|
880
|
-
color: "#000000",
|
|
881
|
-
}
|
|
882
|
-
- {
|
|
883
|
-
label: Ory Console,
|
|
884
|
-
url: "https://console.ory.sh",
|
|
885
|
-
color: "#5528FF",
|
|
886
|
-
}
|
|
887
|
-
- {
|
|
888
|
-
label: Cloudflare,
|
|
889
|
-
url: "https://dash.cloudflare.com",
|
|
890
|
-
color: "#F38020",
|
|
891
|
-
}
|
|
892
|
-
- {
|
|
893
|
-
label: OpenRouter,
|
|
894
|
-
url: "https://openrouter.ai/dashboard",
|
|
895
|
-
color: "#6366F1",
|
|
896
|
-
}
|
|
897
|
-
- kind: widget
|
|
898
|
-
widgetType: entity-list
|
|
899
|
-
pos: { x: 0, y: 7, w: 6, h: 5 }
|
|
900
|
-
config:
|
|
901
|
-
profileSlug: service
|
|
902
|
-
title: All Services
|
|
903
|
-
limit: 10
|
|
904
|
-
- kind: widget
|
|
905
|
-
widgetType: entity-list
|
|
906
|
-
pos: { x: 6, y: 7, w: 3, h: 5 }
|
|
907
|
-
config:
|
|
908
|
-
profileSlug: vendor
|
|
909
|
-
title: Vendors
|
|
910
|
-
limit: 8
|
|
911
|
-
- kind: widget
|
|
912
|
-
widgetType: feed
|
|
913
|
-
pos: { x: 9, y: 7, w: 3, h: 5 }
|
|
914
|
-
config: {}
|
|
915
|
-
- kind: view
|
|
916
|
-
viewName: Deploy Timeline
|
|
917
|
-
pos: { x: 0, y: 12, w: 12, h: 4 }
|
|
918
|
-
- kind: view
|
|
919
|
-
viewName: Vendor Costs
|
|
920
|
-
pos: { x: 0, y: 16, w: 6, h: 4 }
|
|
921
|
-
- kind: view
|
|
922
|
-
viewName: Service Health
|
|
923
|
-
pos: { x: 6, y: 16, w: 6, h: 4 }
|
|
924
|
-
|
|
925
|
-
onboarding:
|
|
926
|
-
goal: "Capture the user's infrastructure surface — the services they run, the repositories behind them, their environments, the vendors they depend on, and their credentials inventory — so the command center reflects their real stack."
|
|
927
|
-
framing: "Act as a staff platform engineer doing an infra walkthrough. Tease out what's running in production, where the code lives, how environments are laid out, which third parties they depend on, and what secrets need tracking. Translate that into services, repositories, environments, vendors, and credentials."
|
|
928
|
-
expertise:
|
|
929
|
-
starters:
|
|
930
|
-
- >
|
|
931
|
-
Start from what's serving live traffic RIGHT NOW, not the architecture diagram. Walk the
|
|
932
|
-
request path: what does a user hit first, and what does that call, and what does THAT call?
|
|
933
|
-
Capture each hop as a service with its host and health-check URL. The production edge is the
|
|
934
|
-
map's anchor; everything else hangs off it.
|
|
935
|
-
- >
|
|
936
|
-
For every third party, capture the cost AND who owns the account. Propose logging each
|
|
937
|
-
vendor with its pricing model and monthly spend the moment you name it — the €12/mo that
|
|
938
|
-
became €400/mo is always a vendor nobody was watching. An untracked line item is a future
|
|
939
|
-
surprise on the card.
|
|
940
|
-
- >
|
|
941
|
-
Inventory credentials by their EXPIRY, not their existence. For each secret, capture where
|
|
942
|
-
it's stored (vault ref), what it unlocks, and when it expires or was last rotated. The
|
|
943
|
-
credential nobody wrote down is the one that expires at 3am and takes prod with it.
|
|
944
|
-
blindSpots:
|
|
945
|
-
- >
|
|
946
|
-
The untracked credential is the classic infra time-bomb: the SSH key on one laptop, the API
|
|
947
|
-
token in someone's .env, the cert that auto-renewed until it didn't. Teams track services
|
|
948
|
-
obsessively and secrets not at all — surface expiry dates and rotation policy proactively,
|
|
949
|
-
because the outage is silent until the exact moment it isn't.
|
|
950
|
-
- >
|
|
951
|
-
Vendor cost creep has no owner. Each SaaS was signed up "just to try," and now the monthly
|
|
952
|
-
bill is a mystery no single person can explain line by line. Force a monthly-cost number and
|
|
953
|
-
an owner on every vendor — the sum is almost always higher than anyone guessed.
|
|
954
|
-
- >
|
|
955
|
-
"Works on my machine" is environment drift, and it hides until deploy day. Staging runs a
|
|
956
|
-
different Node, prod has an env var dev doesn't, the migration ran here but not there. Map
|
|
957
|
-
each environment EXPLICITLY with its branch and base URL so the deltas between prod, staging,
|
|
958
|
-
and dev are visible instead of discovered during an incident.
|
|
959
|
-
bar: >
|
|
960
|
-
A great result is a command center where you can answer, without SSHing anywhere: what's
|
|
961
|
-
serving traffic and is it healthy, which credential expires next and who rotates it, what each
|
|
962
|
-
vendor costs and who owns it, and exactly how prod differs from staging. The value is in the
|
|
963
|
-
facts nobody keeps in one place — expiry dates, cost owners, environment deltas — surfaced
|
|
964
|
-
before they become incidents.
|
|
965
|
-
collect:
|
|
966
|
-
- profileSlug: service
|
|
967
|
-
what: "The services / apps they run and their stack"
|
|
968
|
-
cardinality: several
|
|
969
|
-
keyFields: [title, service-type, service-url, tech-stack]
|
|
970
|
-
- profileSlug: repository
|
|
971
|
-
what: "The repositories behind those services"
|
|
972
|
-
cardinality: several
|
|
973
|
-
keyFields: [title, repo-url, main-branch, language]
|
|
974
|
-
- profileSlug: environment
|
|
975
|
-
what: "Their deployment environments (prod, staging, etc.)"
|
|
976
|
-
cardinality: few
|
|
977
|
-
keyFields: [title, env-type, env-url, branch]
|
|
978
|
-
- profileSlug: vendor
|
|
979
|
-
what: "The third-party vendors / SaaS they depend on and their cost"
|
|
980
|
-
cardinality: several
|
|
981
|
-
keyFields: [title, vendor-type, monthly-cost, vendor-url]
|
|
982
|
-
- profileSlug: credential
|
|
983
|
-
what: "The credentials / secrets that need tracking and rotation"
|
|
984
|
-
cardinality: few
|
|
985
|
-
keyFields: [title, credential-type, service-name, expires-at]
|
|
986
|
-
openingQuestions:
|
|
987
|
-
- "What services are running in production right now, and what's each built on?"
|
|
988
|
-
- "Where does the code live, and how are your environments laid out?"
|
|
989
|
-
- "Which vendors do you depend on, and what credentials need tracking?"
|
|
990
|
-
doneWhen: "Their running services and repositories exist, environments are mapped, key vendors are captured with cost, and the credentials inventory is started."
|