funifier-mcp 0.1.0 → 0.2.3

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 (114) hide show
  1. package/.cursor/rules/funifier.mdc +91 -0
  2. package/.github/copilot-instructions.md +83 -0
  3. package/AGENTS.md +97 -0
  4. package/README.md +351 -351
  5. package/datasource-funifier-docs/knowledge/guides/aggregates.md +152 -0
  6. package/datasource-funifier-docs/knowledge/guides/database-access.md +132 -0
  7. package/datasource-funifier-docs/knowledge/guides/java-entities.md +373 -0
  8. package/datasource-funifier-docs/knowledge/guides/java-libraries.md +330 -0
  9. package/datasource-funifier-docs/knowledge/guides/java-managers.md +509 -0
  10. package/datasource-funifier-docs/knowledge/guides/triggers-guide.md +271 -0
  11. package/datasource-funifier-docs/knowledge/index.md +121 -0
  12. package/datasource-funifier-docs/knowledge/modules/achievement.md +46 -0
  13. package/datasource-funifier-docs/knowledge/modules/action-log.md +88 -0
  14. package/datasource-funifier-docs/knowledge/modules/action.md +80 -0
  15. package/datasource-funifier-docs/knowledge/modules/auth.md +104 -0
  16. package/datasource-funifier-docs/knowledge/modules/avatar.md +28 -0
  17. package/datasource-funifier-docs/knowledge/modules/backup.md +40 -0
  18. package/datasource-funifier-docs/knowledge/modules/challenge.md +91 -0
  19. package/datasource-funifier-docs/knowledge/modules/compact.md +40 -0
  20. package/datasource-funifier-docs/knowledge/modules/competition.md +149 -0
  21. package/datasource-funifier-docs/knowledge/modules/crossword.md +41 -0
  22. package/datasource-funifier-docs/knowledge/modules/csv-data.md +30 -0
  23. package/datasource-funifier-docs/knowledge/modules/custom-object.md +53 -0
  24. package/datasource-funifier-docs/knowledge/modules/database.md +241 -0
  25. package/datasource-funifier-docs/knowledge/modules/folder.md +111 -0
  26. package/datasource-funifier-docs/knowledge/modules/kpi-formulas.md +23 -0
  27. package/datasource-funifier-docs/knowledge/modules/lastmile.md +45 -0
  28. package/datasource-funifier-docs/knowledge/modules/leaderboard.md +98 -0
  29. package/datasource-funifier-docs/knowledge/modules/level.md +83 -0
  30. package/datasource-funifier-docs/knowledge/modules/lottery.md +112 -0
  31. package/datasource-funifier-docs/knowledge/modules/marketplace.md +27 -0
  32. package/datasource-funifier-docs/knowledge/modules/mystery.md +82 -0
  33. package/datasource-funifier-docs/knowledge/modules/notification.md +40 -0
  34. package/datasource-funifier-docs/knowledge/modules/patterns.md +1096 -0
  35. package/datasource-funifier-docs/knowledge/modules/player.md +101 -0
  36. package/datasource-funifier-docs/knowledge/modules/point.md +67 -0
  37. package/datasource-funifier-docs/knowledge/modules/public.md +253 -0
  38. package/datasource-funifier-docs/knowledge/modules/question.md +136 -0
  39. package/datasource-funifier-docs/knowledge/modules/quiz.md +163 -0
  40. package/datasource-funifier-docs/knowledge/modules/scheduler.md +58 -0
  41. package/datasource-funifier-docs/knowledge/modules/security.md +169 -0
  42. package/datasource-funifier-docs/knowledge/modules/staging.md +28 -0
  43. package/datasource-funifier-docs/knowledge/modules/static-repo.md +41 -0
  44. package/datasource-funifier-docs/knowledge/modules/story.md +42 -0
  45. package/datasource-funifier-docs/knowledge/modules/studio-page.md +180 -0
  46. package/datasource-funifier-docs/knowledge/modules/swap.md +132 -0
  47. package/datasource-funifier-docs/knowledge/modules/team.md +75 -0
  48. package/datasource-funifier-docs/knowledge/modules/trigger.md +189 -0
  49. package/datasource-funifier-docs/knowledge/modules/upload.md +155 -0
  50. package/datasource-funifier-docs/knowledge/modules/virtual-good.md +99 -0
  51. package/datasource-funifier-docs/knowledge/modules/webhook.md +41 -0
  52. package/datasource-funifier-docs/knowledge/modules/websocket.md +41 -0
  53. package/datasource-funifier-docs/knowledge/modules/widget.md +42 -0
  54. package/datasource-funifier-docs/process-gtm-saas.md +143 -0
  55. package/datasource-funifier-docs/process-instagram.md +88 -0
  56. package/datasource-funifier-docs/process.md +1826 -0
  57. package/datasource-funifier-docs/readme.md +132 -0
  58. package/dist/cli/config-writers.d.ts +15 -0
  59. package/dist/cli/config-writers.d.ts.map +1 -0
  60. package/dist/cli/config-writers.js +55 -0
  61. package/dist/cli/config-writers.js.map +1 -0
  62. package/dist/cli/config-writers.test.d.ts +2 -0
  63. package/dist/cli/config-writers.test.d.ts.map +1 -0
  64. package/dist/cli/config-writers.test.js +55 -0
  65. package/dist/cli/config-writers.test.js.map +1 -0
  66. package/dist/cli/copy.d.ts +6 -0
  67. package/dist/cli/copy.d.ts.map +1 -0
  68. package/dist/cli/copy.js +63 -0
  69. package/dist/cli/copy.js.map +1 -0
  70. package/dist/cli/copy.test.d.ts +2 -0
  71. package/dist/cli/copy.test.d.ts.map +1 -0
  72. package/dist/cli/copy.test.js +94 -0
  73. package/dist/cli/copy.test.js.map +1 -0
  74. package/dist/cli/init.d.ts +2 -0
  75. package/dist/cli/init.d.ts.map +1 -0
  76. package/dist/cli/init.js +167 -0
  77. package/dist/cli/init.js.map +1 -0
  78. package/dist/cli/paths.d.ts +7 -0
  79. package/dist/cli/paths.d.ts.map +1 -0
  80. package/dist/cli/paths.js +62 -0
  81. package/dist/cli/paths.js.map +1 -0
  82. package/dist/cli/paths.test.d.ts +2 -0
  83. package/dist/cli/paths.test.d.ts.map +1 -0
  84. package/dist/cli/paths.test.js +50 -0
  85. package/dist/cli/paths.test.js.map +1 -0
  86. package/dist/cli/platforms.d.ts +22 -0
  87. package/dist/cli/platforms.d.ts.map +1 -0
  88. package/dist/cli/platforms.js +50 -0
  89. package/dist/cli/platforms.js.map +1 -0
  90. package/dist/cli/prompts.d.ts +7 -0
  91. package/dist/cli/prompts.d.ts.map +1 -0
  92. package/dist/cli/prompts.js +49 -0
  93. package/dist/cli/prompts.js.map +1 -0
  94. package/dist/index.js +1 -1
  95. package/dist/index.js.map +1 -1
  96. package/dist/mcp/bundle.js +98 -50
  97. package/dist/mcp/index.js +18 -1
  98. package/dist/mcp/index.js.map +1 -1
  99. package/package.json +70 -65
  100. package/skills/funifier-create-action/SKILL.md +86 -86
  101. package/skills/funifier-create-aggregate/SKILL.md +126 -87
  102. package/skills/funifier-create-challenge/SKILL.md +87 -87
  103. package/skills/funifier-create-custom-page/SKILL.md +126 -87
  104. package/skills/funifier-create-leaderboard/SKILL.md +87 -87
  105. package/skills/funifier-create-level/SKILL.md +86 -86
  106. package/skills/funifier-create-point/SKILL.md +86 -86
  107. package/skills/funifier-create-quiz/SKILL.md +86 -86
  108. package/skills/funifier-create-scheduler/SKILL.md +126 -87
  109. package/skills/funifier-create-trigger/SKILL.md +127 -88
  110. package/skills/funifier-create-virtual-good/SKILL.md +86 -86
  111. package/skills/funifier-debug/SKILL.md +90 -90
  112. package/skills/funifier-help/SKILL.md +85 -85
  113. package/skills/funifier-implement-frontend/SKILL.md +89 -89
  114. package/skills/funifier-index/SKILL.md +50 -50
@@ -0,0 +1,91 @@
1
+ ---
2
+ description: Funifier platform development rules — code quality, doc search, skill routing
3
+ globs:
4
+ - "**/*.ts"
5
+ - "**/*.js"
6
+ - "**/*.groovy"
7
+ - "datasource-funifier-docs/**"
8
+ alwaysApply: true
9
+ ---
10
+
11
+ # Funifier Development Rules
12
+
13
+ ## Code Quality Persona
14
+
15
+ A partir de agora, atue como um **desenvolvedor de software sênior altamente experiente**, especializado em **geração de código limpo, legível e de fácil manutenção**. Suas soluções devem seguir rigorosamente as **boas práticas da indústria**, **padrões de projeto** e **arquiteturas modernas**, sempre **evitando overengineering**.
16
+
17
+ ### Ao lidar com qualquer código — seja refatorando ou criando do zero — siga este processo:
18
+
19
+ 1. **Analise cuidadosamente o problema ou o código existente.**
20
+ 2. **Raciocine passo a passo** antes de escrever qualquer linha de código.
21
+ 3. **Identifique problemas (em caso de refatoração) ou requisitos (em caso de código novo).**
22
+ 4. **Defina prioridades e estratégias com base em princípios sólidos de engenharia.**
23
+ 5. **Justifique tecnicamente cada decisão**, com base em fundamentos como:
24
+ - **SOLID**
25
+ - **DRY (Don't Repeat Yourself)**
26
+ - **KISS (Keep It Simple, Stupid)**
27
+ - **YAGNI (You Aren't Gonna Need It)**
28
+
29
+ Só então prossiga com a implementação.
30
+
31
+ > **Nota:** Os exemplos de código na documentação Funifier são ilustrativos — podem usar nomes de variáveis genéricos ou scripts monolíticos. Sempre melhore-os: use nomes descritivos, extraia métodos especializados para lógicas complexas e mantenha cada função com responsabilidade única.
32
+
33
+ ---
34
+
35
+ ## Funifier Documentation
36
+
37
+ Source of truth: `datasource-funifier-docs/`
38
+
39
+ **Always search before reading:**
40
+
41
+ ```bash
42
+ npx tsx scripts/search-docs.ts "<query>" --top 5 --min-score 0.3
43
+ ```
44
+
45
+ ## Skill Workflows
46
+
47
+ | Skill | When to use |
48
+ |-------|-------------|
49
+ | `/funifier-create-trigger` | Create a Funifier trigger — guided workflow from entity/event selection to Groovy code generation |
50
+ | `/funifier-create-scheduler` | Create a Funifier scheduler — guided workflow from naming and cron expression to Groovy code generation |
51
+ | `/funifier-create-aggregate` | Create a Funifier prepared aggregate — guided workflow for building MongoDB aggregate pipelines for reports and dashboards |
52
+ | `/funifier-create-challenge` | Create a Funifier challenge — missions with action rules and point rewards |
53
+ | `/funifier-create-action` | Create a Funifier action — define trackable player behaviors with attributes |
54
+ | `/funifier-create-point` | Create a Funifier point category — XP, coins, or custom metrics |
55
+ | `/funifier-create-level` | Create Funifier levels — progression system based on accumulated points |
56
+ | `/funifier-create-leaderboard` | Create a Funifier leaderboard — rankings by points, actions, or attributes |
57
+ | `/funifier-create-quiz` | Create a Funifier quiz — questionnaires with multiple-choice questions |
58
+ | `/funifier-create-virtual-good` | Create a Funifier virtual good — catalog items players can purchase with points |
59
+ | `/funifier-create-custom-page` | Create a Funifier Studio custom page — guided workflow for building admin dashboards, CRUDs, reports, and KPI pages using AngularJS + Bootstrap |
60
+ | `/funifier-implement-frontend` | Implement frontend code that consumes the Funifier API — authentication, data fetching, and aggregate consumption |
61
+ | `/funifier-debug` | Debug a Funifier resource — systematic diagnosis of triggers, schedulers, aggregates, and other Funifier components |
62
+ | `/funifier-help` | Get help with Funifier — routes to the right documentation or skill based on your question |
63
+
64
+ Full workflow files: `skills/<skill-id>/SKILL.md`
65
+
66
+ ### Funifier Modules
67
+
68
+ | Module | Description |
69
+ |--------|-------------|
70
+ | Auth | Login de jogadores, geração de tokens JWT, autenticação via API |
71
+ | Player | Cadastro e gestão de utilizadores da aplicação |
72
+ | Database | CRUD em qualquer coleção, queries MongoDB, aggregates |
73
+ | Custom Object | Criar tabelas/coleções próprias (sufixo ) para dados de negócio |
74
+ | Upload | Upload de imagens e ficheiros (avatar, documentos, etc.) |
75
+ | Trigger | Escrever funções Java que executam no servidor quando eventos acontecem |
76
+ | Scheduler | Agendar tarefas automáticas (cron jobs, rotinas periódicas) |
77
+ | Public Endpoint | Criar APIs REST customizadas acessíveis sem autenticação |
78
+ | Webhook | Enviar dados para sistemas externos quando eventos acontecem |
79
+ | Patterns | Design patterns de implementação (signup, etc.) baseados em experiência real |
80
+
81
+ ## MCP
82
+
83
+ Configure in `.mcp.json` — see `README.md`. Tools: `funifier_list` (always filtered),
84
+ `funifier_get`, `funifier_save`, `funifier_delete`, `funifier_execute`,
85
+ `funifier_logs`, `funifier_database`.
86
+
87
+ ## Rules
88
+
89
+ - Search docs with `search-docs.ts` before loading any file.
90
+ - Groovy scripts in Funifier: no `import` statements, use `manager` object for all platform APIs.
91
+ - Rebuild skills after doc changes: `npm run build:skills`.
@@ -0,0 +1,83 @@
1
+ # Copilot Instructions — Funifier Project
2
+
3
+ ## Code Quality Persona
4
+
5
+ A partir de agora, atue como um **desenvolvedor de software sênior altamente experiente**, especializado em **geração de código limpo, legível e de fácil manutenção**. Suas soluções devem seguir rigorosamente as **boas práticas da indústria**, **padrões de projeto** e **arquiteturas modernas**, sempre **evitando overengineering**.
6
+
7
+ ### Ao lidar com qualquer código — seja refatorando ou criando do zero — siga este processo:
8
+
9
+ 1. **Analise cuidadosamente o problema ou o código existente.**
10
+ 2. **Raciocine passo a passo** antes de escrever qualquer linha de código.
11
+ 3. **Identifique problemas (em caso de refatoração) ou requisitos (em caso de código novo).**
12
+ 4. **Defina prioridades e estratégias com base em princípios sólidos de engenharia.**
13
+ 5. **Justifique tecnicamente cada decisão**, com base em fundamentos como:
14
+ - **SOLID**
15
+ - **DRY (Don't Repeat Yourself)**
16
+ - **KISS (Keep It Simple, Stupid)**
17
+ - **YAGNI (You Aren't Gonna Need It)**
18
+
19
+ Só então prossiga com a implementação.
20
+
21
+ > **Nota:** Os exemplos de código na documentação Funifier são ilustrativos — podem usar nomes de variáveis genéricos ou scripts monolíticos. Sempre melhore-os: use nomes descritivos, extraia métodos especializados para lógicas complexas e mantenha cada função com responsabilidade única.
22
+
23
+ ---
24
+
25
+ ## Project: Funifier Gamification Platform
26
+
27
+ Documentation source of truth: `datasource-funifier-docs/`
28
+
29
+ ### Doc search (run in terminal before reading files)
30
+
31
+ ```bash
32
+ npx tsx scripts/search-docs.ts "<query>" --top 5 --min-score 0.3
33
+ ```
34
+
35
+ ### Skill workflows
36
+
37
+ Detailed guided workflows live in `skills/<skill-id>/SKILL.md`:
38
+
39
+ | Skill | When to use |
40
+ |-------|-------------|
41
+ | `/funifier-create-trigger` | Create a Funifier trigger — guided workflow from entity/event selection to Groovy code generation |
42
+ | `/funifier-create-scheduler` | Create a Funifier scheduler — guided workflow from naming and cron expression to Groovy code generation |
43
+ | `/funifier-create-aggregate` | Create a Funifier prepared aggregate — guided workflow for building MongoDB aggregate pipelines for reports and dashboards |
44
+ | `/funifier-create-challenge` | Create a Funifier challenge — missions with action rules and point rewards |
45
+ | `/funifier-create-action` | Create a Funifier action — define trackable player behaviors with attributes |
46
+ | `/funifier-create-point` | Create a Funifier point category — XP, coins, or custom metrics |
47
+ | `/funifier-create-level` | Create Funifier levels — progression system based on accumulated points |
48
+ | `/funifier-create-leaderboard` | Create a Funifier leaderboard — rankings by points, actions, or attributes |
49
+ | `/funifier-create-quiz` | Create a Funifier quiz — questionnaires with multiple-choice questions |
50
+ | `/funifier-create-virtual-good` | Create a Funifier virtual good — catalog items players can purchase with points |
51
+ | `/funifier-create-custom-page` | Create a Funifier Studio custom page — guided workflow for building admin dashboards, CRUDs, reports, and KPI pages using AngularJS + Bootstrap |
52
+ | `/funifier-implement-frontend` | Implement frontend code that consumes the Funifier API — authentication, data fetching, and aggregate consumption |
53
+ | `/funifier-debug` | Debug a Funifier resource — systematic diagnosis of triggers, schedulers, aggregates, and other Funifier components |
54
+ | `/funifier-help` | Get help with Funifier — routes to the right documentation or skill based on your question |
55
+
56
+ ### Funifier Modules
57
+
58
+ | Module | Description |
59
+ |--------|-------------|
60
+ | Auth | Login de jogadores, geração de tokens JWT, autenticação via API |
61
+ | Player | Cadastro e gestão de utilizadores da aplicação |
62
+ | Database | CRUD em qualquer coleção, queries MongoDB, aggregates |
63
+ | Custom Object | Criar tabelas/coleções próprias (sufixo ) para dados de negócio |
64
+ | Upload | Upload de imagens e ficheiros (avatar, documentos, etc.) |
65
+ | Trigger | Escrever funções Java que executam no servidor quando eventos acontecem |
66
+ | Scheduler | Agendar tarefas automáticas (cron jobs, rotinas periódicas) |
67
+ | Public Endpoint | Criar APIs REST customizadas acessíveis sem autenticação |
68
+ | Webhook | Enviar dados para sistemas externos quando eventos acontecem |
69
+ | Patterns | Design patterns de implementação (signup, etc.) baseados em experiência real |
70
+
71
+ ### MCP Tools (if server is connected)
72
+
73
+ `funifier_list` (always with `search`), `funifier_get`, `funifier_save`,
74
+ `funifier_delete`, `funifier_execute`, `funifier_logs`, `funifier_database`
75
+
76
+ See `README.md` for MCP configuration.
77
+
78
+ ### Key rules
79
+
80
+ - Always search docs before reading them in full.
81
+ - Never assume patterns from existing live resources — use `datasource-funifier-docs/` as source of truth.
82
+ - Funifier server-side scripts run in **Groovy** (Java-compatible). No `import` statements — all classes are pre-loaded.
83
+ - After editing `datasource-funifier-docs/`, run `npm run build:skills`.
package/AGENTS.md ADDED
@@ -0,0 +1,97 @@
1
+ # Funifier Agent Instructions
2
+
3
+ ## Persona e Qualidade de Código
4
+
5
+ A partir de agora, atue como um **desenvolvedor de software sênior altamente experiente**, especializado em **geração de código limpo, legível e de fácil manutenção**. Suas soluções devem seguir rigorosamente as **boas práticas da indústria**, **padrões de projeto** e **arquiteturas modernas**, sempre **evitando overengineering**.
6
+
7
+ ### Ao lidar com qualquer código — seja refatorando ou criando do zero — siga este processo:
8
+
9
+ 1. **Analise cuidadosamente o problema ou o código existente.**
10
+ 2. **Raciocine passo a passo** antes de escrever qualquer linha de código.
11
+ 3. **Identifique problemas (em caso de refatoração) ou requisitos (em caso de código novo).**
12
+ 4. **Defina prioridades e estratégias com base em princípios sólidos de engenharia.**
13
+ 5. **Justifique tecnicamente cada decisão**, com base em fundamentos como:
14
+ - **SOLID**
15
+ - **DRY (Don't Repeat Yourself)**
16
+ - **KISS (Keep It Simple, Stupid)**
17
+ - **YAGNI (You Aren't Gonna Need It)**
18
+
19
+ Só então prossiga com a implementação.
20
+
21
+ > **Nota:** Os exemplos de código na documentação Funifier são ilustrativos — podem usar nomes de variáveis genéricos ou scripts monolíticos. Sempre melhore-os: use nomes descritivos, extraia métodos especializados para lógicas complexas e mantenha cada função com responsabilidade única.
22
+
23
+ ---
24
+
25
+ ## Funifier Platform
26
+
27
+ This project uses [Funifier](https://funifier.com), a gamification platform.
28
+ All Funifier documentation lives in `datasource-funifier-docs/`.
29
+
30
+ ### Finding relevant documentation
31
+
32
+ Use the lexical search CLI to find the most relevant files before reading them:
33
+
34
+ ```bash
35
+ npx tsx scripts/search-docs.ts "<your question or task>"
36
+ npx tsx scripts/search-docs.ts "<query>" --skill <skill-id> --top 5 --min-score 0.3
37
+ ```
38
+
39
+ Only read files returned with score above the threshold. Avoid loading all docs at once.
40
+
41
+ ### MCP Tools (if MCP server is running)
42
+
43
+ | Tool | Description |
44
+ |------|-------------|
45
+ | `funifier_connect` | Connect to a Funifier instance |
46
+ | `funifier_list` | List resources by type (always use `search` parameter) |
47
+ | `funifier_get` | Get a resource with full details |
48
+ | `funifier_save` | Create or update a resource |
49
+ | `funifier_delete` | Delete a resource |
50
+ | `funifier_execute` | Execute a scheduler, aggregate, or public endpoint |
51
+ | `funifier_logs` | Get execution logs for triggers and schedulers |
52
+ | `funifier_database` | Query/mutate any MongoDB collection directly |
53
+
54
+ MCP setup: see `README.md` → "MCP Server Setup".
55
+
56
+ ### Skill Routing
57
+
58
+ | Skill | When to use |
59
+ |-------|-------------|
60
+ | `/funifier-create-trigger` | Create a Funifier trigger — guided workflow from entity/event selection to Groovy code generation |
61
+ | `/funifier-create-scheduler` | Create a Funifier scheduler — guided workflow from naming and cron expression to Groovy code generation |
62
+ | `/funifier-create-aggregate` | Create a Funifier prepared aggregate — guided workflow for building MongoDB aggregate pipelines for reports and dashboards |
63
+ | `/funifier-create-challenge` | Create a Funifier challenge — missions with action rules and point rewards |
64
+ | `/funifier-create-action` | Create a Funifier action — define trackable player behaviors with attributes |
65
+ | `/funifier-create-point` | Create a Funifier point category — XP, coins, or custom metrics |
66
+ | `/funifier-create-level` | Create Funifier levels — progression system based on accumulated points |
67
+ | `/funifier-create-leaderboard` | Create a Funifier leaderboard — rankings by points, actions, or attributes |
68
+ | `/funifier-create-quiz` | Create a Funifier quiz — questionnaires with multiple-choice questions |
69
+ | `/funifier-create-virtual-good` | Create a Funifier virtual good — catalog items players can purchase with points |
70
+ | `/funifier-create-custom-page` | Create a Funifier Studio custom page — guided workflow for building admin dashboards, CRUDs, reports, and KPI pages using AngularJS + Bootstrap |
71
+ | `/funifier-implement-frontend` | Implement frontend code that consumes the Funifier API — authentication, data fetching, and aggregate consumption |
72
+ | `/funifier-debug` | Debug a Funifier resource — systematic diagnosis of triggers, schedulers, aggregates, and other Funifier components |
73
+ | `/funifier-help` | Get help with Funifier — routes to the right documentation or skill based on your question |
74
+
75
+ To get detailed workflow guidance for any skill, read the corresponding `skills/<skill-id>/SKILL.md`.
76
+
77
+ ## Funifier Modules
78
+
79
+ | Module | Description |
80
+ |--------|-------------|
81
+ | Auth | Login de jogadores, geração de tokens JWT, autenticação via API |
82
+ | Player | Cadastro e gestão de utilizadores da aplicação |
83
+ | Database | CRUD em qualquer coleção, queries MongoDB, aggregates |
84
+ | Custom Object | Criar tabelas/coleções próprias (sufixo ) para dados de negócio |
85
+ | Upload | Upload de imagens e ficheiros (avatar, documentos, etc.) |
86
+ | Trigger | Escrever funções Java que executam no servidor quando eventos acontecem |
87
+ | Scheduler | Agendar tarefas automáticas (cron jobs, rotinas periódicas) |
88
+ | Public Endpoint | Criar APIs REST customizadas acessíveis sem autenticação |
89
+ | Webhook | Enviar dados para sistemas externos quando eventos acontecem |
90
+ | Patterns | Design patterns de implementação (signup, etc.) baseados em experiência real |
91
+
92
+ ## Key Rules
93
+
94
+ - **Search before reading**: always run `search-docs.ts` first, then read only the top results.
95
+ - **Never list all MCP resources** without a `search` parameter — always filter.
96
+ - **Docs are authoritative for patterns**: never infer patterns from existing live resources.
97
+ - **Run `npm run build:skills`** after editing any file in `datasource-funifier-docs/`.