Vi ste ovdje: start » hr » Interna dokumentacija » DokuWiki proširenja (WvdS) » ADO-Git » Koncepti

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).

Montiranje čini repozitorij dostupnim, ne i vidljivim. Prikazuje se isključivo ondje gdje autor postavi oznaku {{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.

Pravila stoje u upravljanom bloku datoteke 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_time u datoteci server/php/php.ini iznosi 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

hr/wiki/dwe/wkdoadogit/concepts.txt · Zadnja izmjena: od 0.0.0.0