This is a proposal of a Squid metadata template specification. Squid Metadata reflects how the Squid is meant to be deployed and what it actually does. At the same time it is agnostic with respect to what it does. Exclamation mark (!) means the field is mandatory, (?) means it's optional
squid: {
version!: "v1", // version of the Squid API reflected in the API endpoint
slug!: "balances", // API endpoint will be of the form .../<slug>/<version>
title!: "DotSama Balances", // Squid title as shown in public explorers, e.g. Aquarium
description?: "Sample Squid collecting balances from parachains", // Squid description as shown in public expolorers, e.g. Aquarium
tags?: [ "DeFi", "Balances", "Wallet" ], // Tags for search squids agains keywords
palletes?: [ // Pallets to search squids against keywords
"balances"
],
logo?: "assets/logo.png", // must be relative to the squid root folder
deploy!: {
init!: "<init command, e.g. migrations>",
api!: "<gql server command>",
store?: [{
kind: "postgres", // only postgres is supported for now
provision: "auto", // db is provided by the deployment. only "auto" is supported for now
limits?: { // resource limits for the store
size: 100Gb // default is 100Gb
}
}],
secrets?: [ // list of secrets that has to be provided by the deployment environment. Deployment should fail is no variable is available
"MY_SECRET_VARIABLE",
],
processors!: [
{
network!: "kusama", // same as in spec
genesis!: "0x2abcdef", // genesis block of the network
name!: "kusama-balances",
limits?: {
CPU: 2, // number of cores
RAM: 1G
},
run!: "<run command>"
},
{
network!: "polkadot",
genesis!: "0xabcde", // genesis block
name!: "polkadot-balances",
run!: "<run command>",
limits?: {
CPU: 2, // number of cores
RAM: 1G
},
},
]
}
}
This is a proposal of a Squid metadata template specification. Squid Metadata reflects how the Squid is meant to be deployed and what it actually does. At the same time it is agnostic with respect to what it does. Exclamation mark (!) means the field is mandatory, (?) means it's optional