funifier-mcp 0.3.17 → 0.3.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.
Files changed (169) hide show
  1. package/.cursor/rules/funifier.mdc +3 -1
  2. package/.github/copilot-instructions.md +3 -1
  3. package/AGENTS.md +3 -1
  4. package/CHANGELOG.md +59 -0
  5. package/README.md +1 -1
  6. package/datasource-funifier-docs/.coverage.json +15 -5
  7. package/datasource-funifier-docs/.validation.json +77 -36
  8. package/datasource-funifier-docs/knowledge/guides/aggregates.md +13 -6
  9. package/datasource-funifier-docs/knowledge/guides/permission-audit.md +229 -0
  10. package/datasource-funifier-docs/knowledge/index.md +3 -2
  11. package/dist/cli/init.d.ts.map +1 -1
  12. package/dist/cli/init.js +3 -1
  13. package/dist/cli/init.js.map +1 -1
  14. package/dist/core/api-client.d.ts +2 -0
  15. package/dist/core/api-client.d.ts.map +1 -1
  16. package/dist/core/api-client.js +98 -47
  17. package/dist/core/api-client.js.map +1 -1
  18. package/dist/core/api-client.test.js +27 -0
  19. package/dist/core/api-client.test.js.map +1 -1
  20. package/dist/core/constants.d.ts +4 -0
  21. package/dist/core/constants.d.ts.map +1 -1
  22. package/dist/core/constants.js +8 -0
  23. package/dist/core/constants.js.map +1 -1
  24. package/dist/core/logger.d.ts +9 -0
  25. package/dist/core/logger.d.ts.map +1 -0
  26. package/dist/core/logger.js +50 -0
  27. package/dist/core/logger.js.map +1 -0
  28. package/dist/mcp/api-holder.test.d.ts +2 -0
  29. package/dist/mcp/api-holder.test.d.ts.map +1 -0
  30. package/dist/mcp/api-holder.test.js +45 -0
  31. package/dist/mcp/api-holder.test.js.map +1 -0
  32. package/dist/mcp/bundle.js +108 -105
  33. package/dist/mcp/check-update.d.ts +9 -0
  34. package/dist/mcp/check-update.d.ts.map +1 -1
  35. package/dist/mcp/check-update.js +35 -9
  36. package/dist/mcp/check-update.js.map +1 -1
  37. package/dist/mcp/check-update.test.js +36 -6
  38. package/dist/mcp/check-update.test.js.map +1 -1
  39. package/dist/mcp/doc-path.d.ts +11 -0
  40. package/dist/mcp/doc-path.d.ts.map +1 -0
  41. package/dist/mcp/doc-path.js +66 -0
  42. package/dist/mcp/doc-path.js.map +1 -0
  43. package/dist/mcp/doc-path.test.d.ts +2 -0
  44. package/dist/mcp/doc-path.test.d.ts.map +1 -0
  45. package/dist/mcp/doc-path.test.js +77 -0
  46. package/dist/mcp/doc-path.test.js.map +1 -0
  47. package/dist/mcp/index.js +19 -0
  48. package/dist/mcp/index.js.map +1 -1
  49. package/dist/mcp/resources/documentation.d.ts.map +1 -1
  50. package/dist/mcp/resources/documentation.js +7 -3
  51. package/dist/mcp/resources/documentation.js.map +1 -1
  52. package/dist/mcp/tools/_audit.d.ts +103 -0
  53. package/dist/mcp/tools/_audit.d.ts.map +1 -0
  54. package/dist/mcp/tools/_audit.js +241 -0
  55. package/dist/mcp/tools/_audit.js.map +1 -0
  56. package/dist/mcp/tools/_audit.test.d.ts +2 -0
  57. package/dist/mcp/tools/_audit.test.d.ts.map +1 -0
  58. package/dist/mcp/tools/_audit.test.js +412 -0
  59. package/dist/mcp/tools/_audit.test.js.map +1 -0
  60. package/dist/mcp/tools/_backup.d.ts +37 -3
  61. package/dist/mcp/tools/_backup.d.ts.map +1 -1
  62. package/dist/mcp/tools/_backup.js +142 -11
  63. package/dist/mcp/tools/_backup.js.map +1 -1
  64. package/dist/mcp/tools/_backup.test.js +195 -0
  65. package/dist/mcp/tools/_backup.test.js.map +1 -1
  66. package/dist/mcp/tools/_char-guard.d.ts +2 -1
  67. package/dist/mcp/tools/_char-guard.d.ts.map +1 -1
  68. package/dist/mcp/tools/_char-guard.js +10 -3
  69. package/dist/mcp/tools/_char-guard.js.map +1 -1
  70. package/dist/mcp/tools/_fetch-current.d.ts +2 -1
  71. package/dist/mcp/tools/_fetch-current.d.ts.map +1 -1
  72. package/dist/mcp/tools/_fetch-current.js +2 -74
  73. package/dist/mcp/tools/_fetch-current.js.map +1 -1
  74. package/dist/mcp/tools/_registry.d.ts +183 -0
  75. package/dist/mcp/tools/_registry.d.ts.map +1 -0
  76. package/dist/mcp/tools/_registry.js +88 -0
  77. package/dist/mcp/tools/_registry.js.map +1 -0
  78. package/dist/mcp/tools/_registry.test.d.ts +2 -0
  79. package/dist/mcp/tools/_registry.test.d.ts.map +1 -0
  80. package/dist/mcp/tools/_registry.test.js +103 -0
  81. package/dist/mcp/tools/_registry.test.js.map +1 -0
  82. package/dist/mcp/tools/_scope-engine.d.ts +40 -0
  83. package/dist/mcp/tools/_scope-engine.d.ts.map +1 -0
  84. package/dist/mcp/tools/_scope-engine.js +197 -0
  85. package/dist/mcp/tools/_scope-engine.js.map +1 -0
  86. package/dist/mcp/tools/_scope-engine.test.d.ts +2 -0
  87. package/dist/mcp/tools/_scope-engine.test.d.ts.map +1 -0
  88. package/dist/mcp/tools/_scope-engine.test.js +241 -0
  89. package/dist/mcp/tools/_scope-engine.test.js.map +1 -0
  90. package/dist/mcp/tools/database.d.ts +4 -0
  91. package/dist/mcp/tools/database.d.ts.map +1 -1
  92. package/dist/mcp/tools/database.js +23 -4
  93. package/dist/mcp/tools/database.js.map +1 -1
  94. package/dist/mcp/tools/database.test.js +19 -0
  95. package/dist/mcp/tools/database.test.js.map +1 -1
  96. package/dist/mcp/tools/delete.d.ts.map +1 -1
  97. package/dist/mcp/tools/delete.js +3 -98
  98. package/dist/mcp/tools/delete.js.map +1 -1
  99. package/dist/mcp/tools/execute.d.ts.map +1 -1
  100. package/dist/mcp/tools/execute.js +36 -4
  101. package/dist/mcp/tools/execute.js.map +1 -1
  102. package/dist/mcp/tools/execute.test.d.ts +2 -0
  103. package/dist/mcp/tools/execute.test.d.ts.map +1 -0
  104. package/dist/mcp/tools/execute.test.js +87 -0
  105. package/dist/mcp/tools/execute.test.js.map +1 -0
  106. package/dist/mcp/tools/get.d.ts.map +1 -1
  107. package/dist/mcp/tools/get.js +4 -93
  108. package/dist/mcp/tools/get.js.map +1 -1
  109. package/dist/mcp/tools/index.d.ts.map +1 -1
  110. package/dist/mcp/tools/index.js +42 -1
  111. package/dist/mcp/tools/index.js.map +1 -1
  112. package/dist/mcp/tools/list.d.ts.map +1 -1
  113. package/dist/mcp/tools/list.js +3 -91
  114. package/dist/mcp/tools/list.js.map +1 -1
  115. package/dist/mcp/tools/logs.d.ts.map +1 -1
  116. package/dist/mcp/tools/logs.js +5 -3
  117. package/dist/mcp/tools/logs.js.map +1 -1
  118. package/dist/mcp/tools/permissions.d.ts.map +1 -1
  119. package/dist/mcp/tools/permissions.js +68 -11
  120. package/dist/mcp/tools/permissions.js.map +1 -1
  121. package/dist/mcp/tools/permissions.test.js +268 -4
  122. package/dist/mcp/tools/permissions.test.js.map +1 -1
  123. package/dist/mcp/tools/read-doc.d.ts.map +1 -1
  124. package/dist/mcp/tools/read-doc.js +10 -28
  125. package/dist/mcp/tools/read-doc.js.map +1 -1
  126. package/dist/mcp/tools/save.d.ts.map +1 -1
  127. package/dist/mcp/tools/save.js +4 -81
  128. package/dist/mcp/tools/save.js.map +1 -1
  129. package/package.json +3 -2
  130. package/skills/funifier/SKILL.md +3 -1
  131. package/skills/funifier/references/audit-permissions.md +97 -0
  132. package/skills/funifier/references/configure-security.md +6 -0
  133. package/skills/funifier/references/create-action.md +7 -0
  134. package/skills/funifier/references/create-aggregate.md +99 -79
  135. package/skills/funifier/references/create-audit.md +8 -0
  136. package/skills/funifier/references/create-challenge.md +7 -0
  137. package/skills/funifier/references/create-competition.md +7 -0
  138. package/skills/funifier/references/create-crossword.md +6 -0
  139. package/skills/funifier/references/create-custom-object.md +6 -0
  140. package/skills/funifier/references/create-custom-page.md +6 -0
  141. package/skills/funifier/references/create-folder.md +7 -0
  142. package/skills/funifier/references/create-lastmile.md +6 -0
  143. package/skills/funifier/references/create-leaderboard.md +6 -0
  144. package/skills/funifier/references/create-level.md +7 -0
  145. package/skills/funifier/references/create-lottery.md +7 -0
  146. package/skills/funifier/references/create-mystery.md +6 -0
  147. package/skills/funifier/references/create-notification.md +6 -0
  148. package/skills/funifier/references/create-point.md +7 -0
  149. package/skills/funifier/references/create-quiz.md +7 -0
  150. package/skills/funifier/references/create-scheduler.md +6 -0
  151. package/skills/funifier/references/create-story.md +6 -0
  152. package/skills/funifier/references/create-swap.md +6 -0
  153. package/skills/funifier/references/create-trigger.md +8 -0
  154. package/skills/funifier/references/create-virtual-good.md +6 -0
  155. package/skills/funifier/references/create-webhook.md +6 -0
  156. package/skills/funifier/references/create-websocket.md +6 -0
  157. package/skills/funifier/references/create-widget.md +6 -0
  158. package/skills/funifier/references/date-handling.md +6 -0
  159. package/skills/funifier/references/debug.md +6 -0
  160. package/skills/funifier/references/help.md +6 -0
  161. package/skills/funifier/references/implement-frontend.md +7 -0
  162. package/skills/funifier/references/import-csv.md +6 -0
  163. package/skills/funifier/references/manage-indexes.md +6 -0
  164. package/skills/funifier/references/manage-player.md +7 -0
  165. package/skills/funifier/references/manage-team.md +6 -0
  166. package/skills/funifier/references/query-aggregate.md +111 -0
  167. package/skills/funifier/references/upload-file.md +6 -0
  168. package/datasource-funifier-docs/.search-index.json +0 -58758
  169. package/datasource-funifier-docs/.skills-map.json +0 -141
@@ -0,0 +1,229 @@
1
+ # Permission Audit Guide
2
+
3
+ ## 1. Visão Geral
4
+
5
+ ### 1.1 O que é este documento
6
+
7
+ Este guia descreve como usar o `funifier_permissions action=audit` para verificar deterministicamente se os escopos salvos no documento de segurança cobrem os endpoints que o seu projeto usa — e se há escopos concedidos que nenhum endpoint requer. O motor de auditoria espelha `SecurityFilter.doFilter` de `funifier-service`; o veredicto é reproduzível e unit-testado, não dependente de raciocínio LLM.
8
+
9
+ ### 1.2 Quando consultar
10
+
11
+ - Antes de alterar escopos: saber o que cada role/app autoriza hoje.
12
+ - Após adicionar endpoints: verificar se o scope cobre as novas chamadas.
13
+ - Quando ocorrem 401 inesperados: mapear exatamente qual token está faltando.
14
+ - Ao auditar mínimo privilégio: identificar tokens excedentes que podem ser removidos.
15
+
16
+ ### 1.3 Quando NÃO consultar
17
+
18
+ - Para **alterar** escopos — use `save_security_role` / `save_api_app` (ações separadas, requerem confirmação do utilizador).
19
+ - Para **perguntas sobre Studio roles/assignments** (permissões de interface) — o audit cobre só API scopes (documento `security`).
20
+ - Para **verificar backups** — use `verify_backup`.
21
+
22
+ ### 1.4 Índice de decisão
23
+
24
+ | Problema / Situação | O que fazer | Seção |
25
+ |---|---|---|
26
+ | Saber qual auth context usar para uma chamada | Tabela de autenticação | §2 |
27
+ | Construir o manifest de chamadas do projeto | Formato do manifest + exemplo | §3 |
28
+ | Interpretar `missing` / `excess` / `danger` / `missing-principal` | Tipos de finding | §4 |
29
+ | Entender como o motor avalia `(method, path, scope)` | Gramática de escopo | §5 |
30
+ | Saber o que fazer com os findings | Regra de read-only + remediação | §6 |
31
+
32
+ ### 1.5 Restrições críticas
33
+
34
+ > ⚠️ **O audit é estritamente read-only.** Nenhuma chamada de escrita é feita; nenhum snapshot é gravado. Findings são candidatos para revisão — nunca são aplicados automaticamente.
35
+
36
+ > ⚠️ **Bearer tokens embtem o scope no momento do login.** Uma alteração de role só afeta sessões novas. Se você corrigiu o scope mas o jogador ainda recebe 401, peça-lhe que faça login novamente.
37
+
38
+ > ⚠️ **O manifest cobre um repo de cada vez.** Se a sua aplicação tem múltiplos repositórios a chamar a mesma gamificação, combine as entradas manualmente no manifest.
39
+
40
+ ---
41
+
42
+ ## 2. Tabela de Auth Context
43
+
44
+ Cada chamada API usa um mecanismo de autenticação diferente. O motor resolve qual scope se aplica com base nesse mecanismo (`SecurityFilter.java:153-211`):
45
+
46
+ | `auth` no manifest | Mecanismo HTTP | Scope usado |
47
+ |--------------------|----------------|-------------|
48
+ | `"public"` | `Basic base64(API_KEY:)` — sem secret | Scope da role `public` no documento de segurança |
49
+ | `"player"` | `Bearer <player token>` | Scope da role sob a qual o jogador fez login (normalmente `player`) — **embutido no token no momento do login** |
50
+ | `"app:<name>"` | `Basic base64(API_KEY:APP_SECRET)` | Scope da entrada `apps[]` cujo `name` é `<name>` |
51
+ | `"role:<name>"` | Qualquer Bearer com role customizada | Scope da role `<name>` no documento de segurança |
52
+
53
+ **Heurísticas de classificação por stack:**
54
+
55
+ - Chamadas sem cabeçalho `Authorization` (ou com API_KEY sem secret) → `"public"`
56
+ - Chamadas com token JWT player (`Authorization: Bearer ...`) → `"player"` (ou o nome da role customizada se o SDK permitir escolher)
57
+ - Chamadas com app_secret embutido em env var / config → `"app:<name>"` (use o `name` do entry em `apps[]`)
58
+ - Chamadas de servidor para servidor com secret fixo → `"app:<name>"`
59
+
60
+ ---
61
+
62
+ ## 3. Formato do Manifest
63
+
64
+ ### 3.1 Schema
65
+
66
+ ```json
67
+ {
68
+ "version": 1,
69
+ "entries": [
70
+ {
71
+ "method": "GET | POST | PUT | DELETE",
72
+ "path": "/v3/...",
73
+ "auth": "<auth context — ver §2>",
74
+ "evidence": "<file:line ou descrição>",
75
+ "confidence": "high | low"
76
+ }
77
+ ]
78
+ }
79
+ ```
80
+
81
+ - **`version`**: deve ser `1`.
82
+ - **`entries`**: máximo de 500 entradas. Cada entrada representa uma chamada distinta de `(method, path, auth)`.
83
+ - **`method`**: case-insensitive; normalizado para maiúsculas internamente.
84
+ - **`path`**: o prefixo `/v3` é adicionado automaticamente se ausente.
85
+ - **`auth`**: obrigatório. Sem `auth` o motor não sabe qual scope avaliar.
86
+ - **`evidence`**: obrigatório. `"src/api.ts:42"` ou `"chamada descoberta em SDK wrapper"`.
87
+ - **`confidence`**: `"high"` (default) para chamadas confirmadas por código; `"low"` para URLs dinâmicas ou inferidas.
88
+
89
+ ### 3.2 Exemplo
90
+
91
+ ```json
92
+ {
93
+ "version": 1,
94
+ "entries": [
95
+ { "method": "GET", "path": "/v3/player/me", "auth": "player", "evidence": "src/profile.ts:12", "confidence": "high" },
96
+ { "method": "POST", "path": "/v3/action/log", "auth": "player", "evidence": "src/events.ts:58", "confidence": "high" },
97
+ { "method": "GET", "path": "/v3/widget/rankings", "auth": "public", "evidence": "src/embed.html:1" },
98
+ { "method": "POST", "path": "/v3/player", "auth": "app:backend", "evidence": "workers/sync.ts:34", "confidence": "high" },
99
+ { "method": "GET", "path": "/v3/database/orders", "auth": "app:backend", "evidence": "workers/sync.ts:80", "confidence": "high" },
100
+ { "method": "GET", "path": "/v3/challenge", "auth": "player", "evidence": "src/gamification.ts:7" }
101
+ ]
102
+ }
103
+ ```
104
+
105
+ ### 3.3 Chamadas com URL dinâmica ou cliente wrapper
106
+
107
+ Quando não é possível determinar o path exato estaticamente:
108
+ - Use o prefixo mais específico que conhece (e.g. `/v3/database/orders` em vez de só `/v3/database`).
109
+ - Defina `"confidence": "low"` para sinalizar incerteza.
110
+ - **Nunca omita** uma chamada suspeita — é melhor um finding de baixa confiança do que um 401 não detectado em produção.
111
+
112
+ ---
113
+
114
+ ## 4. Tipos de Finding
115
+
116
+ | Severity | Significado | Impacto |
117
+ |----------|-------------|---------|
118
+ | `missing` | A chamada seria negada com o scope atual | Quebra funcionalidade — 401 em produção |
119
+ | `excess` | Token concedido mas nenhuma entrada do manifest o requer | Candidato a remoção (mínimo privilégio) |
120
+ | `danger` | Padrão de risco estático (independente do manifest) | Risco de segurança — revisar imediatamente |
121
+ | `manual-review` | Token não-path (`cross_domain`, `write_upload`, etc.) — não verificável por análise de caminhos | Verificar manualmente |
122
+ | `public-no-scope-needed` | Path público — scope não é verificado pelo servidor | Informativo; não entra no cálculo de missing/excess |
123
+ | `missing-principal` | Auth context referenciado no manifest não existe no documento de segurança | Entradas desse auth não foram avaliadas |
124
+
125
+ ### 4.1 Findings de `danger` estáticos
126
+
127
+ Estes são verificados independentemente do manifest:
128
+
129
+ - `write_all` / `delete_all` / `database` na role `public` → unauthenticated callers têm acesso privilegiado
130
+ - `read_encrypted_field_values` / `read_encrypted_player_password` na role `public` ou `player` → dados encriptados expostos
131
+ - App com `scope` vazio → nenhuma chamada será autorizada para esse app
132
+
133
+ ### 4.2 Narrowing para tokens broad
134
+
135
+ Quando `read_all`, `write_all` ou `delete_all` autoriza as suas entradas mas tokens exatos (`read_player`, `write_game`, etc.) cobririam o mesmo uso, o finding inclui `narrowingSuggestion` com os tokens exatos sugeridos. Verifique se há consumidores fora deste manifest antes de remover o token broad.
136
+
137
+ ---
138
+
139
+ ## 5. Gramática de Escopo (SecurityFilter.java)
140
+
141
+ O motor espelha exatamente `SecurityFilter.doFilter`. Ordem de avaliação para cada `(method, path)`:
142
+
143
+ ### 5.1 Paths públicos (sem scope)
144
+
145
+ `GET /v3/widget`, `GET /v3/global`, `GET /v3/system/global` e seus sub-paths passam sem verificação de scope (`SecurityFilter.java:108-151`). Entradas que acertam estes paths são classificadas `public-no-scope-needed`.
146
+
147
+ ### 5.2 Contexto de autenticação → scope
148
+
149
+ O scope avaliado depende do mecanismo de auth (ver §2). Studio/Account tokens não passam pela gramática de scope — estão fora do escopo do audit.
150
+
151
+ ### 5.3 Exceções especiais de POST
152
+
153
+ Verificadas antes da gramática (`SecurityFilter.java:259-263`):
154
+
155
+ - `POST /v3/action/log` → autorizado se o scope contiver `write_actionlog` (sem precisar de `write_all` ou `write_action_log`)
156
+ - `POST /v3/mobile/device` → autorizado com qualquer scope não-vazio
157
+
158
+ ### 5.4 Regras gramaticais
159
+
160
+ Para `(method, path)` não cobertos acima (`SecurityFilter.java:230-253`):
161
+
162
+ 1. **verb** = `GET`→`read`, `POST`/`PUT`→`write`, `DELETE`→`delete`
163
+ 2. **entity_full** = path após `/v3/`, com `/` substituído por `_` (e.g. `/v3/database/orders/aggregate` → `database_orders_aggregate`)
164
+ 3. Verifica na ordem:
165
+ - `{verb}_all` → rule `all`
166
+ - `{verb}_{entity_full}` → rule `exact`
167
+ - `{verb}_{prefix}_all` (minus-1 trailing segment) → rule `fallback-m1`
168
+ - `{verb}_{prefix}_all` (minus-2 trailing segments) → rule `fallback-m2`
169
+ - Se nenhum → denied
170
+
171
+ > **O motor para em m2.** Não há fallback m3 ou superior, mesmo que o path tenha mais segmentos.
172
+
173
+ ### 5.5 Keyword `database` (DatabaseRest.java)
174
+
175
+ **Regra crítica:** qualquer path `/v3/database/...` requer o token literal `database` no scope, **além** do token gramatical. Aplica-se a **todos os verbos incluindo GET**. Os 13 handlers de `DatabaseRest.java` verificam este keyword explicitamente.
176
+
177
+ Exemplo: para autorizar `GET /v3/database/orders`, o scope precisa de `read_database_orders` (ou `read_all`) **E** `database`.
178
+
179
+ ### 5.6 Normalização do scope
180
+
181
+ Espaços são removidos e tokens são separados por vírgula antes da avaliação. `"read_all, write_all"` equivale a `"read_all,write_all"`.
182
+
183
+ ---
184
+
185
+ ## 6. Read-Only Rule e Remediação
186
+
187
+ ### 6.1 O audit nunca escreve
188
+
189
+ O `funifier_permissions action=audit` é a única ação deste tool que não requer conexão para findings de `danger` (ainda requer para carregar o documento de segurança). Não faz mutações, não grava snapshots.
190
+
191
+ ### 6.2 Fluxo de remediação
192
+
193
+ Para cada finding `missing`:
194
+ 1. Identifique o token exato sugerido em `requiredTokens`.
195
+ 2. Decida se vai adicionar ao scope da role (`save_security_role`) ou do app (`save_api_app`).
196
+ 3. Confirme a intenção com o utilizador antes de executar.
197
+ 4. O tool escreverá um backup automático antes de qualquer mutação.
198
+
199
+ Para cada finding `excess`:
200
+ 1. Verifique se o token pode ser necessário a consumidores **fora** deste manifest.
201
+ 2. Se seguro, remova com `save_security_role` / `save_api_app`.
202
+ 3. Após remover, corra o audit novamente para confirmar que não surgiram novos `missing`.
203
+
204
+ Para findings `danger`:
205
+ 1. Avalie o risco: quem está a usar o contexto público/player afetado?
206
+ 2. Remova o token perigoso ou restrinja o role conforme necessário.
207
+ 3. Para `read_encrypted_*` em `public`: é quase sempre um erro de configuração.
208
+
209
+ ---
210
+
211
+ ## 7. Invocação
212
+
213
+ ```
214
+ funifier_permissions action=audit data=<manifest JSON>
215
+ ```
216
+
217
+ O manifest é passado como string JSON no campo `data`. Exemplo de chamada:
218
+
219
+ ```json
220
+ {
221
+ "action": "audit",
222
+ "data": "{\"version\":1,\"entries\":[{\"method\":\"GET\",\"path\":\"/v3/player/me\",\"auth\":\"player\",\"evidence\":\"src/api.ts:10\"}]}"
223
+ }
224
+ ```
225
+
226
+ O resultado inclui:
227
+ - `manifest_entries`: número de entradas avaliadas
228
+ - `findings`: lista de findings com `severity`, `principal`, `rule`, `evidence`, `requiredTokens`, `excessTokens`, `narrowingSuggestion`, `detail`
229
+ - `notes`: notas de completude, Bearer freshness, e instrução de verificação para excess
@@ -99,13 +99,14 @@ A Funifier funciona como um **backend de aplicações**. Independentemente do ti
99
99
 
100
100
  | Guia | Ficheiro | Descrição | Quando usar |
101
101
  |------|----------|-----------|-------------|
102
- | Aggregates | `guides/aggregates.md` | Consultas avançadas MongoDB | Criar relatórios, dashboards, rankings customizados; usar expressões de data Funifier |
102
+ | Aggregates | `guides/aggregates.md` | Consultas avançadas MongoDB | Dois fluxos distintos: **consulta ad-hoc** (`POST /v3/database/{collection}/aggregate`, §1–§6 — relatório pontual, sem salvar) e **prepared aggregate** (recurso salvo com `_id`, `$param`/`script`, `POST /v3/find/{id}`, §7 — dashboards reutilizáveis). Dono único das expressões de data Funifier |
103
103
  | Triggers | `guides/triggers-guide.md` | Guia completo de triggers | Referência de eventos, entidades, managers e exemplos de código Java |
104
104
  | Trigger Examples | `guides/trigger-examples.md` | Exemplos de produção de triggers | Código Groovy pronto para padrões reais: atualizar coleção relacionada, criar achievement, inicializar jogador, normalizar/rejeitar `__c`, processar lote, registrar ação via `track` |
105
105
  | Database Access | `guides/database-access.md` | Acesso ao banco de dados | Referência de acesso via API REST e via código Java (Jongo) |
106
106
  | Java Managers | `guides/java-managers.md` | Referência de managers Java | Métodos disponíveis em cada manager (PlayerManager, ActionManager, etc.) para uso em triggers, schedulers e public endpoints |
107
107
  | Java Entities | `guides/java-entities.md` | Referência de entidades Java | Campos e tipos dos objetos (Player, Achievement, ActionLog, etc.) e mapeamento para coleções MongoDB |
108
108
  | Java Libraries | `guides/java-libraries.md` | Bibliotecas e utilitários Java | JsonUtil, Guid, DateUtil, Unirest, EmailBuilder, Jongo — métodos e exemplos de uso |
109
+ | Permission Audit | `guides/permission-audit.md` | Auditoria de permissões de API | Cross-check código↔Funifier: manifest de chamadas → missing scopes, excess tokens, danger findings; gramática de scope (SecurityFilter), keyword `database`, auth context, remediação |
109
110
 
110
111
  ---
111
112
 
@@ -118,7 +119,7 @@ A Funifier funciona como um **backend de aplicações**. Independentemente do ti
118
119
 
119
120
  Para consultas que envolvem **múltiplos módulos**, carregue cada ficheiro individualmente conforme necessário.
120
121
 
121
- Para **relatórios e queries avançadas**, consulte `guides/aggregates.md`.
122
+ Para **relatórios e queries avançadas**, consulte `guides/aggregates.md` — distinga a **consulta ad-hoc** (pontual, sem salvar) do **prepared aggregate** (salvo, parametrizado, reutilizável via `POST /v3/find/{id}`).
122
123
 
123
124
  Para **lógica customizada com código**, consulte `guides/triggers-guide.md` (conceitos e referência de eventos) e `guides/trigger-examples.md` (exemplos Groovy prontos), além de `guides/database-access.md`.
124
125
 
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AA4OA,wBAA8B,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDzF"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AA8OA,wBAA8B,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDzF"}
package/dist/cli/init.js CHANGED
@@ -78,7 +78,9 @@ function makeConflictResolver() {
78
78
  function writeFunifierJson(projectDir, creds) {
79
79
  if (creds) {
80
80
  const target = path.join(projectDir, "funifier.json");
81
- fs.writeFileSync(target, JSON.stringify(creds, null, 2) + "\n");
81
+ // mode 0600: funifier.json holds apiKey+secretKey in plaintext — keep it
82
+ // readable only by the owner so other local users can't harvest credentials.
83
+ fs.writeFileSync(target, JSON.stringify(creds, null, 2) + "\n", { mode: 0o600 });
82
84
  console.log(` ✓ funifier.json`);
83
85
  }
84
86
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import { FunifierConfig } from "./config";
2
2
  import { Trigger, Scheduler, Aggregate, Widget, CustomPage, PublicEndpoint, ChallengeAggregate, AiKnowledge, AuthModule, Websocket, Action, Challenge, Point, Level, LevelConfig, Leaderboard, LeaderboardEntry, Quiz, Question, VirtualGoodCatalog, VirtualGoodItem, Folder, FolderContent, FolderContentType, FolderLog, Role, PrincipalRole, Audit } from "./types";
3
+ export declare function shouldRetryRequest(error: any, attemptsSoFar: number): boolean;
4
+ export declare function retryDelayMs(attemptNumber: number): number;
3
5
  export declare function serializeToFunifierQuery(filter: Record<string, any>): string;
4
6
  export declare function createAPIClient(config: FunifierConfig): {
5
7
  listTriggers: () => Promise<Trigger[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/core/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/core/api-client.ts"],"names":[],"mappings":"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"}