Krav: forvalte tilgangskatalogen gjennom API, med eget nivå for dokumentasjon (BRU-TIL-KAT-001/002) - #563
Open
krhoybraten-sikt wants to merge 1 commit into
Open
Krav: forvalte tilgangskatalogen gjennom API, med eget nivå for dokumentasjon (BRU-TIL-KAT-001/002)#563krhoybraten-sikt wants to merge 1 commit into
krhoybraten-sikt wants to merge 1 commit into
Conversation
…1/002) Tilgangskatalogen forvaltes i dag bare av databaseforvaltningen. Kravene gir den et API med to rettighetsnivåer: utviklere hos Sikt kan opprette, endre og ta en tilgang ut av bruk, mens en egen rettighet gir rett til å oppdatere beskrivelsen — og ingenting annet. Skillet er hensikten. Dokumentasjonen av en tilgang eldes raskest og skrives best av dem som kan fagområdet, mens ingen får eller mister tilgang av at teksten endres. Avgrensningen til beskrivelsen er derfor formulert som et håndhevingskrav: et forsøk på å endre noe annet skal avvises i API-et og i datalaget, uansett inngang, også når det følger med i den samme forespørselen som en gyldig beskrivelsesendring. Kravene omfatter også en listespørring over hele katalogen, paginert og forutsigbart sortert. Ingen av dagens innganger viser katalogen i sin helhet — alle listene er avledet av tildelinger — så en tilgang uten tildelinger er i dag usynlig i løsningen. Begge nivåene trenger den listen, dokumentasjonsnivået mest, siden det er de udokumenterte tilgangene arbeidet handler om. Designnotatet peker på de to hullene kravene forutsetter tettet: listespørringen, og en markør for at en tilgang er tatt ut av bruk — katalogen har i dag ingen livsløpstilstand, og sletting er utelukket fordi tildelinger og tak refererer koden.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tilgangskatalogen — listen over hvilke tilganger som finnes, og hva hver av dem gir — forvaltes i dag bare av databaseforvaltningen. Denne PR-en beskriver kravene til å forvalte den gjennom API, med to rettighetsnivåer.
De to nivåene
Begrunnelsen for det andre nivået er at dokumentasjonen av en tilgang eldes raskest og skrives best av dem som kan fagområdet, mens risikoen er lav på en presis måte: en beskrivelse leses ikke av autorisasjonen. Ingen får eller mister tilgang av at teksten endres, og ingen tildeling berøres. Uten et eget nivå må hver tekstforbedring gå gjennom dem som kan endre modellen — og da blir den ikke gjort.
Kolonneskopet er et håndhevingskrav
Den delen som er verdt review: at dokumentasjonsrettigheten bare omfatter beskrivelsen er formulert som et krav til håndhevingen, ikke til hvilke felter en flate viser. En flate som skjuler kodefeltet, over et API som tar imot hele katalograden, oppfyller ikke kravet — da er avgrensningen bare en presentasjon, og enhver klient som snakker med API-et direkte står utenfor den.
Featuren har derfor egne scenarioer for de to formene som skiller et håndhevet kolonneskop fra et presentert et: en forespørsel som endrer både beskrivelsen og noe annet avvises i sin helhet, og avgrensningen gjelder likt når API-et brukes direkte. Designnotatet anbefaler dessuten at dokumentasjonsnivået får sin egen operasjon, som bare tar imot en kode og en beskrivelse, framfor å dele en generell endringsoperasjon og filtrere på rettighet inne i den.
Katalogen kan ikke listes i dag
Kravene omfatter også en listespørring over hele katalogen, paginert og forutsigbart sortert, lesbar for begge nivåene. Ingen av dagens innganger viser katalogen i sin helhet: listene som finnes er alle avledet av noe annet — tilgangene en applikasjon har, tilgangene jeg selv har, tilgangene jeg kan tildele. En tilgang som ennå ikke er tildelt noen finnes dermed i modellen, men er usynlig i løsningen.
Det rammer begge nivåene, og dokumentasjonsnivået hardest: de udokumenterte tilgangene er nettopp dem som ofte ikke er tildelt noen, altså dem ingen liste viser. Paginering er tatt inn i kravet framfor å overlates til utformingen, fordi katalogen verken har organisasjon eller miljø å avgrense på.
To hull kravene forutsetter tettet
Designnotatet navngir dem eksplisitt, siden begge er modellarbeid og ikke bare flatearbeid:
Valg
BRU-TIL-KAT-001ogBRU-TIL-KAT-002, etter mønsteret fra naboene under samme kapabilitet (BRU-TIL-SAM-*for organisasjonssamlinger,BRU-TIL-DEL-*for delegeringstak). Plassert i en ny kapabilitetsmappe11 Tilgangsstyring/04 Tilgangskatalogen.Implementasjonen kommer i FS-plattformen; denne PR-en dekker kravsiden.
Ikke merge — til gjennomlesning.