Serverafledt kontekst
Produktions-tokenet henviser til en grant med apprevision, autoriserende aktør og organisation. Serveren kontrollerer denne relation og udleder konteksten før domænehandlingen. Partnerpayloads accepterer derfor ikke organization_id, customer_id eller et bruger-id som en måde at vælge tenant på.
Der er ikke et generelt GET /organizations-endpoint i partner-API'et. Kundens organisationsvalg foregår i det beskyttede samtykkeflow. Det er ikke en liste over alle Hours' kunder, som udvikleren får efter appoprettelse.
Udviklerarbejdsrum er noget andet
Appens arbejdsrum tilhører udgiveren og indeholder udviklermedlemmer. Kundens organisation tilhører den virksomhed, appen arbejder for. En person kan indgå i begge relationer, men det gør dem ikke til samme identitet eller samme rolle.
Et workspace-admin kan vedligeholde en app uden at have adgang til kundens bogføring. En kundeejer kan autorisere en godkendt app uden at være medlem af udgiverens udviklerteam. Reviewrollen er igen en separat intern Hours-rolle.
Konto- og aktørhistorik
Hours' eksisterende datamodel rummer både brugerbaserede customer_id-referencer og organisationsreferencer. Gatewayen antager ikke, at et fælles customer_id alene dokumenterer korrekt juridisk enhed. Den bruger eksplicit organisation og de kontroller, den konkrete domænefunktion kræver.
Det betyder også, at historiske rækker uden en afklaret organisationsrelation ikke automatisk bliver tilgængelige for en partner. Et teknisk join eller en fallback til brugerens første organisation er ikke et kundemandat. En sådan historik kræver en særskilt afklaring i Hours, ikke en kreativ klientmapping.
Flere virksomheder
En integration til flere virksomheder skal have en separat grant og tokenkontekst for hver organisation. Gem mappingen mellem din eksterne kundeidentitet og den konkrete grant sikkert. Undgå én global variabel for "aktiv kunde" i en worker, der håndterer flere organisationer samtidigt.
Et kædehovedkontor får ikke automatisk adgang til alle butikker gennem én grant. Et koncernforhold er et forretningsforhold; det er ikke den tekniske autorisation til enhver underliggende juridisk enhed. Se kæder.
Test af grænsen
Brug to syntetiske organisationer med forskellige referencer. Test at token A ikke kan anvende konto B, at et frit organization_id afvises, og at et skift af ejerstatus stopper nye produktionskald. Test også forsinkede svar efter et kontoskift i konsollen.
En 403 skal behandles som en afvisning. Klienten må ikke gentage kaldet uden organisationsfilter, falde tilbage til en demokonto eller vælge en anden grant for at få handlingen igennem. Ukendt organisation betyder stop.