Koncepti
Kako radi wkdoadogit: što je montiranje, o čemu ovisi vidljivost repozitorija i gdje teku granice dodatka. Što želite učiniti, stoji na ADO-Git; što želite potražiti, u Tehničkoj referenci.
Namjena
Dodatak uključuje u wiki git repozitorije koji su smješteni u Azure DevOpsu: pregledavanje repozitorija, prikaz izvornog koda, uređivanje i commit te naredbe git clone, pull i push preko posrednika — sve preko jednog jedinog servisnog računa, pa čitatelji i urednici ne trebaju vlastitu licenciju. Granica autorizacije su izvorna prava DokuWikija, a ne licencija za Azure DevOps.
Kome je namijenjen: administratorima i urednicima koji žele kod iz Azure DevOpsa učiniti vidljivim ili uredivim u wikiju.
Tri radnje koje dodatak ne obavlja sam
Repozitorij postaje vidljiv tek kad su obavljene tri odvojene radnje. Nijedna ne pokreće sljedeću.
| Radnja | Gdje | Što nastaje |
|---|---|---|
| veza | do=wkdoado na stranici DWDO projekta | opis ADO poslužitelja s ključem i uputom na tajnu |
| montiranje | Administracija > ADO-Git montiranja repozitorija | veza repozitorij ↔ imenski prostor i prava za njega |
| oznaka na stranici | bilo koja stranica unutar DWDO projekta | jedini prikaz repozitorija; montiranje ne stvara nijednu stranicu |
Cijeli postupak s primjerom opisuje Prvi prikaz ADO repozitorija u wikiju.
Montiranja repozitorija
Montiranje povezuje ADO repozitorij s imenskim prostorom DokuWikija oblika code:{projekt}:{repozitorij}, na primjer code:dokuwiki-plugins:wkdoadogit. Tek registrirano montiranje čini repozitorij dostupnim; svaki put pristupa — preglednik, prikaz izvornog koda, git posrednik i preuzimanje arhive — provjerava prava DokuWikija prema tom imenskom prostoru.
Imenski prostor montiranja je virtualan: u njemu ne nastaje nijedna wiki stranica. Nosi li predložak rezerviranu riječ {lang}, montiranje ostaje jedan zapis, a pravila se zapisuju za svaki jezik iz postavke mount_languages (zadano de,en,hr,it,sl).
{{wk:adogit>veza:projekt:repozitorij}} na stranicu unutar DWDO projekta (ovdje ispod {lang}:projects:). Tko registrira montiranje i zatim ništa ne vidi, ima taj drugi korak pred sobom, a ne pogrešku.
Razina vidljivosti i DokuWiki ACL
Razina montiranja jedino je mjesto na kojem se uređuje vidljivost. Prava se čitaju iznova pri svakom zahtjevu, pa promjena razine djeluje odmah. Pravila nastaju za imenski prostor i za imenski-prostor:*; administratori uvijek smiju djelovati kao nadadministratori.
| Razina | @ALL (anonimni) | @user (prijavljeni) | @wvds (razvijatelji) | @wvdse (urednici) | grupe uloga projekta |
|---|---|---|---|---|---|
private | 0 | – | – | 8 | – |
readonly | 0 | 2 | 2 | 8 | – |
showcase | 1 | – | – | 8 | – |
library | 1 | 2 | – | 8 | – |
public | 2 | – | – | 8 | – |
team | 0 | – | – | 8 | readers 1, contributors 2, maintainers 8 |
Grupe uloga razine team nose roleprefix iz dodatka wkdocore i ključ projekta, na primjer @dwdo_dwplugins_maintainers.
Razine showcase i library razdvajaju dva prava koja public dodjeljuje zajedno: pregled u pregledniku i preuzimanje kopije. Uz showcase svatko smije čitati, a nitko klonirati; uz library svatko smije čitati, a klonirati smije svaki prijavljeni račun. Granica je prijava, a ne publika — tko uzme kopiju, račun je koji se poslije može imenovati.
Jedan broj, dva čitanja
Zapisani je broj istodobno pravo DokuWikija i mogućnost ovog paketa.
| Razina | U ovom dodatku | U DokuWikiju |
|---|---|---|
| 1 | pregledavanje i prikaz u wikiju | čitanje stranice |
| 2 | clone, fetch i preuzimanje arhive ZIP | uređivanje postojeće stranice |
| 4 | push u refs/heads/users/<prijava>/ | stvaranje stranice |
| 8 | push bez ograničenja te uređivanje i commit iz wikija | učitavanje datoteka |
Drugi je stupac razlog zašto montiranje na imenskom prostoru sa stvarnim wiki stranicama nije bezazleno: razina public ondje otvara uređivač stranica anonimnim posjetiteljima. Zato pregled u čarobnjaku broji stranice koje imenski prostor već nosi.
conf/acl.auth.php, između redaka # BEGIN wkdoadogit-managed i # END wkdoadogit-managed. Taj blok nemojte uređivati ručno — umjesto toga postavite razinu montiranja. Zapisivač zamjenjuje isključivo taj blok (atomarno, s privremenom datotekom, preimenovanjem i zaključavanjem) i ostavlja sva druga pravila netaknuta, uključujući ona održavana ručno ili preko jezgrenog administratora acl. Uklonjeno montiranje gubi svoja pravila, a imenski se prostor vraća na zadana pravila mjesta.
Drugi faktor: dvije kategorije, dva stupnja
Kad je instaliran Identity, most do=wkdoadogit_stepup traži dokaz.
| Kategorija | Zahtjev | Vrijedi za |
|---|---|---|
mount-admin | MFA_ANY | stvaranje, promjenu i uklanjanje montiranja te registraciju Subversion veza |
token-issue | AUTHENTICATED, instalacija ga može podići | izdavanje osobnog tokena |
Ta se dva stupnja razlikuju jer se razlikuju i radnje: montiranje odlučuje tko vidi koji repozitorij, a osobni se token tiče samo vlastitog računa i treba nekoliko puta dnevno.
Provjera dolazi uz prava DokuWikija, nikad umjesto njih. Bez dodatka wkidentity paket se ponaša nepromijenjeno. Git posrednik joj ne podliježe: radi bez sjednice i ne može voditi interaktivni upit, pa se zahtjev veže uz izdavanje tokena, a ne uz svaki zahtjev koji ga poslije nosi.
Granice i upozorenja
- Registracija montiranja i zapisivanje prava pridržani su administratorima; osobni su tokeni samoposluga.
- Nema finijih prava po podmapi — razina vrijedi za cijelo montiranje.
- Kartice Branches i Tags u zaglavlju preglednika vidljive su, ali neaktivne. Prikazana se grana bira u oznaci; stvaranje grane ili oznake izvedeno je, prebacivanje u sučelju nije.
- Oznaka
{{wk:adogit>…}}ne djeluje izvan korijena projekata jer se veza razrješava preko DWDO projekta stranice. Oznaka{{source>ado:…}}uz to ima put preko imenskog prostora montiranja. - Svaka je ugradnja mrežni poziv, ograničen vremenskim granicama i granicom bajtova u dodatku
wkdoado. - Git se posrednik prema Azure DevOpsu uvijek prijavljuje jednim servisnim tokenom PAT; pushedBy je ondje servisni račun, a autor commita ostaje korisnik wikija.
max_execution_timeu datoteciserver/php/php.iniiznosi 30 sekundi: za provjerene veličine repozitorija bezopasno, kod vrlo velikih sljedeća granica.- Odbijanje je namjerno šturo: nemontirani repozitorij, nepoznata veza i nedostatak prava izvana se jedva razlikuju.
- Obvezujući je izvor preslikavanja razina
Domain/MountAclWriter::TIERS. Pri promjeni održavajte i ovu stranicu i datoteku README dodatka.
Povezane teme
- ADO-Git — ulaz i česti zadatci
- Tehnička referenca — upravljanje montiranjima, oznake, radnje, tokeni, postavke
- Dijagnostika — simptomi s uzrokom i rješenjem
- Podrijetlo pojmovlja razina — zašto popis razina stoji na točno jednom mjestu
- Puštanje u rad — put od veze do prvog montiranja
- Identity — jamstvo na koje se drugi faktor ovdje oslanja