Documentation Index
Fetch the complete documentation index at: https://docs.speckle.systems/llms.txt
Use this file to discover all available pages before exploring further.
Publishing Automate Functions Without the GitHub App
If you’re running a dedicated enterprise deployment and can’t use the GitHub App integration, you can register and publish Automate functions directly through the Speckle server and the Automate API. This guide walks you through the full process: registering a function, building and pushing a Docker image, publishing a version, and making the function available to workspaces.Prerequisites
- Server admin access — Function registration is restricted to users with the
server:adminrole, since it affects server-wide function availability. - Docker installed in your build environment.
- Network access to your Speckle server and Automate host.
Step 1: Register the Function
Send the following GraphQL mutation to your Speckle server (e.g.https://app.speckle.systems) to create a new function entry. This does not publish any runnable code yet — it just registers the function and returns credentials you’ll use in subsequent steps.
Mutation:
Important: Save bothfunctionIdandfunctionTokensomewhere safe. The token is only shown once. If you lose it, you’ll need to generate a new one.
Step 2: Build and Push the Docker Image
Automate runs functions as Docker containers. The Automate execution engine also acts as a private container registry, so you push your image directly to it.For a reference implementation, see how we handle this in our GitHub composite action.
2.1 — Set environment variables
Replace the placeholder values with your actual credentials and release tag. TheRELEASE_TAG should identify this version of your function (e.g. a git tag like v1.0.0).
2.2 — Authenticate Docker with the Automate registry
Use your function token as both the username and password:2.3 — Write your Dockerfile
Your image only needs to contain your application code and its dependencies. Do not specify aCMD or ENTRYPOINT — the execution command is provided separately when registering the version (see Step 3).
2.4 — Build the image
Tag the image using your Automate host, function ID, and release tag:2.5 — Push the image to the Automate registry
Step 3: Register the New Version
After pushing the image, notify the Automate API that a new version is available. This is where you specify the entry point command and resource requirements.commitId— The first 7 characters of the git commit SHA for this release.command— The command the execution engine will run inside your container.inputSchema— A JSON Schema string describing the function’s inputs, ornullif there are none.recommendedCPUm— Recommended CPU in millicores (e.g.1000= 1 vCPU).recommendedMemoryMi— Recommended memory in mebibytes (e.g.512= 512 MiB).