@justmpm/firebase-audit 0.5.18 → 0.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/package.json +1 -1
- package/skill/SKILL.md +1 -0
package/README.md
CHANGED
|
@@ -181,6 +181,8 @@ Limites assumidos: Emulator não prova índice (produção exige, ele deixa pass
|
|
|
181
181
|
| STORAGE_* | Escrita aberta (ERROR) / curinga total na raiz (WARNING) / curinga em pasta dedicada ou leitura aberta = vitrine a confirmar (INFO, prefira `get` sem `list`) / anônimo (INFO, por bloco do match) | ERROR/WARNING/INFO | CONFIRMED/PROBABLE |
|
|
182
182
|
| APPCHECK_* | Carimbo observado / verificação manual (onRequest por rota) | INFO | CONFIRMED/PROBABLE |
|
|
183
183
|
|
|
184
|
+
IDs FBA005–FBA008 são legados aposentados (sem check fantasma): o conjunto atual é FBA001–FBA004 + FBA009–FBA014.
|
|
185
|
+
|
|
184
186
|
Detalhes que quebram se deixar pra depois: `write` = create+update+delete (guardar origem), `OR` nas Rules (`isAdmin() || public==true`), `resource` vs `request.resource`, `collectionGroup` com escopo próprio, `databaseId` nomeado desde o dia 1.
|
|
185
187
|
|
|
186
188
|
`summary.implementedChecks` lista os checks FBA cobrados (10); `summary.checked` lista áreas olhadas (arquivos) — não confundir um com o outro.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@justmpm/firebase-audit",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.19",
|
|
4
4
|
"description": "Auditor de consistência e segurança para projetos Firebase: código + Rules + índices + contrato vs comportamento. Static-first, nunca inventa certeza.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"firebase",
|
package/skill/SKILL.md
CHANGED
|
@@ -25,6 +25,7 @@ Skill para agentes usarem o `@justmpm/firebase-audit` do jeito certo.
|
|
|
25
25
|
- Regra com `auth != null && exists(admins/uid)` diz "login + documento via exists()", não "qualquer autenticado" — sem claim/provider, anônimo com login passa no conjunto se obtiver o doc
|
|
26
26
|
- FBA014: `allow create/update/write` próprio em `admins/` sem claim/papel de admin nem doc-gate é auto-promoção provável (caso cadastro que escreve `role: 'admin'`) — doc-gate só vale amarrado ao uid em todo ramo de `||`; confirme o signup e o Emulator; `users/{uid}` + campo role, `admin` singular e `if false` (deny) estão fora do escopo estático
|
|
27
27
|
- `summary.implementedChecks` lista os checks FBA cobrados; `summary.checked` lista áreas olhadas (arquivos) — 10 checks, não 10 arquivos
|
|
28
|
+
- IDs FBA005–FBA008 são legados aposentados (nunca procurar check fantasma): o conjunto atual é FBA001–FBA004 + FBA009–FBA014
|
|
28
29
|
- Storage avalia disjunção por ramo (`auth || tamanho` acusa o ramo sem auth) e `return false` via helper é deny silencioso, igual ao `if false`
|
|
29
30
|
- Seeds/fixtures com Admin SDK moram em `scripts/` ou `server/`, nunca em `src/` (senão o scan acusa FBA003 de propósito)
|
|
30
31
|
|