Handleiding bij de broncodepreview · 0.1.0
Bron- en clientbevoegdheden
Begrijp de afzonderlijke beslissingen waardoor een client werk mag aanvragen en een scanner broncode mag lezen.
De API-referentie is in het Engels.
Een editorverbinding, geautoriseerde bronmap en goedgekeurde beschermde repository beantwoorden verschillende vragen. CodeSecurity controleert elk op de relevante grens. Een projectnaam of door een client ingediend pad autoriseert op zichzelf geen brontoegang.
Scheid beslissingen van de eigenaar
Clientbevoegdheid
- Browsersessie
Gekoppelde HttpOnly-sessie; wijzigingen vereisen ook de exacte Origin en CSRF-waarde.
- IDE-capability
Goedkeuring bindt het bedoelde profiel en de bevoegdheidsgeneratie.
Verzoektoelating
- Route- en eigendomscontroles
De client moet voldoen aan routescopes en operatiespecifieke controles.
- Bronautorisatie
Een expliciete hosteigenaaractie maakt alleen beoordeelde nauwe bronmappen of ondersteunde momentopnamen beschikbaar.
Repositorybescherming
- Goedkeuring als repositorylid
De bedoelde editorgeneratie krijgt toestemming voor de exacte repository.
- Toepassing op de host
Expliciet Apply wijzigt de lokale clone; aangevraagde toestand alleen is geen installatie.
Verbindingen
Browsersessie naar Route- en eigendomscontroles
Browserlidmaatschap omzeilt geen operatiespecifiek eigendom.
IDE-capability naar Route- en eigendomscontroles
Alleen de exacte capability-allowlist wordt toegelaten.
Route- en eigendomscontroles naar Bronautorisatie
Een project kiezen of registreren geeft op zichzelf geen hostbrontoegang.
Route- en eigendomscontroles naar Goedkeuring als repositorylid
Gewoon IDE-lidmaatschap verleent geen repositorylidtoestemming.
Goedkeuring als repositorylid naar Toepassing op de host
De goedgekeurde instelling moet nog expliciet op de bedoelde clone worden toegepast.
| Beslissing | Toestemming | Wat apart blijft |
|---|---|---|
| Browserauthenticatie | Lokale controltoepassing gebruiken via de sessiegrens | Onveilige verzoeken vereisen nog toegestane origin en CSRF-bescherming. |
| IDE-lidmaatschap | Routes gebruiken binnen capabilityscopes en actieve generatie | Workspace Trust, brontoegang en repositorybeschermingsgoedkeuring. |
| Workspace Trust | Ondersteunde editoracties voor die werkruimte | Een bredere containerbronmount of goedkeuring van een nieuwe eigenaar. |
| Bronmapautorisatie | Bestaande nauwe bronmap alleen-lezen mounten | Projectregistratie en de gekozen reikwijdte van elke scan. |
| Momentopnametoelating | Begrensde brongeneratie met gecontroleerde identiteit bewaren | Willekeurige hostbestandstoegang of uitvoeren van geüploade bron. |
| Git-beschermingsgoedkeuring | De exacte goedgekeurde editorgeneratie bescherming van de gekozen repository laten beheren | Bewijs van toegepaste hosthook, actueel pushbewijs of serverhandhaving. |
Browser- en editorbevoegdheden kunnen onafhankelijk worden ingetrokken. IDE-verzoeken worden gecontroleerd tegen exacte routescopes en actieve capabilitygeneratie. De control-API is geen algemene API-sleuteldienst. De authenticatiegids legt de ondersteunde clientroute uit.
De verzoekgrens valideert ook Host en Origin en weigert inlogmateriaal in URL’s. Authenticatie vervangt geen routespecifieke eigendomscontroles. Zie beveiligingsmiddleware en IDE-autorisatie.
Gemounte bron is een expliciete hostgrens
Bij ondersteunde POSIX- en Remote WSL-workflows kiest de eigenaar bestaande nauwe bronmappen. De hosthelper canonicaliseert het pad en weigert brede bronmappen, onveilige padvormen en waarden die niet letterlijk in de Compose-omgeving kunnen worden geserialiseerd. Hij staat maximaal 32 afzonderlijke geconfigureerde bronmappen toe. Compose maakt geen ontbrekende bindbron aan om een verzoek te laten slagen.
De API heeft geen projectbronmount. Haar preview controleert of het aangevraagde pad binnen de geconfigureerde bevoegdheid ligt en geeft een beslissing zonder project of job aan te maken. Projectaanmaak registreert die bronidentiteit. Bij uitvoering controleert de scanner zelfstandig het echte pad en gebruikt begrensde leesoperaties; de lexicale API-padcontrole is geen bewijs van veilige toegang.
Scans van geselecteerde bestanden en mappen blijven binnen de geautoriseerde repository. De scanner valideert het doel en legt de bronweergave vast voor tooluitvoering. Een verzoek kan een geselecteerde map niet veranderen in toestemming om buiten de bronmap te lezen.
Beginpunten in de implementatie zijn bronmapvalidatie, bronpreview en projectaanmaak en descriptorrelatief bronlezen.
Momentopnamen dragen bron, geen bredere mount
Ondersteunde native Windows-workflows en controles van onveranderlijke Git-bomen gebruiken speciale momentopnameopslag. De API valideert bestandspaden, aantallen, groottes en inhoudsidentiteit voordat een verzegelde generatie wordt gepubliceerd. Een momentopnamescan moet de exacte verwachte digest noemen; een project met gemounte bron kan niet stilzwijgend een upload vervangen.
| Grens | Vastgelegde implementatie |
|---|---|
| Momentopnamepayload | Maximaal 5.000 bestanden, 8 MiB per bestand en 64 MiB broninhoud. |
| Bewaarde of onderbroken generaties | Maximaal 256. |
| Opslaginventaris | Maximaal 65.536 bestandssysteemitems en 64 bronmapniveaus. |
| Totale momentopnameopslag | Maximaal 2 GiB, rekening houdend met allocatie en metadataoverhead. |
| Vrijeruimtetoelating | Nieuwe allocatie plus nog 2 GiB reserve moet beschikbaar zijn. |
Publicatie en expliciete verwijdering delen een private no-follow-lock. Een gelijktijdige schrijver krijgt snapshot_storage_busy; onveilige of onleesbare opslag geeft snapshot_storage_unavailable; capaciteitstekort geeft snapshot_storage_full. Deze weigeringen plannen geen verborgen herpoging en verwijderen geen ouder bewijs automatisch.
Een identieke verzegelde generatie wordt gevalideerd en hergebruikt zonder extra kopie, ook als toelating voor nieuwe schrijfacties vol is. Onderbroken publicatie verbruikt nog opslagbudget. Alleen expliciet beoordeelde passende brongeneraties komen voor verwijdering in aanmerking. Andere processen kunnen hostschijfruimte gebruiken; deze lokale grenzen beloven dus niet dat de hele schijf nooit vol raakt.
Zie momentopnametoelating en het opslagcontract. Vastleggingslimieten verschillen van de kleinere scannerlimiet voor geschikte tekst, beschreven onder scannen.
Bind bronnavigatie aan actueel bewijs
Het bestandspad van een bevinding is bewijs, geen instructie om een willekeurig bestand te openen. Bronopenopdrachten binden de gekozen IDE-capabilitygeneratie, bevindingrevisie en collectierevisie. Verouderde of onduidelijke ontvangers vereisen verzoening.
Bevindingen uit vastgelegde bomen hebben een strengere grens: de API weigert een verondersteld gelijk huidig werkruimtebestand te openen. De huidige werkboom kan afwijken van de historische bron van de bevinding. Bekijk in plaats daarvan de vastgelegde details. Deze weigering staat expliciet in IDE-bronopdrachten.
Bewaar de grens bij integratie
Gebruik het ondersteunde browser- of IDE-bevoegdheidsmodel en voer aanvullende eigendomscontroles van de resource uit. Verruim geen bronmappen voor een verouderde capability, behandel padpreview niet als scannerafronding en leid geen native platformkwalificatie af uit het bestaan van momentopnamecode. Werkelijk platformgedrag vereist bewijs van de exacte gebruikte bron, image en client.