Skip to main content
Register permission nodes so administrators can select consistent names when building roles and player grants. A workload-owned manifest is the preferred source of truth for the permissions that its code checks.

Add a permission manifest

Place this file in your runtime artifact at META-INF/grounds/permissions.json:
META-INF/grounds/permissions.json

Authorize the manifest source

The manifest’s source must exactly match a resource authorized by the workload’s catalog:register capability. For the example above, declare:
This authorizes the workload to register example-lobby; it does not grant access to arbitrary catalog sources. See Integrate In-Game Permissions for the complete Forge service declaration.
Use one stable source ID per workload. Each manifest needs at least one entry. Every entry needs a non-empty key, label, description, and supported scope list; keys must be unique within the manifest.
Declare only scopes that the workload actually evaluates. Catalog metadata does not grant a player access by itself. Environment-scoped policy is configured by administrators and is not a supported workload manifest scope.

Registration behavior

The Velocity plugin discovers active plugin manifests. The Minestom module collects manifests from active Grounds module providers. Each runtime submits the collected manifests asynchronously to its assigned permission instance after startup. Connection failures, rate limits, and service failures are retried with bounded backoff. Invalid manifests and other client errors require a corrected workload declaration or artifact and a new deployment.
An invalid manifest does not stop the runtime. It is skipped while the runtime registers the remaining valid manifests. Correct the packaged JSON and deploy a new workload version to register the missing nodes.

Custom catalog entries

Administrators can create custom entries in Portal for a node that no workload has registered yet. Use this during staged development or for a policy node owned outside a runtime module. Replace the custom entry with a workload manifest when the workload becomes authoritative, and keep its key unchanged so existing grants continue to match your code.

Next steps