Community Marketplace

Nodi community FlowForge

Pubblica il tuo node custom, condividilo con la community FlowForge. SDK TypeScript + sandbox preview + install one-click.

0
Nodi pubblicati
0
In review
SDK
@flowforge/nodes-sdk

In arrivo: catalogo community

Il marketplace community è in fase pilota: gli sviluppatori possono già creare nodi custom con l'SDK e installarli nel proprio workspace. Il listing pubblico apre quando avremo i primi 10 nodi review-approved (target Q3 2026).

SDK + Esempio →Documentazione SDK

Come pubblicare un nodo

  1. Installa SDK: npm install @flowforge/nodes-sdk
  2. Definisci il NodeDef con defineNode() + executor TS
  3. Test locale: npx flowforge-sdk test ./mio-nodo.ts
  4. Build: npx flowforge-sdk build → manifest .flowforge-node.json
  5. Publish: npx flowforge-sdk publish → invia per review (~3gg)

Review include: validazione NodeDef schema, scan SAST (Semgrep + Snyk), audit manuale per nodi con scope sensibili (secret/credentials/exec). Vulnerabilità note bloccano la pubblicazione.

Esempio nodo community completo

import { defineNode } from '@flowforge/nodes-sdk';
import { z } from 'zod';

const ConfigSchema = z.object({
  apiKey: z.string().min(1),
  greeting: z.string().default('Ciao'),
});

export default defineNode({
  manifest: {
    name: '@acme/hello-saas',
    version: '1.0.0',
    license: 'MIT',
    author: 'Acme Corp',
  },
  def: {
    id: 'community_hello_saas',
    type: 'action',
    label: 'Hello SaaS',
    icon: 'megaphone',
    color: '#7c3aed',
    description: 'Saluta un utente via Hello SaaS API. ...',
    configFields: [
      { key: 'apiKey', label: 'API Key', type: 'secret', required: true },
      { key: 'greeting', label: 'Saluto', type: 'text', defaultValue: 'Ciao' },
    ],
    vendor: 'acme',
    version: '1.0.0',
  },
  async execute(config, input, context) {
    const cfg = ConfigSchema.parse(config);
    const res = await fetch('https://hello-saas.example.com/api/greet', {
      method: 'POST',
      headers: { Authorization: `Bearer ${cfg.apiKey}` },
      body: JSON.stringify({ message: `${cfg.greeting} ${input?.name ?? 'utente'}` }),
    });
    if (!res.ok) throw new Error(`HelloSaas HTTP ${res.status}`);
    return { output: await res.json(), durationMs: 0 };
  },
});

Pronto a pubblicare?

Hai una integrazione che vorresti condividere? Apri una pull request o scrivici per onboarding diretto.

Scrivi a [email protected]