@xano/developer-mcp 1.0.25 → 1.0.27

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 (91) hide show
  1. package/README.md +50 -0
  2. package/dist/cli_docs/format.d.ts +12 -0
  3. package/dist/cli_docs/format.js +98 -0
  4. package/dist/{api_docs → cli_docs}/index.d.ts +6 -11
  5. package/dist/cli_docs/index.js +86 -0
  6. package/dist/cli_docs/topics/function.js +114 -0
  7. package/dist/cli_docs/topics/integration.d.ts +2 -0
  8. package/dist/cli_docs/topics/integration.js +157 -0
  9. package/dist/{api_docs/topics/agent.d.ts → cli_docs/topics/profile.d.ts} +1 -1
  10. package/dist/cli_docs/topics/profile.js +153 -0
  11. package/dist/{api_docs/topics/api.d.ts → cli_docs/topics/run.d.ts} +1 -1
  12. package/dist/cli_docs/topics/run.js +248 -0
  13. package/dist/cli_docs/topics/start.js +111 -0
  14. package/dist/cli_docs/topics/static_host.d.ts +2 -0
  15. package/dist/cli_docs/topics/static_host.js +77 -0
  16. package/dist/cli_docs/topics/workspace.js +119 -0
  17. package/dist/cli_docs/types.d.ts +44 -0
  18. package/dist/cli_docs/types.js +4 -0
  19. package/dist/index.js +42 -0
  20. package/dist/xanoscript_docs/README.md +78 -64
  21. package/dist/xanoscript_docs/apis.md +81 -27
  22. package/dist/xanoscript_docs/branch.md +13 -13
  23. package/dist/xanoscript_docs/database.md +57 -17
  24. package/dist/xanoscript_docs/functions.md +43 -71
  25. package/dist/xanoscript_docs/performance.md +14 -23
  26. package/dist/xanoscript_docs/tables.md +47 -1
  27. package/dist/xanoscript_docs/tools.md +9 -7
  28. package/dist/xanoscript_docs/types.md +12 -10
  29. package/package.json +1 -1
  30. package/dist/api_docs/format.d.ts +0 -5
  31. package/dist/api_docs/format.js +0 -171
  32. package/dist/api_docs/index.js +0 -111
  33. package/dist/api_docs/topics/agent.js +0 -142
  34. package/dist/api_docs/topics/api.js +0 -176
  35. package/dist/api_docs/topics/apigroup.d.ts +0 -2
  36. package/dist/api_docs/topics/apigroup.js +0 -124
  37. package/dist/api_docs/topics/authentication.d.ts +0 -2
  38. package/dist/api_docs/topics/authentication.js +0 -61
  39. package/dist/api_docs/topics/branch.d.ts +0 -2
  40. package/dist/api_docs/topics/branch.js +0 -73
  41. package/dist/api_docs/topics/file.d.ts +0 -2
  42. package/dist/api_docs/topics/file.js +0 -70
  43. package/dist/api_docs/topics/function.js +0 -164
  44. package/dist/api_docs/topics/history.d.ts +0 -2
  45. package/dist/api_docs/topics/history.js +0 -149
  46. package/dist/api_docs/topics/mcp_server.d.ts +0 -2
  47. package/dist/api_docs/topics/mcp_server.js +0 -139
  48. package/dist/api_docs/topics/middleware.d.ts +0 -2
  49. package/dist/api_docs/topics/middleware.js +0 -156
  50. package/dist/api_docs/topics/realtime.d.ts +0 -2
  51. package/dist/api_docs/topics/realtime.js +0 -112
  52. package/dist/api_docs/topics/start.js +0 -107
  53. package/dist/api_docs/topics/table.d.ts +0 -2
  54. package/dist/api_docs/topics/table.js +0 -195
  55. package/dist/api_docs/topics/task.d.ts +0 -2
  56. package/dist/api_docs/topics/task.js +0 -165
  57. package/dist/api_docs/topics/tool.d.ts +0 -2
  58. package/dist/api_docs/topics/tool.js +0 -150
  59. package/dist/api_docs/topics/workflows.d.ts +0 -2
  60. package/dist/api_docs/topics/workflows.js +0 -131
  61. package/dist/api_docs/topics/workspace.js +0 -153
  62. package/dist/api_docs/types.d.ts +0 -79
  63. package/dist/api_docs/types.js +0 -4
  64. package/dist/templates/init-workspace.d.ts +0 -10
  65. package/dist/templates/init-workspace.js +0 -278
  66. package/dist/templates/xanoscript-index.d.ts +0 -11
  67. package/dist/templates/xanoscript-index.js +0 -72
  68. package/dist/xanoscript_docs/ephemeral.md +0 -330
  69. package/dist/xanoscript_docs_auto/README.md +0 -119
  70. package/dist/xanoscript_docs_auto/agents.md +0 -446
  71. package/dist/xanoscript_docs_auto/apis.md +0 -517
  72. package/dist/xanoscript_docs_auto/control-flow.md +0 -543
  73. package/dist/xanoscript_docs_auto/database.md +0 -551
  74. package/dist/xanoscript_docs_auto/debugging.md +0 -527
  75. package/dist/xanoscript_docs_auto/filters.md +0 -464
  76. package/dist/xanoscript_docs_auto/functions.md +0 -431
  77. package/dist/xanoscript_docs_auto/integrations.md +0 -657
  78. package/dist/xanoscript_docs_auto/mcp-servers.md +0 -408
  79. package/dist/xanoscript_docs_auto/operators.md +0 -368
  80. package/dist/xanoscript_docs_auto/syntax.md +0 -287
  81. package/dist/xanoscript_docs_auto/tables.md +0 -447
  82. package/dist/xanoscript_docs_auto/tasks.md +0 -479
  83. package/dist/xanoscript_docs_auto/testing.md +0 -574
  84. package/dist/xanoscript_docs_auto/tools.md +0 -485
  85. package/dist/xanoscript_docs_auto/triggers.md +0 -595
  86. package/dist/xanoscript_docs_auto/types.md +0 -323
  87. package/dist/xanoscript_docs_auto/variables.md +0 -462
  88. package/dist/xanoscript_docs_auto/version.json +0 -5
  89. /package/dist/{api_docs → cli_docs}/topics/function.d.ts +0 -0
  90. /package/dist/{api_docs → cli_docs}/topics/start.d.ts +0 -0
  91. /package/dist/{api_docs → cli_docs}/topics/workspace.d.ts +0 -0
@@ -0,0 +1,119 @@
1
+ export const workspaceDoc = {
2
+ topic: "workspace",
3
+ title: "Xano CLI - Workspace Operations",
4
+ description: `Workspace commands let you sync XanoScript code between your local filesystem and Xano. This enables version control, local editing, and CI/CD workflows.
5
+
6
+ ## Multidoc Format
7
+
8
+ Xano uses a "multidoc" format where multiple XanoScript documents are separated by \`---\`:
9
+
10
+ \`\`\`xanoscript
11
+ # functions/auth.xs
12
+ ---
13
+ function: validate_token
14
+ ...
15
+ ---
16
+ function: refresh_token
17
+ ...
18
+ \`\`\`
19
+
20
+ When you pull, the CLI splits these into individual \`.xs\` files organized by type.`,
21
+ ai_hints: `**Key concepts:**
22
+ - \`pull\` downloads workspace code and splits into organized .xs files
23
+ - \`push\` combines .xs files and uploads to Xano
24
+ - Files are organized by type: functions/, apis/, tasks/, etc.
25
+
26
+ **Typical workflow:**
27
+ 1. \`xano workspace:pull ./xano-code\` - download
28
+ 2. Edit .xs files with your editor/IDE
29
+ 3. \`xano workspace:push ./xano-code\` - deploy
30
+
31
+ **Version control:**
32
+ - The pulled directory structure is git-friendly
33
+ - Commit changes to track history
34
+ - Use branches for different environments
35
+
36
+ **Branch handling:**
37
+ - Use \`-b\` flag or set branch in profile
38
+ - Pull from one branch, push to another is supported`,
39
+ related_topics: ["start", "function", "integration"],
40
+ commands: [
41
+ {
42
+ name: "workspace:list",
43
+ description: "List all workspaces accessible to your account",
44
+ usage: "xano workspace:list [-p <profile>]",
45
+ examples: ["xano workspace:list", "xano workspace:list -p production"]
46
+ },
47
+ {
48
+ name: "workspace:pull",
49
+ description: "Download workspace code to local directory",
50
+ usage: "xano workspace:pull <directory> [options]",
51
+ args: [
52
+ { name: "directory", required: true, description: "Local directory to save files" }
53
+ ],
54
+ flags: [
55
+ { name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile default if not set)" },
56
+ { name: "branch", short: "b", type: "string", required: false, description: "Branch ID to pull from" },
57
+ { name: "env", type: "boolean", required: false, description: "Include environment variables" },
58
+ { name: "records", type: "boolean", required: false, description: "Include table records" }
59
+ ],
60
+ examples: [
61
+ "xano workspace:pull ./my-app",
62
+ "xano workspace:pull ./staging-code -b 2",
63
+ "xano workspace:pull ./backup --env --records"
64
+ ]
65
+ },
66
+ {
67
+ name: "workspace:push",
68
+ description: "Upload local XanoScript files to workspace",
69
+ usage: "xano workspace:push <directory> [options]",
70
+ args: [
71
+ { name: "directory", required: true, description: "Local directory containing .xs files" }
72
+ ],
73
+ flags: [
74
+ { name: "workspace", short: "w", type: "string", required: false, description: "Workspace ID (uses profile default if not set)" },
75
+ { name: "branch", short: "b", type: "string", required: false, description: "Branch ID to push to" }
76
+ ],
77
+ examples: [
78
+ "xano workspace:push ./my-app",
79
+ "xano workspace:push ./my-app -b 2"
80
+ ]
81
+ }
82
+ ],
83
+ workflows: [
84
+ {
85
+ name: "Local Development Cycle",
86
+ description: "Edit Xano code locally with your preferred tools",
87
+ steps: [
88
+ "Pull workspace: `xano workspace:pull ./code`",
89
+ "Edit .xs files in your IDE",
90
+ "Validate changes: Use xanoscript_docs MCP tool",
91
+ "Push changes: `xano workspace:push ./code`",
92
+ "Test in Xano dashboard or via API"
93
+ ],
94
+ example: `xano workspace:pull ./my-app
95
+ # Edit files...
96
+ xano workspace:push ./my-app`
97
+ },
98
+ {
99
+ name: "Version Control Setup",
100
+ description: "Track Xano code changes in git",
101
+ steps: [
102
+ "Pull workspace: `xano workspace:pull ./xano`",
103
+ "Initialize git: `cd xano && git init`",
104
+ "Add files: `git add . && git commit -m 'Initial import'`",
105
+ "Make changes and commit regularly",
106
+ "Push to Xano when ready: `xano workspace:push ./xano`"
107
+ ]
108
+ },
109
+ {
110
+ name: "Cross-Branch Deployment",
111
+ description: "Promote code from staging to production",
112
+ steps: [
113
+ "Pull from staging: `xano workspace:pull ./deploy -b staging`",
114
+ "Review changes",
115
+ "Push to production: `xano workspace:push ./deploy -b production`"
116
+ ]
117
+ }
118
+ ]
119
+ };
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Type definitions for Xano CLI documentation
3
+ */
4
+ export interface CommandDoc {
5
+ name: string;
6
+ description: string;
7
+ usage: string;
8
+ flags?: FlagDoc[];
9
+ args?: ArgDoc[];
10
+ examples?: string[];
11
+ }
12
+ export interface FlagDoc {
13
+ name: string;
14
+ short?: string;
15
+ type: string;
16
+ required?: boolean;
17
+ default?: string;
18
+ description: string;
19
+ }
20
+ export interface ArgDoc {
21
+ name: string;
22
+ required?: boolean;
23
+ description: string;
24
+ }
25
+ export interface WorkflowDoc {
26
+ name: string;
27
+ description: string;
28
+ steps: string[];
29
+ example?: string;
30
+ }
31
+ export interface TopicDoc {
32
+ topic: string;
33
+ title: string;
34
+ description: string;
35
+ commands?: CommandDoc[];
36
+ workflows?: WorkflowDoc[];
37
+ related_topics?: string[];
38
+ ai_hints?: string;
39
+ }
40
+ export type DetailLevel = "overview" | "detailed" | "examples";
41
+ export interface CliDocsArgs {
42
+ topic: string;
43
+ detail_level?: DetailLevel;
44
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Type definitions for Xano CLI documentation
3
+ */
4
+ export {};
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ import { xanoscriptParser } from "@xano/xanoscript-language-server/parser/parser
9
9
  import { getSchemeFromContent } from "@xano/xanoscript-language-server/utils.js";
10
10
  import { metaApiDocsToolDefinition, handleMetaApiDocs } from "./meta_api_docs/index.js";
11
11
  import { runApiDocsToolDefinition, handleRunApiDocs } from "./run_api_docs/index.js";
12
+ import { cliDocsToolDefinition, handleCliDocs } from "./cli_docs/index.js";
12
13
  import { XANOSCRIPT_DOCS_V2, readXanoscriptDocsV2, getXanoscriptDocsVersion, getTopicDescriptions, } from "./xanoscript.js";
13
14
  const __filename = fileURLToPath(import.meta.url);
14
15
  const __dirname = dirname(__filename);
@@ -146,6 +147,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
146
147
  },
147
148
  metaApiDocsToolDefinition,
148
149
  runApiDocsToolDefinition,
150
+ cliDocsToolDefinition,
149
151
  ],
150
152
  };
151
153
  });
@@ -322,6 +324,46 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
322
324
  };
323
325
  }
324
326
  }
327
+ if (request.params.name === "cli_docs") {
328
+ const args = request.params.arguments;
329
+ if (!args?.topic) {
330
+ return {
331
+ content: [
332
+ {
333
+ type: "text",
334
+ text: "Error: 'topic' parameter is required. Use cli_docs with topic='start' for overview.",
335
+ },
336
+ ],
337
+ isError: true,
338
+ };
339
+ }
340
+ try {
341
+ const documentation = handleCliDocs({
342
+ topic: args.topic,
343
+ detail_level: args.detail_level,
344
+ });
345
+ return {
346
+ content: [
347
+ {
348
+ type: "text",
349
+ text: documentation,
350
+ },
351
+ ],
352
+ };
353
+ }
354
+ catch (error) {
355
+ const errorMessage = error instanceof Error ? error.message : String(error);
356
+ return {
357
+ content: [
358
+ {
359
+ type: "text",
360
+ text: `Error retrieving CLI documentation: ${errorMessage}`,
361
+ },
362
+ ],
363
+ isError: true,
364
+ };
365
+ }
366
+ }
325
367
  return {
326
368
  content: [
327
369
  {
@@ -4,21 +4,21 @@ XanoScript is the declarative scripting language for [Xano](https://xano.com), a
4
4
 
5
5
  ## Quick Reference
6
6
 
7
- | Construct | File Location | Purpose |
8
- |-----------|---------------|---------|
9
- | `table` | `tables/*.xs` | Database schema definition |
10
- | `function` | `functions/**/*.xs` | Reusable logic blocks |
11
- | `query` | `apis/<group>/*.xs` | HTTP API endpoints |
12
- | `task` | `tasks/*.xs` | Scheduled/cron jobs |
13
- | `*_trigger` | `triggers/**/*.xs` | Event-driven handlers |
14
- | `agent` | `agents/**/*.xs` | AI-powered agents |
15
- | `tool` | `tools/**/*.xs` | Tools for AI agents |
16
- | `mcp_server` | `mcp_servers/**/*.xs` | MCP server definitions |
17
- | `addon` | `addons/*.xs` | Subqueries for related data |
18
- | `middleware` | `middleware/**/*.xs` | Request/response interceptors |
19
- | `branch` | `branch.xs` | Branch-level configuration |
20
- | `workspace` | `workspace.xs` | Workspace-level configuration |
21
- | `realtime_channel` | Configuration | Realtime channel settings |
7
+ | Construct | File Location | Purpose |
8
+ | ------------------ | --------------------- | ----------------------------- |
9
+ | `table` | `tables/*.xs` | Database schema definition |
10
+ | `function` | `functions/**/*.xs` | Reusable logic blocks |
11
+ | `query` | `apis/<group>/*.xs` | HTTP API endpoints |
12
+ | `task` | `tasks/*.xs` | Scheduled/cron jobs |
13
+ | `*_trigger` | `triggers/**/*.xs` | Event-driven handlers |
14
+ | `agent` | `agents/**/*.xs` | AI-powered agents |
15
+ | `tool` | `tools/**/*.xs` | Tools for AI agents |
16
+ | `mcp_server` | `mcp_servers/**/*.xs` | MCP server definitions |
17
+ | `addon` | `addons/*.xs` | Subqueries for related data |
18
+ | `middleware` | `middleware/**/*.xs` | Request/response interceptors |
19
+ | `branch` | `branch.xs` | Branch-level configuration |
20
+ | `workspace` | `workspace.xs` | Workspace-level configuration |
21
+ | `realtime_channel` | Configuration | Realtime channel settings |
22
22
 
23
23
  **Important:** Each `.xs` file must contain exactly one definition. You cannot define multiple tables, functions, queries, or other constructs in a single file.
24
24
 
@@ -47,21 +47,22 @@ project/
47
47
 
48
48
  Access with `$env.<name>`. Built-in variables:
49
49
 
50
- | Variable | Description |
51
- |----------|-------------|
52
- | `$env.$remote_ip` | Client IP address |
53
- | `$env.$http_headers` | Request headers array |
54
- | `$env.$request_uri` | Request URI |
55
- | `$env.$request_method` | HTTP method (GET, POST, etc.) |
56
- | `$env.$request_querystring` | Query string |
57
- | `$env.$datasource` | Current datasource |
58
- | `$env.$branch` | Current branch |
50
+ | Variable | Description |
51
+ | --------------------------- | ----------------------------- |
52
+ | `$env.$remote_ip` | Client IP address |
53
+ | `$env.$http_headers` | Request headers array |
54
+ | `$env.$request_uri` | Request URI |
55
+ | `$env.$request_method` | HTTP method (GET, POST, etc.) |
56
+ | `$env.$request_querystring` | Query string |
57
+ | `$env.$datasource` | Current datasource |
58
+ | `$env.$branch` | Current branch |
59
59
 
60
60
  Custom environment variables are set in the Xano dashboard and accessed as `$env.MY_VAR`.
61
61
 
62
62
  ## Core Syntax Patterns
63
63
 
64
64
  ### Block Structure
65
+
65
66
  ```xs
66
67
  <construct> "<name>" {
67
68
  input { ... } // Parameters (optional)
@@ -71,6 +72,7 @@ Custom environment variables are set in the Xano dashboard and accessed as `$env
71
72
  ```
72
73
 
73
74
  ### Variable Access
75
+
74
76
  ```xs
75
77
  $input.field // Input parameters
76
78
  $var.field // Stack variables
@@ -83,14 +85,18 @@ $this // Current item in loops/maps
83
85
  **Note:** `$response` is a reserved word and cannot be used as a variable name.
84
86
 
85
87
  ### Comments
88
+
86
89
  ```xs
87
90
  // Single-line comment
88
- var $total { value = 0 } // Inline comment
91
+ var $total {
92
+ value = 0
93
+ }
89
94
  ```
90
95
 
91
96
  **Note:** XanoScript only supports `//` for comments. Other comment styles like `#` are not supported.
92
97
 
93
98
  ### Filters (Pipe Syntax)
99
+
94
100
  ```xs
95
101
  $value|trim|lower // Chain filters
96
102
  $input.name|strlen // Get length
@@ -115,58 +121,66 @@ This helps AI tools apply the correct documentation based on the file being edit
115
121
  Use `xanoscript_docs({ topic: "<topic>" })` to retrieve documentation.
116
122
 
117
123
  ### Core Language
118
- | Topic | Description |
119
- |-------|-------------|
120
- | `syntax` | Expressions, operators, filters, system variables |
121
- | `types` | Data types, validation, input blocks |
122
- | `functions` | Reusable function stacks, async, loops |
123
- | `schema` | Runtime schema parsing and validation |
124
+
125
+ | Topic | Description |
126
+ | ----------- | ------------------------------------------------- |
127
+ | `syntax` | Expressions, operators, filters, system variables |
128
+ | `types` | Data types, validation, input blocks |
129
+ | `functions` | Reusable function stacks, async, loops |
130
+ | `schema` | Runtime schema parsing and validation |
124
131
 
125
132
  ### Data
126
- | Topic | Description |
127
- |-------|-------------|
128
- | `tables` | Database schema definitions with indexes and relationships |
129
- | `database` | All db.* operations: query, get, add, edit, patch, delete |
130
- | `addons` | Reusable subqueries for fetching related data |
131
- | `streaming` | Streaming data from files, requests, and responses |
133
+
134
+ | Topic | Description |
135
+ | ----------- | ---------------------------------------------------------- |
136
+ | `tables` | Database schema definitions with indexes and relationships |
137
+ | `database` | All db.\* operations: query, get, add, edit, patch, delete |
138
+ | `addons` | Reusable subqueries for fetching related data |
139
+ | `streaming` | Streaming data from files, requests, and responses |
132
140
 
133
141
  ### APIs & Endpoints
134
- | Topic | Description |
135
- |-------|-------------|
136
- | `apis` | HTTP endpoint definitions with authentication and CRUD patterns |
137
- | `tasks` | Scheduled and cron jobs |
138
- | `triggers` | Event-driven handlers (table, realtime, workspace, agent, MCP) |
139
- | `realtime` | Real-time channels and events for push updates |
142
+
143
+ | Topic | Description |
144
+ | ---------- | --------------------------------------------------------------- |
145
+ | `apis` | HTTP endpoint definitions with authentication and CRUD patterns |
146
+ | `tasks` | Scheduled and cron jobs |
147
+ | `triggers` | Event-driven handlers (table, realtime, workspace, agent, MCP) |
148
+ | `realtime` | Real-time channels and events for push updates |
140
149
 
141
150
  ### AI & Agents
142
- | Topic | Description |
143
- |-------|-------------|
144
- | `agents` | AI agent configuration with LLM providers and tools |
145
- | `tools` | AI tools for agents and MCP servers |
146
- | `mcp-servers` | MCP server definitions exposing tools |
151
+
152
+ | Topic | Description |
153
+ | ------------- | --------------------------------------------------- |
154
+ | `agents` | AI agent configuration with LLM providers and tools |
155
+ | `tools` | AI tools for agents and MCP servers |
156
+ | `mcp-servers` | MCP server definitions exposing tools |
147
157
 
148
158
  ### Integrations
149
- | Topic | Description |
150
- |-------|-------------|
159
+
160
+ | Topic | Description |
161
+ | -------------- | ------------------------------------------------- |
151
162
  | `integrations` | Cloud storage, Redis, security, and external APIs |
152
163
 
153
164
  ### Configuration
154
- | Topic | Description |
155
- |-------|-------------|
156
- | `workspace` | Workspace-level settings: environment variables, preferences, realtime |
157
- | `branch` | Branch-level settings: middleware, history retention, visual styling |
165
+
166
+ | Topic | Description |
167
+ | ------------ | ---------------------------------------------------------------------- |
168
+ | `workspace` | Workspace-level settings: environment variables, preferences, realtime |
169
+ | `branch` | Branch-level settings: middleware, history retention, visual styling |
158
170
  | `middleware` | Request/response interceptors for functions, queries, tasks, and tools |
159
171
 
160
172
  ### Development
161
- | Topic | Description |
162
- |-------|-------------|
163
- | `testing` | Unit tests, mocks, and assertions |
164
- | `debugging` | Logging, inspecting, and debugging XanoScript execution |
165
- | `frontend` | Static frontend development and deployment |
166
- | `run` | Run job and service configurations for the Xano Job Runner |
173
+
174
+ | Topic | Description |
175
+ | ----------- | ---------------------------------------------------------- |
176
+ | `testing` | Unit tests, mocks, and assertions |
177
+ | `debugging` | Logging, inspecting, and debugging XanoScript execution |
178
+ | `frontend` | Static frontend development and deployment |
179
+ | `run` | Run job and service configurations for the Xano Job Runner |
167
180
 
168
181
  ### Best Practices
169
- | Topic | Description |
170
- |-------|-------------|
171
- | `performance` | Performance optimization best practices |
172
- | `security` | Security best practices for authentication and authorization |
182
+
183
+ | Topic | Description |
184
+ | ------------- | ------------------------------------------------------------ |
185
+ | `performance` | Performance optimization best practices |
186
+ | `security` | Security best practices for authentication and authorization |