@biznetgio/neo-app 0.4.77 → 0.4.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@biznetgio/neo-app",
3
- "version": "0.4.77",
3
+ "version": "0.4.79",
4
4
  "description": "NEO App CLI — one-command agent onboarding, MCP server, and project ops for coding agents (Codex, Claude Code).",
5
5
  "type": "module",
6
6
  "bin": {
package/prompt.md CHANGED
@@ -6,7 +6,7 @@ Keep this in sync with cli/prompt.md (the npm package's bundled copy).
6
6
  -->
7
7
  # Set this repo up on NEO App
8
8
 
9
- **Version:** 0.4.77 · **Last updated:** 2026-11-07
9
+ **Version:** 0.4.79 · **Last updated:** 2026-11-09
10
10
 
11
11
  These are the official setup instructions from NEO App (Biznet Gio's managed-app
12
12
  platform). If you are an AI coding agent, complete the steps below yourself by running
@@ -141,6 +141,21 @@ tools — never the portal UI. The lifecycle is the same for every resource type
141
141
  For a **scheduled job**, call `neo_cron_questionnaire` first to collect the schedule and
142
142
  target, then `neo_create_cron`. To expose a managed database or queue to the internet,
143
143
  use `neo_enable_db_public_access` / `neo_enable_queue_public_access` (deploy it first).
144
+ Secure public access is **PostgreSQL only** today — MySQL and Redis public access are
145
+ deferred; keep those private (in-cluster) and reach them from a service in the same project.
146
+
147
+ ## Managed databases from the terminal (PostgreSQL · MySQL · Redis)
148
+
149
+ - **Discover from the CLI:** `neo-app db` lists the whole lifecycle; `neo-app db list` and
150
+ `neo-app db get <id>` run directly (read-only). Connection strings are **redacted** in the
151
+ terminal — reveal the credential in the Portal, never in chat or logs.
152
+ - **Create/mutate** through the MCP tools (`neo_create_database`, `neo_deploy_database`,
153
+ `neo_verify_database`, …) so cost-consent and audit apply.
154
+ - **Backup/restore boundaries:** logical backup covers all three engines; **restore is
155
+ PostgreSQL and MySQL only** (`neo_restore_database` takes a SQL dump). **Redis logical
156
+ restore is not supported** — recover Redis from its persistence/replication, not a dump.
157
+ - **Public access:** PostgreSQL only (see above); MySQL/Redis secure public access and Redis
158
+ auth/TLS are deferred follow-ups, not available capabilities.
144
159
 
145
160
  Never deploy to **production** without an explicit request, and never default a missing
146
161
  environment — every create/deploy names `staging` or `production`.
@@ -23,7 +23,7 @@ const OPS = [
23
23
  ['metrics', 'neo_get_database_metrics', 'Engine-aware metrics snapshot'],
24
24
  ['backup', 'neo_run_backup / neo_create_backup', 'Create and run a logical backup'],
25
25
  ['restore', 'neo_restore_database', 'Restore a SQL dump (postgres/mysql)'],
26
- ['public', 'neo_enable_db_public_access','Enable/disable TLS public access'],
26
+ ['public', 'neo_enable_db_public_access','Enable/disable TLS public access (PostgreSQL only — MySQL/Redis public access deferred)'],
27
27
  ['delete', 'neo_delete_database', 'Delete a database (billable stop)'],
28
28
  ];
29
29
 
package/src/mcp/tools.js CHANGED
@@ -1048,16 +1048,17 @@ export const TOOLS = [
1048
1048
  },
1049
1049
  {
1050
1050
  name: 'neo_list_templates',
1051
- description: 'List deployable templates (e.g. n8n) with their manifest: the Creates/Reuses resource graph, pinned source/version, min resources, public routes, and limitations — enough to show the resource graph and a live estimate before deploy. WordPress was retired.',
1051
+ description: 'List deployable (APPROVED) templates with their manifest: the Creates/Reuses resource graph, pinned source/version + reviewedHash, status, min resources, public routes, and limitations — enough to show the graph and a live estimate before deploy. Only approved templates are returned by default (blocked/draft/retired are NOT deployable and are excluded); pass view:"all" for the research view that also includes blocked templates with their status + blockedReason. WordPress was retired.',
1052
1052
  mutating: false,
1053
- schema: { type: 'object', properties: {} },
1054
- async call(api) {
1055
- return (await api.get('/api/v1/templates')).data;
1053
+ schema: { type: 'object', properties: { view: { type: 'string', enum: ['deployable', 'all'], description: 'deployable (default — approved only) | all (research view incl. blocked, with status)' } } },
1054
+ async call(api, args) {
1055
+ const q = args && args.view === 'all' ? '?view=all' : '';
1056
+ return (await api.get('/api/v1/templates' + q)).data;
1056
1057
  },
1057
1058
  },
1058
1059
  {
1059
1060
  name: 'neo_deploy_template',
1060
- description: 'Deploy a template (e.g. n8n) into a project. May return pending_approval. Retired templates (e.g. wordpress) return 410 "no longer available".',
1061
+ description: 'Deploy an APPROVED template (e.g. n8n) into a project. Only approved templates deploy: a blocked/draft template returns 409 with the requirements to unblock (e.g. documenso/listmonk need SMTP), and a retired template (e.g. wordpress) returns 410 "no longer available". May return pending_approval.',
1061
1062
  mutating: true,
1062
1063
  schema: {
1063
1064
  type: 'object',