YAML konfiguracija (.yaml)
YAML StandardnoYAML Ain't Markup Language (YAML) je dominantan format za serijalizaciju podataka za moderni DevOps, klaud infrastrukturu (Kubernetes, Docker Compose) i CI/CD automatizaciju, naglašavajući čitljivost za ljude kroz čisto uvlačenje razmacima.
Конвертујте YAML у JSON
Бесплатан YAML у JSON конвертор у прегледачу. Конвертујте фајлове тренутно без слања на сервер уз 100% приватност.
Pregledaj i metapodaci
Operativni sistemi i analizatori datoteka identifikuju YAML datoteke proverom početnog binarnog niza bajtova:
Potpis zaglavlja na nivou bajtova (Magic Bytes)
Operativni sistemi i analizatori datoteka identifikuju YAML datoteke proverom početnog binarnog niza bajtova:
HEX POTPIS (OFFSET 0):
2D 2D 2D 0AASCII REPREZENTACIJA: ---\n
Standardizacija: YAML 1.2.2 Specification
Tehničke specifikacije
| Arhitektura kontejnera | Indentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases |
| Kompresija | Uncompressed text stream |
| Bajtni redosled (Endianness) | UTF-8 / Unicode text stream |
| Prostori boja | N/A (Data Serialization) |
| Kanali i struktura | Mappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref) |
| Maksimalne dimenzije | Unbounded document size (supports multi-document streams separated by '---') |
| Transparentnost | None |
| Strimovanje i progresivno učitavanje | Multi-document streams allow sequential document-by-document processing |
Tehnička matrica poređenja: YAML vs Konkurenti
| Tehnički atribut | YAML (Trenutno) | JSON | TOML | XML |
|---|---|---|---|---|
| Stil sintakse | Hijerarhija razmaka za uvlačenje | Stroge uglaste zagrade i navodnici | Tabele i ključ=vrednost parovi | Opširne otvarajuće/zatvarajuće oznake |
| Podrška za komentare | Izvorna (# komentari) | Komentari nisu dozvoljeni | Izvorna (# komentari) | <!-- komentari --> |
| Usvajanje u DevOps-u | Univerzalni standard (Kubernetes, CI/CD) | Univerzalni API standard | Konfiguracija Rust/Python paketa | Nasleđena preduzetnička konfiguracija |
| Ponovno korišćenje podataka | Izvorna sidra (&) i alijasi (*) | Nema (ručno dupliranje) | Nema (ručno dupliranje) | XML entiteti |
Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak
Greška parsera: 'mapping values are not allowed here' ili greška uvlačenja.
Osnovni uzrok: Mešanje tabulatora sa razmacima ili neusklađeni nivoi uvlačenja.
Oporavak: Pretvorite tabulatore u razmake i potvrdite sintaksu pomoću File2File YAML Formatter-a.
Bezbednosna analiza i vektori napada parsera
YAML parseri koji podržavaju oznake prilagođenih tipova (poput funkcije 'yaml.load()' u PyYAML-u) istorijski su omogućavali izvršavanje udaljenog koda putem instanciranja proizvoljnih objekata.
Poznati vektori napada
- Izvršavanje proizvoljnog koda kroz nesigurne oznake dereferenciranja objekata (npr. '!!python/object/apply').
- Eksplozije širenja entiteta (ekvivalent milijarde smeha korišćenjem YAML sidra i alijasa).
- Ranjivosti mešanja tipova usled implicitnog parsiranja boolean vrednosti i vremenskih oznaka.
Defanzivne najbolje prakse:
Istorijat i prekretnice
Ključne prednosti
- Neprikosnoveni standard za modernu klaud infrastrukturu: koristi se univerzalno u Kubernetes manifestima, Docker Compose-u i GitHub Actions-u.
- Čista, čitljiva sintaksa: eliminiše nered u vidu zagrada, uglastih zagrada i navodnika kroz intuitivno uvlačenje.
- Podržava reference i sidra (&anchor / *anchor) za ponovno korišćenje ponovljenih konfiguracionih blokova bez dupliranja.
Tehnička ograničenja i nedostaci
- Osetljivo na razmake: slučajni tabulator ili jedan dodatni razmak može pokvariti hijerarhiju dokumenta ili izazvati greške u parsiranju.
- Ozloglašene greške u konverziji tipova: reči pod navodnicima poput 'no', 'on', 'yes' ili kodovi država ('NO' za Norvešku) mogu tiho postati boolean vrednosti.
- Znatno manja brzina parsiranja u poređenju sa binarnim formatima ili strogim JSON-om.
Zanimljivosti
- YAML je originalno značilo 'Yet Another Markup Language', ali je šaljivo preimenovano u rekurzivni akronim 'YAML Ain't Markup Language' da bi se naglasila serijalizacija podataka.
- „Norveški problem" je čuvena programska greška gde je kod države 'NO' u YAML datoteci parsiran kao boolean vrednost 'false'.
- Svaka validna JSON datoteka na svetu je istovremeno i 100% validna YAML datoteka.
Često postavljana tehnička pitanja
Čemu služi YAML?
YAML je primarni konfiguracioni jezik za računarstvo u oblaku, primenu Kubernetes klastera, Docker Compose fajlove, GitHub Actions radne tokove i softverska podešavanja.
Mogu li da koristim tabulare (tabs) u YAML fajlovima?
Ne. Zvanična YAML specifikacija strogo zabranjuje upotrebu karaktera tabulatora za uvlačenje; uvek morate koristiti razmake (obično 2 razmaka po nivou).
Kako mogu da konvertujem YAML u JSON?
Možete da konvertujete YAML fajlove u čist, validiran JSON jednim klikom koristeći File2File.app direktno u vašem veb pretraživaču uz potpunu privatnost.
Povezani parovi konverzije za YAML
Pretvaranje YAML konfiguracionih datoteka u JSON format prevodi čitljive tekstualne strukture sa uvlakama u stroge objekte koje mašina može parsirati za veb aplikacije.
Pretvaranje JSON konfiguracionih datoteka u YAML format transformiše krute strukture programskih podataka u čiste dokumente čitljive ljudima koje sistem administratori mogu mnogo lakše uređivati.