PHPackages                             elqora/config-kit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. elqora/config-kit

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

elqora/config-kit
=================

SDK config schema designed to provide a general shape for Input field configurations

1.0.2(1mo ago)091MITPHP

Since Jul 8Pushed 1mo agoCompare

[ Source](https://github.com/elqora/config-kit)[ Packagist](https://packagist.org/packages/elqora/config-kit)[ RSS](/packages/elqora-config-kit/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (1)

Elqora UI Config Schema
=======================

[](#elqora-ui-config-schema)

Framework-agnostic PHP primitives for describing UI configuration forms.

This package gives SDKs, plugins, admin panels, and host applications a shared way to describe configuration fields, option lists, nested groups, tabs, sensitive values, and validation results without coupling the schema to a specific frontend framework.

Use it when you want a PHP package to expose a predictable configuration contract that another system can render, validate, store, or transform.

Installation
------------

[](#installation)

```
composer require elqora/config-kit
```

The package is published as `elqora/config-kit` and uses the `Elqora\ConfigKit\` namespace.

What This Package Provides
--------------------------

[](#what-this-package-provides)

### Nested UI Schemas

[](#nested-ui-schemas)

Use `UiConfigSchema` when you want to describe a tree-shaped form:

- `UiConfigSchema` is the root object.
- `settings` is an associative array of named schema nodes.
- `ConfigGroup` represents a group of child nodes.
- `ConfigField` represents an individual field.
- `ConfigTab` describes optional tab metadata that a UI can use for layout.

Nested schemas are useful when your UI naturally has grouped settings, such as credentials, webhook options, or advanced controls.

### Flat Schemas

[](#flat-schemas)

Use `ConfigSchema` when you want a simple list of `ConfigField` objects.

Flat schemas are useful for older integrations, simple forms, or storage flows that do not need nested layout information.

### Options

[](#options)

Use `ConfigOption` for select, radio, multiselect, or button-like choices. Options can include or exclude other fields, and they can also have nested child options.

### Config Values

[](#config-values)

Use `ConfigBag` to pass actual configuration values around. It separates public options from sensitive secrets and intentionally excludes secrets from default serialization.

### Validation Results

[](#validation-results)

Use `ConfigValidationResult` and `ConfigValidationError` to return structured field-level validation feedback from providers or host applications.

### Provider Contract

[](#provider-contract)

Use `ProvidesConfigSchema` when a provider, service, plugin, or integration needs to expose its schema, validate config, return public config, and redact sensitive payloads.

### Optional Runtime Layer

[](#optional-runtime-layer)

Use the runtime classes when you want this package to also orchestrate schema storage, frontend payloads, named settings providers, handler targets, and profile/sandbox flows. The runtime is still framework-agnostic: applications provide storage, validation, encryption, and handler discovery through adapters.

Core Concepts
-------------

[](#core-concepts)

The package separates schema definitions from stored values:

- Schema classes describe what a UI should render.
- `ConfigBag` carries submitted or stored values.
- Validation result classes describe whether a config is usable.
- The JSON Schema file validates serialized nested schema payloads.

Fields can be marked as secret, sandbox-only, live-only, required, tab-bound, or controlled by option visibility rules.

Nested UI Schema Example
------------------------

[](#nested-ui-schema-example)

```
