Usar um pacote
add, install, remove — e onde o código de terceiro vai parar.
dataforge add resolve, baixa e instala; o adopt encontra o resultado. Quatro arquivos e uma pasta, e cada um tem um dono.
| Onde | O quê | Versionado? |
|---|---|---|
forge.toml | o que você pediu — as faixas | sim |
forge.lock | o que foi instalado — versão e sha256 | sim |
forge_modules/ | os pacotes | não |
~/.dataforge/cache/ | os tarballs, entre projetos | não |
bash
dataforge add validador # a ultima, e grava a faixa
dataforge add tabela@^1.2 # uma faixa explicita
dataforge install # tudo do forge.toml (e do lock)
dataforge list # o que esta instalado
dataforge remove tabela # tira do toml e da pasta
dataforge outdated # o que sobe, e o que exige mudar a faixadataforge
// Depois do 'add', o 'adopt' acha sozinho: ele olha
// 'forge_modules/', subindo ate achar um 'forge.toml'.
//
// adopt validador as V
// out V.cpf("529.982.247-25")
//
// O nome e o do PACOTE, e nao um caminho: e o mesmo 'adopt' que o
// teste da propria biblioteca usa, e e por isso que ele precisa
// funcionar pelo nome — o teste exercita a biblioteca pelo caminho
// que um usuario usaria.
out "o adopt encontra o que o add instalou"O que a extração recusa#
| Recusa | O ataque |
|---|---|
entrada com ../ | Zip Slip: escrever fora da pasta do pacote |
| link simbólico | apontar para fora e ser seguido depois |
| descompactação desproporcional | zip bomb: 1 KB que vira 10 GB |
Continue em O lockfile e O registro.