Så fungerar det
Plattformen
Ett program, en datamodell, tre vägar in. Den här sidan förklarar hur delarna hänger ihop.
En instans per företag
Varje företag körs i sin egen instans med egen databas, egna användare och egen adress. På den hostade tjänsten skapar ett kontrollplan instansen åt dig efter registreringen och ger dig dess adress; den som registrerade sig blir instansens första administratör. Du kan också köra samma program själv. Se Instanser.
Lagringen är SQLite för att prova och PostgreSQL för skarp användning. Poster lagras tills vidare som JSON-dokument; kommandolagret kontrollerar fälttyperna, och en schemahanterare är planerad.
Moduler är appar
En app är en modul: en beskrivning av modeller, fält, behörighetsgrupper och arbetsflödesåtgärder. Fem moduler är inbyggda (Contacts, Products, CRM, Sales, Invoicing). Tjugotvå till medföljer som paket. Du lägger till appar från marknadsplatsen med ett klick, eller laddar upp din egen fil.
Eftersom alla moduler går genom ett gemensamt register är en kontakt samma kontakt i CRM, Sales och Invoicing, och varje modul får samma API, skärmbilder, behörigheter och integritetsregler. Se Appar och moduler och listan över appar.
Marknadsplats
Marknadsplatsen är en statisk värd som serverar index.json och en obop.toml per paket. Den medföljande katalogen levereras inuti programmet; du kan också peka en instans mot din egen värd. Varje nedladdning valideras på samma sätt som en uppladdning. Se Marknadsplats.
Behörigheter
Behörighetsgrupper som crm.user eller invoicing.manager anges av modeller, fält och åtgärder. Personer har grupper; agenttoken har en delmängd av ägarens grupper. Se Behörighetsgrupper.
Dataklasser och maskering
Varje fält deklarerar en dataklass (ingen, offentlig katalog, intern, konfidentiell personal, särskild kategori, finansiell, hemlig) och om det är en personuppgift. Människor ser värden enligt sina behörigheter. Agenter ser personuppgifter som stabila platshållare och känsliga klasser inte alls, och kan skicka tillbaka platshållare för att hänvisa till ett värde utan att se det. Se Dataklasser och maskering.
Arbetsflöden och godkännanden
Tillståndsändringar är namngivna åtgärder. En åtgärd kan kräva en strängare grupp och kan kräva godkännande. En agent kan bara föreslå en åtgärd som kräver godkännande: servern returnerar en plan och ändrar ingenting förrän en person godkänner den. Att ta bort poster är också något agenter bara föreslår. Se Arbetsflöden och godkännanden.
Tre gränssnitt, en uppsättning kommandon
| Gränssnitt | För | Hur |
|---|---|---|
| Webbapp | Människor | Genereras från modulbeskrivningarna: listor, tavlor, formulär. |
| REST | Skript, tjänster, agenter | POST /api/{model}/{command} med en bärartoken. REST-referens |
| MCP | AI-assistenter | obop mcp över stdio, ett verktyg per kommando. Anslut via MCP |
| CLI | Skal och cron | obop call model command key=value. CLI-referens |
Alla anropar samma dispatcher, så behörighetskontroller, maskering och godkännanden är identiska.
Vad det inte är (ännu)
Tänk på det här innan du binder dig: det finns inga kodnivåer, så moduler kan inte beräkna fält eller köra sidoeffekter; det finns inga behörigheter på radnivå; det finns ingen granskningslogg, inget verktyg för dataexport och inga säkerhetskopior för den hostade tjänsten. Färdplanen listar vad som är byggt och vad som inte är det.