Blank white background with no objects or features visible.

EMEA, hallo! TrueFoundry breidt zijn aanwezigheid uit in Europa, het Midden-Oosten en Afrika. Lees meer. →

Schema-Driven Forms in React: Bouwen met TrueFoundry FormBuilder

DoorShubham Kumar Singh

Bijgewerkt: November 10, 2026

Gepubliceerd: November 9, 2026

Als je TrueFoundry hebt gebruikt om een service te pitchen, een cluster aan te maken, een LLM-model te configureren of secrets te beheren, heb je gewerkt met formulieren die eruitzien als een normale UI, maar die heel anders zijn gebouwd dan typische webformulieren.

⚡ TL;DR

TrueFoundry’s FormBuilder is een schema-driven formulatorsysteem dat gestructureerde JSON gebruikt om dynamische React-invoeren, groepen en validatielogica automatisch te renderen. Deze architectuur zorgt voor consistent gedrag bij complexe bronconfiguraties, vereenvoudigt genest statusbeheer met react-hook-form en maakt snelle ontwikkeling van domeinspecifieke UI's mogelijk.TrueFoundry codeert niet elk veld op elk scherm handmatig. In plaats daarvan gebruikt het een schema-driven formuliersysteem genaamd FormBuilder. Een formulier wordt gedefinieerd als gestructureerde JSON (het schema). De UI leest dat schema en rendert automatisch de juiste invoervelden, groepen, validaties en voorwaardelijke velden.

Dit artikel legt in vier delen uit hoe dat werkt:
  • Hoe een formulierschema eruitziet
  • Hoe velden worden gekoppeld aan UI-componenten en worden gerenderd
  • Hoe de formulierstatus wordt beheerd
  • Hoe validatie werkt

Waarom TrueFoundry schema-driven forms gebruikt

TrueFoundry-formulieren vertegenwoordigen vaak manifests - YAML/JSON-objecten die je ook kunt toepassen met de CLI (tfy apply -f ...). Hetzelfde object kan worden bewerkt in de UI, gedownload als YAML, of ingediend bij de API.

Een schema-driven aanpak geeft TrueFoundry:

  • Één bron van waarheid voor formulierstructuur (geladen vanuit de backend per brontype).
  • Consistent gedrag voor deployments, clusters, policies, models, secrets, instellingenformulieren of elk ander formulier in het platform.
  • Geneste en voorwaardelijke velden zonder de formulierlogica op elk scherm opnieuw te schrijven.
  • Domeinspecifieke widgets (cluster picker, secret selector, resource limits) aangesloten op een gedeelde runtime.

Het mentale model: het schema beschrijft de vorm van de gegevens en hoe deze moeten worden bewerkt; FormBuilder zet die beschrijving om in een werkend formulier.

1. Formulierschema:

Een formulierschema is een array van velddefinities. Elk veld is een object met een paar belangrijke eigenschappen:

Eigenschap Doel
jsonKey Waar dit veld zich bevindt in het ingediende object (ondersteunt nesting, bijv. image.build_source.type).
label Wat de gebruiker ziet.
uiType Welke UI-component moet worden gerenderd (tekstinvoer, select, group, aangepaste widget, enz.).
sort Weergavevolgorde.
validate Verplicht, min/max, patroon, standaardwaarden, aangepaste validators.
conditions Tonen/verbergen of inschakelen/uitschakelen op basis van andere velden.
subParameters Subvelden voor groepen en herhaalde secties.
uiProps Extra opties die worden doorgegeven aan de component (zoeken, tabelweergave, enz.).

Hier is een vereenvoudigd generiek voorbeeld - geen echt TrueFoundry-schema, maar dicht bij hoe het product over configuratie denkt:

Resulterend manifest/configuratie bij indienen:

2. Hoe componenten worden gekoppeld en velden worden gerenderd

Rendering gebeurt in een kleine pipeline, de stroom is:

FormBuilder doorloopt de schemaboom en kiest per node een React-component op basis van uiType.

Componenttypen:

  • Basis: Input, Select, Radio, Switch, Number
  • Structureel: Group (sectie), Structs (herhaalbare lijst), KV / ENV (sleutel-waarde)
  • Domeinspecifiek: ClusterSelect, SecretSelect, Resources, ModelSelect, PermissionsMatrix, MCP-velden, en meer

Voorwaarden: Als image.type !== "existing", wordt het URI-veld nooit gemount. Met shouldUnregister: true verlaat het ook de formulierstatus, zodat verborgen waarden niet in de payload terecht kunnen komen.

Koppelingslogica in code:

3. Hoe de formulierstatus wordt afgehandeld

FormBuilder gebruikt react-hook-form als status-engine. Die keuze is belangrijk voor hoe het product zich gedraagt.

Initialisatie/Componentgebruik - aanmaken & bewerken:

Formulierinstelling:

Veldregistratie - elke invoer bindt aan zijn pad:

Extra context - specifieke formulieren geven runtime-gegevens door, gescheiden van veldwaarden:

Enkel object, geneste paden:

Alle veldwaarden bevinden zich in één formulierobject. Elk veld registreert zich onder zijn volledige jsonKey-pad:

  • name → string op hoogste niveau
  • image.type → geneste waarde
  • ports.0.container_port → eerste item in een array

Wanneer je een veld bewerkt, verander je dit gedeelde object. Bij het indienen leest FormBuilder het gehele object en geeft het door aan de handler van het formulier (die meestal de TrueFoundry API aanroept of YAML genereert).

Standaardwaarden en bewerkingsmodus:

Bij het openen van een formulier om iets aan te maken, kunnen defaultValues leeg zijn of uit een template komen.

Bij het bewerken is defaultValues typisch het bestaande manifest. De formulieren vullen zich vooraf vanuit dat object. Sommige velden zijn gemarkeerd als onveranderlijk in de bewerkingsmodus (bijv. resourcenaam) zodat ze alleen-lezen worden gerenderd.

Verborgen velden worden verwijderd uit de status:

TrueFoundry-formulieren gebruiken shouldUnregister: true. Dat betekent:

  • Als een veld verborgen is door een voorwaarde, wordt de registratie in de formulierstatus ongedaan gemaakt
  • De waarde lekt niet uit naar de ingediende payload

Dit is belangrijk voor voorwaardelijke formulieren: je dient alleen in wat de gebruiker daadwerkelijk kon zien en bewerken.

4. Hoe validatie werkt

Validatie in TrueFoundry-formulieren vindt plaats op twee lagen.

Laag 1: Schemavalidatie (declaratief)

Het validate-blok van elk veld kan het volgende specificeren:

  • required
  • min / max (toegestaan bereik van geheel getal)
  • minLength / maxLength (lengte van string of array)
  • pattern (regex) met aangepast bericht
  • defaultValue
  • immutable (alleen-lezen in bewerkingsmodus)

Deze regels worden omgezet in react-hook-form-validatieregels. Fouten worden inline naast het veld getoond. Validatie wordt uitgevoerd bij wijziging (mode: 'onChange'), zodat gebruikers feedback krijgen terwijl ze typen, niet alleen bij het indienen.

Laag 2: Aangepaste en asynchrone validatie

Schema's kunnen ook een aangepaste validate-functie koppelen, die vaak wordt gebruikt voor:

  • Uniciteit van namen (“Er bestaat al een entiteit met deze naam”)
  • API-gebaseerde controles vóór indienen
  • Regels over meerdere velden binnen een aangepaste component
  • Schermen koppelen deze bij runtime met helpers zoals “koppel validatie aan veldnaam”. De UI toont een spinner terwijl asynchrone validatie wordt uitgevoerd (bijv. debounced naamcontrole).

Alles samenbrengen: wat je ervaart als gebruiker

Wanneer je “Create Cluster”, “Deploy Service”, “Add Model” of “Manage Secrets” opent:

  • TrueFoundry laadt (of bouwt) een schema voor die resource
  • FormBuilder rendert elke schemanode als de gewenste invoercomponent
  • Je bewerkingen werken één enkel genest formulierobject bij
  • Validatie wordt continu uitgevoerd en opnieuw bij het indienen
  • Het uiteindelijke object is een manifest - dezelfde vorm die je zou gebruiken in YAML of de CLI

Dat is waarom TrueFoundry zeer complexe configuratie-UI's kan ondersteunen zonder dat elk scherm een eenmalig formulier is: de complexiteit zit in het schema en een bibliotheek van veldcomponenten, georkestreerd door één gedeelde runtime.

Probeer het nu.

Eén gateway voor al je modellen, MCP-servers en agents. Geen creditcard nodig.

Start gratis
Inhoudsopgave

Eén gateway voor elk LLM, elke agent en elke MCP-server

Boek een gesprek van 30 minuten met onze AI-expert

Demo aanvragen

De snelste manier om je AI te bouwen, beheren en schalen

Demo boeken
Samenvatten met
ChatGPT logo by OpenAI
Perplexity AI logo
Blurry red snowflake on white background, symmetrical frosty design with soft edges and abstract shape.

Ontdek meer

Geen items gevonden.
TrueFoundry offers scalable alternatives for Vercel AI Gateway limitations
November 10, 2026
|
5 min leestijd

Vercel AI Review 2026: Wij hebben het getest, zodat jij dat niet hoeft te doen

Geen items gevonden.
November 10, 2026
|
5 min leestijd

Vendor lock-in voorkomen met de AI Gateway van TrueFoundry

Geen items gevonden.
November 10, 2026
|
5 min leestijd

TrueFoundry en de MCP-gatewayrevolutie: inzichten uit het Gartner-rapport van 2025

Geen items gevonden.
November 10, 2026
|
5 min leestijd

Gids voor MCP-authenticatie in Claude Code 2026

Geen items gevonden.
Geen items gevonden.

Recente blogs

Black left pointing arrow symbol on white background, directional indicator.
Black left pointing arrow symbol on white background, directional indicator.

Veelgestelde vragen

Why choose a schema-driven approach over hand-coding forms?

Schema-driven forms provide a single source of truth for your configuration manifests. They ensure consistent UI behavior, support nested/conditional logic without repeated code, and allow the backend to drive the form structure dynamically.

How does validation work in FormBuilder?

Validation happens in two layers: Declarative schema validation (using rules like required, pattern, or min/max) and Custom/Async validation for API-backed checks, such as verifying unique resource names.

Can I integrate this with existing React libraries?

Yes. TrueFoundry's FormBuilder uses react-hook-form as its core state engine, making it compatible with standard React patterns and easy to extend with custom components.

Volg een korte producttour
Start producttour
Product Tour