Přeskočit na hlavní obsah

APIS Core

APIS je orchestrační vrstva, která převádí projektové vztahy na spustitelnou automatizaci.

Na úrovni core je APIS zodpovědný za načítání projektového kontextu, resolvování modulů, stavbu grafu závislostí a rozhodování o tom, co se má stát dál ve workflow navázaném na repozitáře.

Co dělá core

Aktuální kódová základna už dnes ukazuje hlavní runtime odpovědnosti APIS:

  • načíst APIS konfiguraci z projektové složky, např. .apis
  • načíst APIS environment proměnné ze systému a z .env souboru
  • připojit se k aktuálnímu Git repozitáři a ke GitLabu, když jsou dostupné přihlašovací údaje
  • detekovat verze a branch flags
  • načíst built-in i projektové moduly
  • převést joby a itemy do flow grafu
  • generovat plán vykonání pro lokální běh i CI/CD pipeline

Jinými slovy, core je ta část, která rozumí projektu jako systému, ne jen jako složce se skripty.

Vstupní body

Hlavním vstupním bodem je příkazová utilita apis.

Současné CLI podporuje parametry pro:

  • úroveň logování
  • umístění environment souboru
  • přepis branche
  • konfigurační adresář
  • push-enabled režim pro externí změny

K dispozici jsou i akce jako:

  • vypsání verze APIS
  • zobrazení načtených modulů
  • kontrola verzovacího tagu
  • inkrementace verze
  • vygenerování plánu

Pokud není zadána konkrétní akce, APIS dnes přechází do terminálového UI.

Projektový kontext

APIS skládá svůj runtime stav ze tří zdrojů:

  1. aktuální repozitář
  2. APIS environment proměnné
  3. APIS konfigurační adresář

Díky tomu lze stejnou projektovou logiku používat:

  • lokálně na vývojářském stroji
  • uvnitř CI/CD
  • uvnitř workflow automatizace založené na Git pipeline

Právě tento sdílený kontext umožňuje APIS udržovat závislé repozitáře v souladu bez nutnosti přepisovat automatizaci pro každé prostředí zvlášť.

Git a povědomí o verzích

Core už dnes obsahuje Git-aware chování přes ApisGit.

Když je k dispozici přístup do repozitáře a autentizace, APIS umí:

  • zjistit aktuální remote
  • detekovat aktuální repozitář a branch
  • číst tagy
  • namapovat aktuální commit
  • pushnout nebo přepsat tagy, pokud je zapnutý push mode

Práce s verzemi je také přímo součástí core runtime.

APIS načítá verze z:

  • Git tagu
  • environment proměnných, např. APIS_DATA_VERSION
  • branch naming rules

Branch model už nyní podporuje flagy:

  • main
  • beta
  • alpha
  • dev

Kromě toho umí z názvu branche číst i další metadata, jako jsou marks nebo major locks. To dává APIS strukturovaný způsob, jak sladit automatizaci s release větvemi.

Načítání modulů

Core nehardcoduje projektové chování přímo v sobě.

Místo toho načítá:

  • built-in moduly, které jsou součástí APIS
  • projektové moduly z konfigurovaného adresáře modules

Po načtení APIS převede tyto moduly na:

  • uzly artefaktů
  • uzly jobu
  • vazby mezi vstupy a výstupy

Právě tento krok umožňuje generování flow.

Generování flow

Jakmile jsou moduly načtené, APIS je převádí do grafu závislostí složeného z jobů a itemů.

Tento graf se používá pro určení:

  • jaké artefakty v projektu existují
  • které joby je poskytují
  • které joby je spotřebovávají
  • jaké pořadí vykonání je validní

Aktuální kódová základna už obsahuje generování flow grafu, serializaci grafu i export pro vizualizaci do HTML nebo Mermaid výstupu.

To je technický základ celé myšlenky APIS: když se změní jeden repozitář, navazující projektová data se mají aktualizovat po známé cestě závislosti, ne přes manuální komunikaci.

Prostředí a výkon

Core také definuje rozhraní pro environments a executors.

To je důležité, protože APIS musí odděleně odpovědět na dvě různé otázky:

  • co je v aktuálním projektovém prostředí k dispozici
  • jak se má práce skutečně vykonat

Oddělením těchto vrstev zůstává APIS modulární i ve chvíli, kdy se projekty liší infrastrukturou nebo runtime strategií.

Aktuální úroveň vyspělosti

Repozitář už dnes obsahuje smysluplnou core architekturu:

  • CLI vstupní bod
  • modulový systém
  • Git integraci
  • verzovací logiku
  • flow model
  • základy triggerů
  • terminálové UI komponenty

Některé user-facing metody jsou zatím placeholdery, ale konstrukční backbone je už dnes dost silný na to, aby bylo APIS možné popsat jako reálný orchestration framework, ne jen jako koncept.