funifier-mcp 0.2.0 → 0.2.4

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 (64) 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 +247 -78
  5. package/datasource-funifier-docs/knowledge/guides/aggregates.md +152 -152
  6. package/datasource-funifier-docs/knowledge/guides/database-access.md +132 -132
  7. package/datasource-funifier-docs/knowledge/guides/java-entities.md +373 -373
  8. package/datasource-funifier-docs/knowledge/guides/java-libraries.md +330 -330
  9. package/datasource-funifier-docs/knowledge/guides/java-managers.md +509 -509
  10. package/datasource-funifier-docs/knowledge/guides/triggers-guide.md +271 -271
  11. package/datasource-funifier-docs/knowledge/index.md +121 -121
  12. package/datasource-funifier-docs/knowledge/modules/achievement.md +46 -46
  13. package/datasource-funifier-docs/knowledge/modules/action-log.md +88 -88
  14. package/datasource-funifier-docs/knowledge/modules/action.md +80 -80
  15. package/datasource-funifier-docs/knowledge/modules/auth.md +104 -104
  16. package/datasource-funifier-docs/knowledge/modules/avatar.md +28 -28
  17. package/datasource-funifier-docs/knowledge/modules/backup.md +40 -40
  18. package/datasource-funifier-docs/knowledge/modules/challenge.md +91 -91
  19. package/datasource-funifier-docs/knowledge/modules/compact.md +40 -40
  20. package/datasource-funifier-docs/knowledge/modules/competition.md +149 -149
  21. package/datasource-funifier-docs/knowledge/modules/crossword.md +41 -41
  22. package/datasource-funifier-docs/knowledge/modules/csv-data.md +30 -30
  23. package/datasource-funifier-docs/knowledge/modules/custom-object.md +53 -53
  24. package/datasource-funifier-docs/knowledge/modules/database.md +241 -241
  25. package/datasource-funifier-docs/knowledge/modules/folder.md +111 -111
  26. package/datasource-funifier-docs/knowledge/modules/kpi-formulas.md +23 -23
  27. package/datasource-funifier-docs/knowledge/modules/lastmile.md +45 -45
  28. package/datasource-funifier-docs/knowledge/modules/leaderboard.md +98 -98
  29. package/datasource-funifier-docs/knowledge/modules/level.md +83 -83
  30. package/datasource-funifier-docs/knowledge/modules/lottery.md +112 -112
  31. package/datasource-funifier-docs/knowledge/modules/marketplace.md +27 -27
  32. package/datasource-funifier-docs/knowledge/modules/mystery.md +82 -82
  33. package/datasource-funifier-docs/knowledge/modules/notification.md +40 -40
  34. package/datasource-funifier-docs/knowledge/modules/patterns.md +1096 -1096
  35. package/datasource-funifier-docs/knowledge/modules/player.md +101 -101
  36. package/datasource-funifier-docs/knowledge/modules/point.md +67 -67
  37. package/datasource-funifier-docs/knowledge/modules/public.md +253 -253
  38. package/datasource-funifier-docs/knowledge/modules/question.md +136 -136
  39. package/datasource-funifier-docs/knowledge/modules/quiz.md +163 -163
  40. package/datasource-funifier-docs/knowledge/modules/scheduler.md +58 -58
  41. package/datasource-funifier-docs/knowledge/modules/security.md +169 -169
  42. package/datasource-funifier-docs/knowledge/modules/staging.md +28 -28
  43. package/datasource-funifier-docs/knowledge/modules/static-repo.md +41 -41
  44. package/datasource-funifier-docs/knowledge/modules/story.md +42 -42
  45. package/datasource-funifier-docs/knowledge/modules/studio-page.md +180 -180
  46. package/datasource-funifier-docs/knowledge/modules/swap.md +132 -132
  47. package/datasource-funifier-docs/knowledge/modules/team.md +75 -75
  48. package/datasource-funifier-docs/knowledge/modules/trigger.md +189 -189
  49. package/datasource-funifier-docs/knowledge/modules/upload.md +155 -155
  50. package/datasource-funifier-docs/knowledge/modules/virtual-good.md +99 -99
  51. package/datasource-funifier-docs/knowledge/modules/webhook.md +41 -41
  52. package/datasource-funifier-docs/knowledge/modules/websocket.md +41 -41
  53. package/datasource-funifier-docs/knowledge/modules/widget.md +42 -42
  54. package/datasource-funifier-docs/process-gtm-saas.md +143 -143
  55. package/datasource-funifier-docs/process-instagram.md +88 -88
  56. package/datasource-funifier-docs/process.md +1826 -1826
  57. package/datasource-funifier-docs/readme.md +132 -132
  58. package/dist/cli/config-writers.js +11 -11
  59. package/dist/mcp/bundle.js +82 -77
  60. package/package.json +70 -67
  61. package/skills/funifier-create-aggregate/SKILL.md +126 -126
  62. package/skills/funifier-create-custom-page/SKILL.md +126 -126
  63. package/skills/funifier-create-scheduler/SKILL.md +126 -126
  64. package/skills/funifier-create-trigger/SKILL.md +127 -127
@@ -1,155 +1,155 @@
1
- # Upload (Upload)
2
-
3
- **API Endpoint:** `/v3/upload`
4
-
5
- ## O que é
6
-
7
- Upload de arquivos para uso na gamificação. Permite enviar imagens, documentos e outros tipos de arquivos para utilização em avatares, desafios, recursos visuais ou qualquer outra funcionalidade.
8
-
9
- ## Quando usar
10
-
11
- - Para upload de imagens de avatares
12
- - Para enviar documentos para treinamentos
13
- - Para adicionar recursos visuais a desafios e itens
14
-
15
- ## API Endpoints
16
-
17
- ### Upload de Imagem
18
- **Método:** POST
19
- **Endpoint:** `/v3/upload/image`
20
- **Content-Type:** multipart/form-data
21
-
22
- **Campos do FormData:**
23
- - `file`: conteúdo da imagem (ex: profile-pic.jpg)
24
- - `extra`: `{ "session": "images" }`
25
-
26
- **Headers:**
27
- - `Authorization: {token}`
28
- - `Content-Type: undefined` (gerenciado pelo FormData)
29
-
30
- **⚠️ O campo `extra` é obrigatório.** Sem ele, a API retorna erro `Field extra is required`.
31
-
32
- **Exemplo de Resposta:**
33
- ```json
34
- {
35
- "uploads": [
36
- {
37
- "bucket": "funifier/games/{apiKey}/images",
38
- "extension": ".jpg",
39
- "filename": "profile-pic.jpg",
40
- "filename_unique": "{id}_original_profile-pic.jpg",
41
- "size": 5559,
42
- "content_type": "image/jpeg",
43
- "thumb": "original",
44
- "extra": { "session": "images" },
45
- "_id": "6998ecbc434ba010175f4dd1",
46
- "time": 1771629756465,
47
- "url": "https://s3.amazonaws.com/funifier/games/{apiKey}/images/{id}_original_profile-pic.jpg"
48
- }
49
- ],
50
- "status": "OK"
51
- }
52
- ```
53
-
54
- ### Exclusão de Arquivo por ID
55
- **Método:** DELETE
56
- **Endpoint:** `/v3/upload/{id}`
57
-
58
- Remove o registro do banco de dados e exclui o arquivo físico do storage (S3/Azure/Google Cloud).
59
-
60
- **Headers:**
61
- - `Authorization: {token}`
62
-
63
- **Resposta:** `204 No Content`
64
-
65
- **Exemplo:**
66
- ```
67
- DELETE /v3/upload/6998ecbc434ba010175f4dd1
68
- Authorization: Bearer eyJhbGciOiJIUzUxMiIs...
69
- ```
70
-
71
- **Observação:** A exclusão só é feita se o arquivo pertencer ao mesmo `apiKey` da autorização (verificado pela URL do arquivo).
72
-
73
- ---
74
-
75
- ### Exclusão de Arquivo por URL
76
- **Método:** DELETE
77
- **Endpoint:** `/v3/upload`
78
- **Content-Type:** application/json
79
-
80
- Remove o arquivo pelo campo `url`.
81
-
82
- **Body:**
83
- ```json
84
- { "url": "https://s3.amazonaws.com/funifier/games/{apiKey}/images/{filename}" }
85
- ```
86
-
87
- **Resposta:** `204 No Content`
88
-
89
- ---
90
-
91
-
92
- ### Uso com Player (Avatar)
93
-
94
- Para usar a imagem como avatar do jogador, após o upload:
95
-
96
- ```json
97
- POST /v3/player
98
- {
99
- "_id": "player_id",
100
- "image": {
101
- "small": { "url": "URL_DO_UPLOAD" },
102
- "medium": { "url": "URL_DO_UPLOAD" },
103
- "original": { "url": "URL_DO_UPLOAD" }
104
- }
105
- }
106
- ```
107
-
108
- **Nota:** O campo `image` do player deve ter o formato `{ small: { url }, medium: { url }, original: { url } }`. A URL é obtida de `response.uploads[0].url`.
109
-
110
- ### Upload de Arquivo Genérico
111
- **Método:** POST
112
- **Endpoint:** `/v3/upload/file`
113
- **Content-Type:** multipart/form-data
114
-
115
- Suporta **qualquer tipo de arquivo** (não apenas imagens). Aceita múltiplos arquivos.
116
-
117
- **Campos:**
118
- - `file`: arquivo binário (pode repetir para vários)
119
- - `extra`: string JSON obrigatória (ex: `{"session": "docs"}`)
120
-
121
- **cURL:**
122
- ```bash
123
- curl -X POST "{server}/v3/upload/file" \
124
- -H "Authorization: Bearer {token}" \
125
- -F 'file=@./documento.pdf;type=application/pdf' \
126
- -F 'extra={"session":"docs","name":"manual"}'
127
- ```
128
-
129
- ### Deletar Upload por URL
130
- **Método:** DELETE
131
- **Endpoint:** `/v3/upload/image`
132
-
133
- **Body:**
134
- ```json
135
- { "url": "https://s3.amazonaws.com/funifier/games/{APIKEY}/images/59359e..._logo.png" }
136
- ```
137
-
138
- ### Listar Uploads
139
- **Método:** GET
140
- **Endpoint:** `/v3/upload`
141
-
142
- ## Triggers de Upload
143
-
144
- O upload dispara triggers `BEFORE_CREATE` e `AFTER_CREATE` na entidade `UPLOAD`. Isso permite:
145
- - Validar arquivos antes de salvar
146
- - Processar metadados após upload
147
- - Integrar com outros módulos
148
-
149
- ## Validações e Testes
150
-
151
- - [ ] Upload de imagem retorna URL válida
152
- - [ ] Upload de arquivo genérico funciona
153
- - [ ] URL da imagem é acessível publicamente
154
- - [ ] Diferentes formatos são aceitos (jpg, png, pdf, etc.)
155
- - [ ] Delete por URL remove o arquivo
1
+ # Upload (Upload)
2
+
3
+ **API Endpoint:** `/v3/upload`
4
+
5
+ ## O que é
6
+
7
+ Upload de arquivos para uso na gamificação. Permite enviar imagens, documentos e outros tipos de arquivos para utilização em avatares, desafios, recursos visuais ou qualquer outra funcionalidade.
8
+
9
+ ## Quando usar
10
+
11
+ - Para upload de imagens de avatares
12
+ - Para enviar documentos para treinamentos
13
+ - Para adicionar recursos visuais a desafios e itens
14
+
15
+ ## API Endpoints
16
+
17
+ ### Upload de Imagem
18
+ **Método:** POST
19
+ **Endpoint:** `/v3/upload/image`
20
+ **Content-Type:** multipart/form-data
21
+
22
+ **Campos do FormData:**
23
+ - `file`: conteúdo da imagem (ex: profile-pic.jpg)
24
+ - `extra`: `{ "session": "images" }`
25
+
26
+ **Headers:**
27
+ - `Authorization: {token}`
28
+ - `Content-Type: undefined` (gerenciado pelo FormData)
29
+
30
+ **⚠️ O campo `extra` é obrigatório.** Sem ele, a API retorna erro `Field extra is required`.
31
+
32
+ **Exemplo de Resposta:**
33
+ ```json
34
+ {
35
+ "uploads": [
36
+ {
37
+ "bucket": "funifier/games/{apiKey}/images",
38
+ "extension": ".jpg",
39
+ "filename": "profile-pic.jpg",
40
+ "filename_unique": "{id}_original_profile-pic.jpg",
41
+ "size": 5559,
42
+ "content_type": "image/jpeg",
43
+ "thumb": "original",
44
+ "extra": { "session": "images" },
45
+ "_id": "6998ecbc434ba010175f4dd1",
46
+ "time": 1771629756465,
47
+ "url": "https://s3.amazonaws.com/funifier/games/{apiKey}/images/{id}_original_profile-pic.jpg"
48
+ }
49
+ ],
50
+ "status": "OK"
51
+ }
52
+ ```
53
+
54
+ ### Exclusão de Arquivo por ID
55
+ **Método:** DELETE
56
+ **Endpoint:** `/v3/upload/{id}`
57
+
58
+ Remove o registro do banco de dados e exclui o arquivo físico do storage (S3/Azure/Google Cloud).
59
+
60
+ **Headers:**
61
+ - `Authorization: {token}`
62
+
63
+ **Resposta:** `204 No Content`
64
+
65
+ **Exemplo:**
66
+ ```
67
+ DELETE /v3/upload/6998ecbc434ba010175f4dd1
68
+ Authorization: Bearer eyJhbGciOiJIUzUxMiIs...
69
+ ```
70
+
71
+ **Observação:** A exclusão só é feita se o arquivo pertencer ao mesmo `apiKey` da autorização (verificado pela URL do arquivo).
72
+
73
+ ---
74
+
75
+ ### Exclusão de Arquivo por URL
76
+ **Método:** DELETE
77
+ **Endpoint:** `/v3/upload`
78
+ **Content-Type:** application/json
79
+
80
+ Remove o arquivo pelo campo `url`.
81
+
82
+ **Body:**
83
+ ```json
84
+ { "url": "https://s3.amazonaws.com/funifier/games/{apiKey}/images/{filename}" }
85
+ ```
86
+
87
+ **Resposta:** `204 No Content`
88
+
89
+ ---
90
+
91
+
92
+ ### Uso com Player (Avatar)
93
+
94
+ Para usar a imagem como avatar do jogador, após o upload:
95
+
96
+ ```json
97
+ POST /v3/player
98
+ {
99
+ "_id": "player_id",
100
+ "image": {
101
+ "small": { "url": "URL_DO_UPLOAD" },
102
+ "medium": { "url": "URL_DO_UPLOAD" },
103
+ "original": { "url": "URL_DO_UPLOAD" }
104
+ }
105
+ }
106
+ ```
107
+
108
+ **Nota:** O campo `image` do player deve ter o formato `{ small: { url }, medium: { url }, original: { url } }`. A URL é obtida de `response.uploads[0].url`.
109
+
110
+ ### Upload de Arquivo Genérico
111
+ **Método:** POST
112
+ **Endpoint:** `/v3/upload/file`
113
+ **Content-Type:** multipart/form-data
114
+
115
+ Suporta **qualquer tipo de arquivo** (não apenas imagens). Aceita múltiplos arquivos.
116
+
117
+ **Campos:**
118
+ - `file`: arquivo binário (pode repetir para vários)
119
+ - `extra`: string JSON obrigatória (ex: `{"session": "docs"}`)
120
+
121
+ **cURL:**
122
+ ```bash
123
+ curl -X POST "{server}/v3/upload/file" \
124
+ -H "Authorization: Bearer {token}" \
125
+ -F 'file=@./documento.pdf;type=application/pdf' \
126
+ -F 'extra={"session":"docs","name":"manual"}'
127
+ ```
128
+
129
+ ### Deletar Upload por URL
130
+ **Método:** DELETE
131
+ **Endpoint:** `/v3/upload/image`
132
+
133
+ **Body:**
134
+ ```json
135
+ { "url": "https://s3.amazonaws.com/funifier/games/{APIKEY}/images/59359e..._logo.png" }
136
+ ```
137
+
138
+ ### Listar Uploads
139
+ **Método:** GET
140
+ **Endpoint:** `/v3/upload`
141
+
142
+ ## Triggers de Upload
143
+
144
+ O upload dispara triggers `BEFORE_CREATE` e `AFTER_CREATE` na entidade `UPLOAD`. Isso permite:
145
+ - Validar arquivos antes de salvar
146
+ - Processar metadados após upload
147
+ - Integrar com outros módulos
148
+
149
+ ## Validações e Testes
150
+
151
+ - [ ] Upload de imagem retorna URL válida
152
+ - [ ] Upload de arquivo genérico funciona
153
+ - [ ] URL da imagem é acessível publicamente
154
+ - [ ] Diferentes formatos são aceitos (jpg, png, pdf, etc.)
155
+ - [ ] Delete por URL remove o arquivo
@@ -1,99 +1,99 @@
1
- # Virtual Good (Loja Virtual)
2
-
3
- **Acesso Studio:** `/studio/catalog`
4
- **API Endpoint:** `/v3/virtualgoods`
5
-
6
- ## O que é
7
-
8
- Cadastro e gestão de objetos e benefícios que podem ser adquiridos pelos jogadores. Permite cadastrar produtos físicos, virtuais ou benefícios, estipular preços, quantidades, limites de compra e atributos. Os jogadores trocam pontos ou itens por objetos na loja.
9
-
10
- ## Quando usar
11
-
12
- - Para criar sistema de recompensas tangíveis
13
- - Para monetizar pontos/moedas virtuais
14
- - Para dar senso de propriedade e escolha ao jogador
15
- - Exemplos: camisetas, gift cards, itens virtuais, acessórios de avatar
16
-
17
- ## Dependências
18
-
19
- - **Point**: moeda para compra deve existir
20
-
21
- ## Checklist de Configuração no Studio
22
-
23
- - [ ] Criar catálogo (ex: "gifts", "rewards")
24
- - [ ] Criar itens dentro do catálogo
25
- - [ ] Definir preço (requires: tipo de ponto + quantidade)
26
- - [ ] Definir quantidade em estoque (amount, -1 = ilimitado)
27
- - [ ] Definir limite de compras por jogador
28
- - [ ] Ativar item (active: true)
29
-
30
- ## API Endpoints
31
-
32
- ### Listar Catálogos
33
- **Método:** GET
34
- **Endpoint:** `/v3/virtualgoods/catalog`
35
-
36
- ### Criar Catálogo
37
- **Método:** POST
38
- **Endpoint:** `/v3/virtualgoods/catalog`
39
-
40
- **Exemplo de Body:**
41
- ```json
42
- {
43
- "catalog": "Gifts",
44
- "extra": {},
45
- "i18n": {},
46
- "_id": "gifts"
47
- }
48
- ```
49
-
50
- ### Listar Itens
51
- **Método:** GET
52
- **Endpoint:** `/v3/virtualgoods/item`
53
-
54
- ### Criar Item
55
- **Método:** POST
56
- **Endpoint:** `/v3/virtualgoods/item`
57
-
58
- **Exemplo de Body:**
59
- ```json
60
- {
61
- "catalogId": "gifts",
62
- "name": "Bike",
63
- "description": "Electric bike",
64
- "amount": -1,
65
- "active": true,
66
- "extra": {},
67
- "requires": [],
68
- "rewards": [],
69
- "notifications": [],
70
- "i18n": {},
71
- "techniques": ["GT08"],
72
- "_id": "DTj7lVn"
73
- }
74
- ```
75
-
76
- ### Realizar Compra
77
- **Método:** POST
78
- **Endpoint:** `/v3/virtualgoods/purchase`
79
-
80
- **Exemplo de Body:**
81
- ```json
82
- {
83
- "player": "tom",
84
- "item": "DTj7lVn",
85
- "total": 1
86
- }
87
- ```
88
-
89
- ### Excluir Compra
90
- **Método:** DELETE
91
- **Endpoint:** `/v3/virtualgoods/purchase`
92
-
93
- ## Validações e Testes
94
-
95
- - [ ] Catálogo e itens aparecem nas respectivas listas
96
- - [ ] Jogador consegue comprar item com saldo suficiente
97
- - [ ] Compra debita pontos corretamente
98
- - [ ] Estoque é decrementado (se não ilimitado)
99
- - [ ] Limite de compras por jogador é respeitado
1
+ # Virtual Good (Loja Virtual)
2
+
3
+ **Acesso Studio:** `/studio/catalog`
4
+ **API Endpoint:** `/v3/virtualgoods`
5
+
6
+ ## O que é
7
+
8
+ Cadastro e gestão de objetos e benefícios que podem ser adquiridos pelos jogadores. Permite cadastrar produtos físicos, virtuais ou benefícios, estipular preços, quantidades, limites de compra e atributos. Os jogadores trocam pontos ou itens por objetos na loja.
9
+
10
+ ## Quando usar
11
+
12
+ - Para criar sistema de recompensas tangíveis
13
+ - Para monetizar pontos/moedas virtuais
14
+ - Para dar senso de propriedade e escolha ao jogador
15
+ - Exemplos: camisetas, gift cards, itens virtuais, acessórios de avatar
16
+
17
+ ## Dependências
18
+
19
+ - **Point**: moeda para compra deve existir
20
+
21
+ ## Checklist de Configuração no Studio
22
+
23
+ - [ ] Criar catálogo (ex: "gifts", "rewards")
24
+ - [ ] Criar itens dentro do catálogo
25
+ - [ ] Definir preço (requires: tipo de ponto + quantidade)
26
+ - [ ] Definir quantidade em estoque (amount, -1 = ilimitado)
27
+ - [ ] Definir limite de compras por jogador
28
+ - [ ] Ativar item (active: true)
29
+
30
+ ## API Endpoints
31
+
32
+ ### Listar Catálogos
33
+ **Método:** GET
34
+ **Endpoint:** `/v3/virtualgoods/catalog`
35
+
36
+ ### Criar Catálogo
37
+ **Método:** POST
38
+ **Endpoint:** `/v3/virtualgoods/catalog`
39
+
40
+ **Exemplo de Body:**
41
+ ```json
42
+ {
43
+ "catalog": "Gifts",
44
+ "extra": {},
45
+ "i18n": {},
46
+ "_id": "gifts"
47
+ }
48
+ ```
49
+
50
+ ### Listar Itens
51
+ **Método:** GET
52
+ **Endpoint:** `/v3/virtualgoods/item`
53
+
54
+ ### Criar Item
55
+ **Método:** POST
56
+ **Endpoint:** `/v3/virtualgoods/item`
57
+
58
+ **Exemplo de Body:**
59
+ ```json
60
+ {
61
+ "catalogId": "gifts",
62
+ "name": "Bike",
63
+ "description": "Electric bike",
64
+ "amount": -1,
65
+ "active": true,
66
+ "extra": {},
67
+ "requires": [],
68
+ "rewards": [],
69
+ "notifications": [],
70
+ "i18n": {},
71
+ "techniques": ["GT08"],
72
+ "_id": "DTj7lVn"
73
+ }
74
+ ```
75
+
76
+ ### Realizar Compra
77
+ **Método:** POST
78
+ **Endpoint:** `/v3/virtualgoods/purchase`
79
+
80
+ **Exemplo de Body:**
81
+ ```json
82
+ {
83
+ "player": "tom",
84
+ "item": "DTj7lVn",
85
+ "total": 1
86
+ }
87
+ ```
88
+
89
+ ### Excluir Compra
90
+ **Método:** DELETE
91
+ **Endpoint:** `/v3/virtualgoods/purchase`
92
+
93
+ ## Validações e Testes
94
+
95
+ - [ ] Catálogo e itens aparecem nas respectivas listas
96
+ - [ ] Jogador consegue comprar item com saldo suficiente
97
+ - [ ] Compra debita pontos corretamente
98
+ - [ ] Estoque é decrementado (se não ilimitado)
99
+ - [ ] Limite de compras por jogador é respeitado
@@ -1,41 +1,41 @@
1
- # WebHook (WebHook)
2
-
3
- **API Endpoint:** `/v3/webhook`
4
-
5
- ## O que é
6
-
7
- Notificações automáticas para endpoints externos em tempo real. Permite que a Funifier envie notificações automáticas (payloads) para sistemas externos sempre que eventos importantes ocorrem na gamificação, sem necessidade de polling.
8
-
9
- ## Quando usar
10
-
11
- - Para enviar dados para sistemas de BI quando um desafio é completado
12
- - Para notificar CRM quando jogador atinge uma meta
13
- - Para integrar com ferramentas externas (Slack, Teams, etc.)
14
- - Para sincronizar dados em tempo real com outros sistemas
15
-
16
- ## Checklist de Configuração
17
-
18
- - [ ] Definir URL do endpoint externo
19
- - [ ] Definir eventos que disparam o webhook
20
- - [ ] Definir formato do payload
21
- - [ ] Testar conectividade com endpoint
22
-
23
- ## API Endpoints
24
-
25
- ### Listar Webhooks
26
- **Método:** GET
27
- **Endpoint:** `/v3/webhook`
28
-
29
- ### Criar Webhook
30
- **Método:** POST
31
- **Endpoint:** `/v3/webhook`
32
-
33
- ### Deletar Webhook
34
- **Método:** DELETE
35
- **Endpoint:** `/v3/webhook/:id`
36
-
37
- ## Validações e Testes
38
-
39
- - [ ] Webhook aparece na lista
40
- - [ ] Payload é enviado quando evento ocorre
41
- - [ ] Endpoint externo recebe dados corretamente
1
+ # WebHook (WebHook)
2
+
3
+ **API Endpoint:** `/v3/webhook`
4
+
5
+ ## O que é
6
+
7
+ Notificações automáticas para endpoints externos em tempo real. Permite que a Funifier envie notificações automáticas (payloads) para sistemas externos sempre que eventos importantes ocorrem na gamificação, sem necessidade de polling.
8
+
9
+ ## Quando usar
10
+
11
+ - Para enviar dados para sistemas de BI quando um desafio é completado
12
+ - Para notificar CRM quando jogador atinge uma meta
13
+ - Para integrar com ferramentas externas (Slack, Teams, etc.)
14
+ - Para sincronizar dados em tempo real com outros sistemas
15
+
16
+ ## Checklist de Configuração
17
+
18
+ - [ ] Definir URL do endpoint externo
19
+ - [ ] Definir eventos que disparam o webhook
20
+ - [ ] Definir formato do payload
21
+ - [ ] Testar conectividade com endpoint
22
+
23
+ ## API Endpoints
24
+
25
+ ### Listar Webhooks
26
+ **Método:** GET
27
+ **Endpoint:** `/v3/webhook`
28
+
29
+ ### Criar Webhook
30
+ **Método:** POST
31
+ **Endpoint:** `/v3/webhook`
32
+
33
+ ### Deletar Webhook
34
+ **Método:** DELETE
35
+ **Endpoint:** `/v3/webhook/:id`
36
+
37
+ ## Validações e Testes
38
+
39
+ - [ ] Webhook aparece na lista
40
+ - [ ] Payload é enviado quando evento ocorre
41
+ - [ ] Endpoint externo recebe dados corretamente
@@ -1,41 +1,41 @@
1
- # WebSocket (WebSocket)
2
-
3
- **Acesso Studio:** `/studio/websocket`
4
- **API Endpoint:** `/v3/websocket`
5
-
6
- ## O que é
7
-
8
- Entrega de feedbacks em tempo real e interação instantânea entre jogadores. Permite configurar rotinas para enviar e receber informações instantaneamente entre jogadores e o sistema, sem precisar recarregar a página.
9
-
10
- ## Quando usar
11
-
12
- - Para comunicação em tempo real durante competições
13
- - Para feedback instantâneo ao completar desafios
14
- - Para chats ao vivo entre jogadores
15
- - Para atualização de status em tempo real
16
-
17
- ## Checklist de Configuração no Studio
18
-
19
- - [ ] Configurar rotinas de websocket
20
- - [ ] Definir eventos que disparam mensagens
21
- - [ ] Configurar canais de comunicação
22
-
23
- ## API Endpoints
24
-
25
- ### Listar WebSockets
26
- **Método:** GET
27
- **Endpoint:** `/v3/websocket`
28
-
29
- ### Criar WebSocket
30
- **Método:** POST
31
- **Endpoint:** `/v3/websocket`
32
-
33
- ### Deletar WebSocket
34
- **Método:** DELETE
35
- **Endpoint:** `/v3/websocket/:id`
36
-
37
- ## Validações e Testes
38
-
39
- - [ ] WebSocket aparece na lista
40
- - [ ] Mensagens são entregues em tempo real
41
- - [ ] Conexão se mantém estável
1
+ # WebSocket (WebSocket)
2
+
3
+ **Acesso Studio:** `/studio/websocket`
4
+ **API Endpoint:** `/v3/websocket`
5
+
6
+ ## O que é
7
+
8
+ Entrega de feedbacks em tempo real e interação instantânea entre jogadores. Permite configurar rotinas para enviar e receber informações instantaneamente entre jogadores e o sistema, sem precisar recarregar a página.
9
+
10
+ ## Quando usar
11
+
12
+ - Para comunicação em tempo real durante competições
13
+ - Para feedback instantâneo ao completar desafios
14
+ - Para chats ao vivo entre jogadores
15
+ - Para atualização de status em tempo real
16
+
17
+ ## Checklist de Configuração no Studio
18
+
19
+ - [ ] Configurar rotinas de websocket
20
+ - [ ] Definir eventos que disparam mensagens
21
+ - [ ] Configurar canais de comunicação
22
+
23
+ ## API Endpoints
24
+
25
+ ### Listar WebSockets
26
+ **Método:** GET
27
+ **Endpoint:** `/v3/websocket`
28
+
29
+ ### Criar WebSocket
30
+ **Método:** POST
31
+ **Endpoint:** `/v3/websocket`
32
+
33
+ ### Deletar WebSocket
34
+ **Método:** DELETE
35
+ **Endpoint:** `/v3/websocket/:id`
36
+
37
+ ## Validações e Testes
38
+
39
+ - [ ] WebSocket aparece na lista
40
+ - [ ] Mensagens são entregues em tempo real
41
+ - [ ] Conexão se mantém estável