Saphan

Co już działa — kontrola po kontroli.

To nie lista funkcji. To fundament, który organizacja dostaje dziś — jeden wiersz na jedną kontrolę: co robi, co odrzuca i co zostawia w rekordzie dla osoby, której przy tym nie było.

Fundament, tak jak jest dostarczany dziś

KontrolaCo działaCo zostaje w rekordzie
Podpisany rekord zarządczy Aktorzy, delegacje, maszyny, seaty i uprawnienia w jednym dzienniku append-only podpisanym Ed25519. Każdy rejestr czytelny dla człowieka jest jego projekcją — odtwarzalną, nigdy źródłem. Cała historia zarządcza, weryfikowalna przez stronę trzecią mającą tylko główny klucz publiczny — bez zaufania do maszyny, która ją wytworzyła.
Brak niejawnej akceptacji Żaden timeout nie oznacza zgody i nie istnieje domyślne auto-accept. Bramka wymaga decyzji człowieka albo jawnej, ograniczonej delegacji z polityki podpisanej przez człowieka; nie ma wartości domyślnej i odrzuca decyzje poza kolejnością. Silnik nie nadaje sobie uprawnień ani nie wykonuje merge. Jeden wiersz na decyzję: aktor, decyzja z zamkniętego słownika, czas i łańcuch uprawnień. „Merged" nigdy nie jest deklarowane — jest tylko obserwowane z prawdziwego merge commita.
Decyzje odporne na manipulację Każda akceptacja to kluczowana, zweryfikowana krotka, sprawdzana ponownie przy merge. Zmień później dowolne pole i weryfikacja pada. Krotka i wynik jej sprawdzenia przy merge.
Sugestia ≠ decyzja Konsultacja AI albo człowieka jest zapisywana jako opinia; decyzja jest odrębnym aktem uprawnionego aktora. Automatyczne uprawnienie musi wynikać z ograniczonej delegacji podpisanej przez człowieka; odejście od sugestii również jest zapisywane. Osobne wiersze rekomendacji i decyzji na każdej bramce — nie tylko co postanowiono, ale co i kto rekomendował.
Tożsamość maszyny z certyfikatu Bez endpointu rejestracji, bez join tokena. Maszynę przyjmuje jawny akt właściciela z powiązaniem certyfikatu; płaszczyzna sterowania łączy się tylko na zewnątrz, a runnery nie trzymają do niej żadnych poświadczeń. Akt przyjęcia w podpisanym dzienniku; łańcuch certyfikatów.
Delegowane, ograniczone uprawnienia Delegacje podpisane kluczem głównym, z zakresem, strumieniami pracy i oknem ważności. Wygaśnięcie to sufit, nigdy wyzwalacz; wycofanie aktora działa natychmiast, niezależnie od niewygasłych delegacji. Delegacja z podpisem nad każdym polem — kto komu co nadał i do kiedy.
Ratyfikowane prawo stałe Dokumenty rządzące tym, jak wykonuje się pracę, są podpisane kluczem głównym w numerowany seryjnie manifest. Każdy dokument weryfikuje się z powrotem do korzenia; agent pracuje pod prawem, którego otrzymanie da się wykazać. Manifest oraz zapis każdego uruchomienia, jakie prawo zostało wstrzyknięte — z jego hashem.
Izolacja uruchomień na poziomie OS — lokalnie Polityka zapisu deny-by-default z sandboksa samego systemu operacyjnego — Seatbelt na macOS, Bubblewrap na Linuksie — składana dla każdego uruchomienia, zanim agent wystartuje. Brak sandboksa odrzuca uruchomienie, zamiast je osłabiać. Rekord uruchomienia nazywa narzędzie, które je izolowało, i katalogi, które pozostały zapisywalne — twierdzenie, które Twój zespół może odtworzyć.
Izolacja uruchomień na poziomie OS — zdalnie Izolacja wymuszana przez jądro (Landlock) dla uruchomień wysyłanych przez SSH. Zdolność maszyny do izolacji jest mierzona, zanim trafi tam praca; maszyna niezmierzona albo zmierzona jako niezdolna odrzuca uruchomienie. Zmierzona zdolność na podpisanym wierszu maszyny; rekord uruchomienia nazywający, co wymusiło.
Ruch wychodzący to lista Uruchomienie, które deklaruje politykę egress, dociera do sieci wyłącznie przez drzwi, którymi ta polityka rządzi: cel jest dopuszczony tylko wtedy, gdy polityka dopuszcza i hosta, i port, a domyślnie nie dopuszcza nic. Host, którego nie da się odciąć, odrzuca uruchomienie, zamiast startować otwarty. W tym wydaniu opt-in per dispatch — nie ma jeszcze domyślnego ustawienia dla całej floty i mówimy to wprost. Digest skompilowanej polityki na wierszu uruchomienia — która lista rządziła tym uruchomieniem. Osądy per połączenie nie są jeszcze zapisywane; to zadeklarowany limit tego wydania, nie projektu.
Żadnych bocznych kanałów między agentami Agenci koordynują się wyłącznie przez zapisywane powierzchnie — ordery, pliki kanałów w worktree strumienia wciągane do rekordu, bramki, skrzynkę insert-only na dyrektywy właściciela. W produkcie nie istnieje komunikacja agent–agent. „Kto komu co powiedział i kiedy" to zapytanie, nie przesłuchanie — historia koordynacji strumienia odtwarzalna z rekordu.
Odmowy jako dane Każda odmowa — silnika, autoryzacji, schematu, polityki — to zapisany, bezkosztowy wiersz z nazwaną klasą. Przyczyny odmów są logowane, nigdy zwracane po kablu. Księga odmów: kontrole, które zadziałały, a nie tylko istnieją.
Monitorowanie — cel dla Prometheusa Demon serwujący wystawia GET /metrics w standardowym formacie tekstowym Prometheusa: uruchomienia po statusie i backendzie, odmowy po klasie, decyzje bramek po bramce i decyzji, wersja schematu magazynu. Wartości etykiet to wyłącznie nazwy klas — nigdy nazwy strumieni, ścieżki ani nazwy aktorów. Odmowy jako metryka pierwszej klasy — w tej architekturze odmowa to sygnał bezpieczeństwa, nie szum. Zbierane przez Prometheusa, którego już masz; nic do instalowania.
Wartości sekretów pozostają poza rekordem Typy konfiguracji i dispatchu przenoszą nazwy oraz referencje, nie wartości sekretów. Pliki kluczy są sprawdzane przed użyciem, a zdalne wykonanie wyłącza przekazywanie środowiska. Proces posiadający poświadczenie może użyć wartości do uwierzytelnienia bez kopiowania jej do rekordu pracy. Konfiguracja po nazwie. Żadnej wartości sekretu w rekordzie operacyjnym, dowodach, logu, kosztach ani eksporcie.
OAuth 2.1 na powierzchni zarządczej Dostęp tylko z bearerem. Team uwierzytelnia przez utrzymywany przez Saphan SaaS saphan-oauth. Enterprise uruchamia saphan-oauth lokalnie albo dopuszcza dowolny IdP klienta przez zatwierdzaną przez człowieka listę issuerów. Klasy zakresów, wycinki na poziomie wierszy per tenant, domyślnie fail-closed. Log dostępu klasy audytowej na każdym transporcie — uczciwe kody statusu, nigdy wartości ani query stringi.
Kontrola kosztów Wycena i twardy limit na uruchomienie ustalone przed wysłaniem; pojemność sprawdzona przed startem; klasy rozliczeniowe na seatach. Koszty rzeczywiste i odchylenie lądują obok dowodów, nie na osobnej fakturze. Księga kosztów, per strumień i per bramka — „ile kosztowała ta zmiana" ma tę samą jednolinijkową odpowiedź co „kto ją zatwierdził".
Przypięty łańcuch dostaw Binaria agentów dostarczane z digestem liczonym na maszynie odbierającej, a tożsamość rozwiązywana ponownie tam, gdzie się wykonują. Na uruchomienie: digest binarium, wersja, hash konfiguracji, wstrzyknięte prawo stałe i jego hash.
Twój magazyn rekordu Magazyn rekordu PostgreSQL na infrastrukturze, którą kontrolujesz, konfigurowany po nazwie, poświadczenia tylko przez nazwę zmiennej. Kod, dowody uruchomień i rekord operacyjny nie przechodzą przez infrastrukturę Saphan. Team przekazuje tożsamość do OAuth Saphan; Enterprise pozostawia ją lokalnie. Oba warianty mogą używać sygnalizacji mobilnej niosącej tylko nieprzejrzysty identyfikator bramki i licznik badge’a. Twoja baza plus zwykłe pliki w Twoim gicie. Czytelne bez naszych narzędzi.
Zgodność mierzona, nie deklarowana Scenariusze end-to-end uruchamiane na prawdziwym binarium: dyscyplina bramek, blokowanie dispatchu, odporność na injection, źle zaadresowane instrukcje, przepływ OAuth, kontrola bearera, parytet projekcji. Wyniki testów zgodności, odtwarzalne na Twojej instalacji.

Fail-closed to styl domu: nierozpoznana wartość konfiguracji, brak sandboksa, niejednoznaczny adres bind — każde odrzucane z nazwaną klasą, zamiast cofać się do słabszej postawy. Tam, gdzie kontrola jeszcze nie wymusza, dokumentacja mówi to wprost, a roadmapa ją nazywa.

Jak te wiersze mapują się na ISO 27001, ISO/IEC 42001, SOC 2, NIST AI RMF i EU AI Act →

Więcej o Saphan Studio

Współpraca pilotażowa

Skontaktuj się z nami — hello@saphan.ai