Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 21 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ normatively in
items/
└── <slug>/ # ONE self-contained item per directory
├── listing.yaml # storefront wrapper
├── blueprint.yaml # composition graph (see COMPONENT items below)
├── blueprint.yaml # composition graph; absent for a COMPONENT item
├── components/
│ └── <name>.yaml # ≥1; every file referenced by blueprint.yaml
└── media/ # optional assets
Expand All @@ -38,7 +38,9 @@ These are hard requirements. A violation is rejected when the platform syncs
this repo:

- the directory name equals both `listing.yaml`'s and `blueprint.yaml`'s
`metadata.slug`, and their `metadata.revision` values match;
`metadata.slug`;
- the listing's `spec.itemType` is `BLUEPRINT` exactly when the item holds a
`blueprint.yaml`, and `COMPONENT` otherwise;
- every blueprint node's `componentRef` resolves to a `components/<name>.yaml`
file **in the same item directory**, and every such file is referenced — no
unreferenced components;
Expand All @@ -52,8 +54,9 @@ this repo:
a readiness probe for a public endpoint; `WORKER`, `JOB` and `CRON` forbid
endpoints.

Per the spec, a listing deploys exactly one blueprint, and compute is a
per-node concern on the blueprint node rather than on the component.
Per the spec, a `BLUEPRINT` item deploys exactly one blueprint, and compute is a
per-node concern on the blueprint node rather than on the component. The
blueprint's `metadata.revision` is the item's revision; a listing carries none.

## Adding an item

Expand Down Expand Up @@ -98,7 +101,7 @@ binds compute per node:
```yaml
specVersion: v1
kind: BLUEPRINT
metadata: { slug: my-app, revision: 1 }
metadata: { slug: my-app, revision: 1 } # the item's revision
spec:
components:
web: # graph-local node name (map order = graph order)
Expand All @@ -117,19 +120,19 @@ validator could tell which resolver the reference wanted.
```yaml
specVersion: v1
kind: LISTING
metadata: { slug: my-app, revision: 1 }
metadata: { slug: my-app } # slug only — a listing carries no revision
spec:
listingKind: BLUEPRINT # BLUEPRINT | COMPONENT
itemType: BLUEPRINT # BLUEPRINT iff the item holds blueprint.yaml
displayName: My App
summary: One-line storefront tagline (≤ 280 chars)
description: |
Markdown long-form description.
category: DEVELOPER_TOOLS
lifecycleStage: STABLE # STABLE | BETA | EXPERIMENTAL | SUNSET
tags: [example]
homepageUrl: https://example.com
sourceRepoUrl: https://github.com/example/my-app
license: MIT
homepageURL: https://example.com
sourceRepoURL: https://github.com/example/my-app
license: MIT # SPDX expression; LicenseRef-… when SPDX has none
icon: media/icon.png # optional; see ICONS.md
screenshots: # optional; {file, caption?} in display order
- file: media/screenshots/01-home.png
Expand All @@ -149,13 +152,14 @@ language-model endpoint — is a component declaring `spec.external` in place of
`spec.workload`. Its blueprint node writes `size: null`, and the values it holds
reach the install form through its `USER` inputs like any other node's.

A `COMPONENT`-kind listing that wraps a workload still authors a trivial
single-node `blueprint.yaml` around its one component, so it can be deployed on
its own (`postgres`, `redis`). One that publishes an external building block —
`llm-endpoint` — holds **no** `blueprint.yaml`, as listing spec §3.1 permits: a
one-node blueprint around a node that runs nothing would deploy nothing. A
blueprint that needs such a node carries its own copy under `components/`,
because a repo-local reference cannot leave its item directory.
An item holding **no** `blueprint.yaml` is an `itemType: COMPONENT` item: a
single building block rather than a composition — `postgres` and `redis`, which
wrap a workload, and `llm-endpoint`, which runs nothing. Listing spec §3 binds
the two together, so a `COMPONENT` item cannot carry a blueprint and a
`BLUEPRINT` item cannot omit one. Such an item has no item revision; its
component documents carry their own. A blueprint that needs one of these
building blocks carries its own copy under `components/`, because a repo-local
reference cannot leave its item directory.

## Validation

Expand Down
9 changes: 4 additions & 5 deletions items/code-server/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: code-server
revision: 1
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: code-server
summary: VS Code in the browser, running on infrastructure you control
description: |
Expand Down Expand Up @@ -36,8 +35,8 @@ spec:
- vscode
- editor
- remote-development
homepageUrl: https://coder.com
sourceRepoUrl: https://github.com/coder/code-server
supportUrl: https://coder.com/docs/code-server
homepageURL: https://coder.com
sourceRepoURL: https://github.com/coder/code-server
supportURL: https://coder.com/docs/code-server
license: MIT
icon: media/icon.png
9 changes: 4 additions & 5 deletions items/flowise/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: flowise
revision: 1
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: Flowise
summary: Drag-and-drop builder that turns LLM chains and agents into APIs and chat widgets
description: |
Expand Down Expand Up @@ -42,8 +41,8 @@ spec:
- rag
- low-code
- visual-builder
homepageUrl: https://flowiseai.com
sourceRepoUrl: https://github.com/FlowiseAI/Flowise
supportUrl: https://docs.flowiseai.com
homepageURL: https://flowiseai.com
sourceRepoURL: https://github.com/FlowiseAI/Flowise
supportURL: https://docs.flowiseai.com
license: Apache-2.0
icon: media/icon.png
9 changes: 4 additions & 5 deletions items/label-studio/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: label-studio
revision: 2
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: Label Studio
summary: Open-source data labeling for text, image, audio, video, and time-series datasets
description: |
Expand Down Expand Up @@ -44,8 +43,8 @@ spec:
- annotation
- training-data
- ml
homepageUrl: https://labelstud.io
sourceRepoUrl: https://github.com/HumanSignal/label-studio
supportUrl: https://labelstud.io/guide
homepageURL: https://labelstud.io
sourceRepoURL: https://github.com/HumanSignal/label-studio
supportURL: https://labelstud.io/guide
license: Apache-2.0
icon: media/icon.png
9 changes: 4 additions & 5 deletions items/langflow/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: langflow
revision: 1
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: Langflow
summary: Visual canvas for prototyping LLM agents and RAG pipelines, exportable as APIs
description: |
Expand Down Expand Up @@ -43,8 +42,8 @@ spec:
- rag
- low-code
- visual-builder
homepageUrl: https://www.langflow.org
sourceRepoUrl: https://github.com/langflow-ai/langflow
supportUrl: https://docs.langflow.org
homepageURL: https://www.langflow.org
sourceRepoURL: https://github.com/langflow-ai/langflow
supportURL: https://docs.langflow.org
license: MIT
icon: media/icon.png
9 changes: 4 additions & 5 deletions items/litellm/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: litellm
revision: 1
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: LiteLLM
summary: OpenAI-compatible proxy that fronts 100+ LLM providers with keys, budgets, and logging
description: |
Expand Down Expand Up @@ -41,8 +40,8 @@ spec:
- proxy
- gateway
- openai-compatible
homepageUrl: https://www.litellm.ai
sourceRepoUrl: https://github.com/BerriAI/litellm
supportUrl: https://docs.litellm.ai
homepageURL: https://www.litellm.ai
sourceRepoURL: https://github.com/BerriAI/litellm
supportURL: https://docs.litellm.ai
license: MIT
icon: media/icon.png
3 changes: 1 addition & 2 deletions items/llm-endpoint/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: llm-endpoint
revision: 1
spec:
listingKind: COMPONENT
itemType: COMPONENT
displayName: LLM Endpoint
summary: >-
A language-model API you already have, as a building block other items can
Expand Down
9 changes: 4 additions & 5 deletions items/meilisearch/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: meilisearch
revision: 1
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: Meilisearch
summary: Millisecond full-text search engine with typo tolerance, facets, and filters
description: |
Expand Down Expand Up @@ -37,8 +36,8 @@ spec:
- full-text
- indexing
- typo-tolerance
homepageUrl: https://www.meilisearch.com
sourceRepoUrl: https://github.com/meilisearch/meilisearch
supportUrl: https://www.meilisearch.com/docs
homepageURL: https://www.meilisearch.com
sourceRepoURL: https://github.com/meilisearch/meilisearch
supportURL: https://www.meilisearch.com/docs
license: MIT
icon: media/icon.png
9 changes: 4 additions & 5 deletions items/mlflow/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: mlflow
revision: 2
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: MLflow
summary: Experiment tracking and model registry for ML teams — runs, metrics, artifacts
description: |
Expand Down Expand Up @@ -39,8 +38,8 @@ spec:
- mlops
- experiment-tracking
- model-registry
homepageUrl: https://mlflow.org
sourceRepoUrl: https://github.com/mlflow/mlflow
supportUrl: https://mlflow.org/docs
homepageURL: https://mlflow.org
sourceRepoURL: https://github.com/mlflow/mlflow
supportURL: https://mlflow.org/docs
license: Apache-2.0
icon: media/icon.png
11 changes: 5 additions & 6 deletions items/n8n/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: n8n
revision: 1
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: n8n
summary: Fair-code workflow automation with 400+ integrations and a built-in code node
description: |
Expand Down Expand Up @@ -39,8 +38,8 @@ spec:
- workflow
- integration
- low-code
homepageUrl: https://n8n.io
sourceRepoUrl: https://github.com/n8n-io/n8n
supportUrl: https://docs.n8n.io
license: Sustainable Use License
homepageURL: https://n8n.io
sourceRepoURL: https://github.com/n8n-io/n8n
supportURL: https://docs.n8n.io
license: SUL-1.0
icon: media/icon.png
11 changes: 5 additions & 6 deletions items/open-webui/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: open-webui
revision: 2
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: Open WebUI
summary: Self-hosted, multi-user chat interface for any OpenAI-compatible language-model API
description: |
Expand Down Expand Up @@ -52,8 +51,8 @@ spec:
- chat
- openai-compatible
- rag
homepageUrl: https://openwebui.com
sourceRepoUrl: https://github.com/open-webui/open-webui
supportUrl: https://docs.openwebui.com
license: Open WebUI License (BSD-3-Clause with branding clause)
homepageURL: https://openwebui.com
sourceRepoURL: https://github.com/open-webui/open-webui
supportURL: https://docs.openwebui.com
license: LicenseRef-Open-WebUI
icon: media/icon.png
9 changes: 4 additions & 5 deletions items/openclaw/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: openclaw
revision: 1
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: OpenClaw
summary: Self-hosted AI agent gateway with a browser Control UI, bring-your-own model keys
description: |
Expand Down Expand Up @@ -63,8 +62,8 @@ spec:
- assistant
- gateway
- automation
homepageUrl: https://openclaw.ai
sourceRepoUrl: https://github.com/openclaw/openclaw
supportUrl: https://docs.openclaw.ai
homepageURL: https://openclaw.ai
sourceRepoURL: https://github.com/openclaw/openclaw
supportURL: https://docs.openclaw.ai
license: MIT
icon: media/icon.png
12 changes: 0 additions & 12 deletions items/postgres/blueprint.yaml

This file was deleted.

7 changes: 3 additions & 4 deletions items/postgres/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: postgres
revision: 2
spec:
listingKind: COMPONENT
itemType: COMPONENT
displayName: PostgreSQL
summary: The open-source relational database — SQL, ACID transactions, and JSONB in one engine
description: |
Expand Down Expand Up @@ -37,7 +36,7 @@ spec:
- sql
- postgres
- relational
homepageUrl: https://www.postgresql.org
sourceRepoUrl: https://github.com/postgres/postgres
homepageURL: https://www.postgresql.org
sourceRepoURL: https://github.com/postgres/postgres
license: PostgreSQL
icon: media/icon.png
9 changes: 4 additions & 5 deletions items/qdrant/listing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ specVersion: v1
kind: LISTING
metadata:
slug: qdrant
revision: 2
spec:
listingKind: BLUEPRINT
itemType: BLUEPRINT
displayName: Qdrant
summary: Rust vector database for similarity search and RAG retrieval on CPU hardware
description: |
Expand Down Expand Up @@ -46,8 +45,8 @@ spec:
- similarity-search
- rag
- ai
homepageUrl: https://qdrant.tech
sourceRepoUrl: https://github.com/qdrant/qdrant
supportUrl: https://qdrant.tech/documentation
homepageURL: https://qdrant.tech
sourceRepoURL: https://github.com/qdrant/qdrant
supportURL: https://qdrant.tech/documentation
license: Apache-2.0
icon: media/icon.png
Loading
Loading