Templates#
A template is a versioned package you install into a workspace in one go. It asks for a few inputs — a choice, a number, a Credential, a deployment — and makes the resources it describes from them: functions (published, with an alias on the version), runs and long-running services with an endpoint inside the workspace, drives, models, deployments, agents and flows. It links them — a function becomes a tool of a deployment — and can declare a test.
What one install made is an installation. Its parts are the workspace's own resources, as if you had made them one by one: you see them on their usual pages, and you may change them. The installation keeps them together: its page shows every part and its state, tries it, upgrades it to a newer version of the template (showing first what changes), and uninstalls it.
flowchart LR
t["Template web-search v1<br/>inputs: backend, attach_to"] -- "install as web-search" --> i(("Installation<br/>web-search"))
i --> g["Replica group<br/>web-search-searxng"]
i --> e["Endpoint<br/>web-search-searxng"]
i --> f["Function web-search<br/>v1, prod"]
f -. "tool web_search" .-> d["Deployment chat"]
Where templates come from#
| Source | What | Who sees them |
|---|---|---|
| Official | Astralyx's: tools for models — web search, fetch a page, Wikipedia, weather, a calculator, the current time —, search over your own sites and documents, LoRA fine-tuning, batch inference, evaluation and Open WebUI. | Every workspace. |
| Your organisation | Templates its people made from their resources or wrote, and published. Versions may wait for an organisation admin's approval (Marketplace → Settings → Require approval). | Every workspace of the organisation, or only the workspaces chosen. |
Agent and flow templates published to the organisation's marketplace, and a workspace's run templates (New run → Start from a template), are templates too: they are listed with the others and installed the same way. A marketplace template's references (a Credential, a deployment, a drive) are its inputs, with the names it had as defaults.
Categories#
The gallery shows templates by category. Every organisation has the
official ones — Tools for models, Training and fine-tuning, Batch
inference, Evaluation, Data and search, Apps and services —
and may add its own (Templates → Categories, by who manages the
organisation's marketplace: its owners and admins). A template your
organisation publishes is in one of them (metadata.category); a category
is removed only once no template is in it.
How an install works#
- Everything is checked first. The inputs (types, ranges, what is needed), every resource's name and specification, the links: every problem is listed, and nothing is made until there is none. A name already taken in the workspace is refused, never taken over.
- Each resource is made as you, with your own permission for it, in
your workspace: installing a template that makes a replica group needs
the permission to make replica groups. Functions are published
(version 1) and the template's aliases (
prod) pointed at it. - A resource waits for what it needs. A template says which parts are
made first (
needs) and what they are waited for until: ready (a service's workers healthy, an endpoint answering) or succeeded (a run finished successfully). Fine-tuning's five runs go one after the other; web search's tool is given to the model once SearXNG answers. Such an install goes on by itself after you leave the page — as you — and its page shows the step it is on and why it waits. - Links are made once what they need is done: a function given to a deployment as a tool.
- If a step fails — refused, a run that failed, or a step waited for longer than the template allows — what was made is removed again, and the installation says what failed and what was removed.
flowchart LR
d[("Drive ft")] --> p["Run ft-prepare"] -- succeeded --> t["Run ft-train<br/>(GPU)"] -- succeeded --> e["Run ft-evaluate"] -- succeeded --> m["Run ft-merge"] -- succeeded --> c["Run ft-convert"] -- succeeded --> r["Model ft<br/>(GGUF)"]
Every resource made carries the labels astralyx.cloud/template,
astralyx.cloud/template-version, astralyx.cloud/installation and
astralyx.cloud/part, so you can find an installation's parts anywhere
labels show.
Secrets#
A template never holds a secret, and neither does an installation. An input
of type secret names a Credential of the
workspace and the key in it ({"credential": "tavily", "key": "api_key"});
the value is read on the machine that runs the function or the run, as for
any Credential. A template whose specification looks like it holds a key is
refused when it is published.
Permissions#
| Permission | Lets you |
|---|---|
templates:read |
See the templates and the installations. |
templates:install |
Install, upgrade and uninstall — each part also needs its own permission (functions:create, replica-groups:create…). |
templates:publish |
Make and publish templates from the workspace. |
functions:call |
Test an installation (it calls one of its functions). |
The editor role holds all four; viewer reads.