Skip to main content
uniac.System is the base class for kind=app packages — deployable compositions. It is a pure marker subclass of NodeSpec, identical in shape to Service. The distinction is intent and the kind field in uniac.json: a System is what you deploy.
from uniac import System, load

Declaring a System

from uniac import System, load
from db import Db
from cache import Cache

class Api(System):
    db: Db
    cache: Cache

    def __init__(self, log_level: str = "info"):
        self.db = Db()
        self.cache = Cache()
        self.log_level = log_level

service = load(Api)
load reads UNIAC_INIT_* env vars into __init__ keyword args, constructs the instance, validates that every annotated Node is set, and hydrates each Node’s .url from the deploy-time wiring.

What System provides

Same as Service: the validation and walk hooks inherited from NodeSpec. No additional methods. Use Service for libs and System for the unit you deploy.