System Configuration

A single list of typed key/value settings that steer specific pieces of portal behaviour — from AIR's GST home state to the on/off switches for the daily background schedulers.

Built — viewing and editing are both live in the console today.
Permissions

Opening this list requires admin.view_system_config (or the super-admin role). The console does not check a separate permission before letting you save an edit — the same admin.view_system_config gate covers both the list and the edit screen. A distinct admin.edit_system_config permission is seeded for future use but is not yet wired to any check in this resource.

What this screen is

System Configuration is not a business record you create — it is a fixed catalogue of settings that ships with the code. Each row is one key (for example reservation.enabled) holding a current value. You cannot add a new key or delete an existing one from the console; keys are defined and seeded by developers. What you can do is open a key and, if it is marked editable, change its value.

Screenshot placeholderThe System Configuration list — columns Key, Group, Value, Editable, Updated at; no search box, filter panel or bulk actions above the table.

The list

Nav: Administration → System Configuration.

ColumnShows
keyThe setting's unique identifier, e.g. gst.home_state_code. Searchable and sortable.
groupA category label the setting belongs to, shown as a plain badge. Sortable.
valueThe current value, truncated to 40 characters in the list — open the record to see it in full.
is_editableA tick/cross icon. Ticked keys can have their value changed from this console; crossed keys are locked — even an administrator cannot change them here.
updated_atWhen the value last changed. Hidden by default — switch it on from the column toggle.

There are no filters on this list — with typically only a handful of keys in the whole system, the plain sortable/searchable table is enough to find what you need.

Editing a value

  1. Open the key

    Select Edit on the row. The edit screen shows key, group, type and description — all disabled. They are read-only reference information, not fields you change.

  2. Change the value, if you are allowed to

    The value field is a text box. It is only enabled when the row's is_editable flag is on; otherwise it appears disabled and the console will refuse the save regardless.

  3. Save

    Your input is validated and cast to the setting's underlying type before it is stored, and the cached copy of that key is cleared immediately — the new value takes effect straight away, with no restart or wait.

Screenshot placeholderThe edit form for one key — key/group/type/description shown disabled at the top, the value field below (enabled or greyed out depending on is_editable), Save button at the bottom.
Why the value is validated and cast, not just saved as text

Each key has a fixed underlying type. Saving does not simply store whatever text you type — it is parsed and converted to that type (for example, a JSON-typed value is JSON-encoded unless it is already a plain string) before it is written, so a mistyped value is rejected with an error instead of silently breaking whatever else in the portal reads that key.

Currently seeded keys

These are the settings shipped with the system today:

KeyWhat it controls
gst.home_state_codeAIR's home GST state code. Billing compares an order's delivery state against this to decide whether GST is split as intra-state (CGST + SGST) or inter-state (IGST).
placeholder.region_idA stand-in region ID, used internally wherever a process still needs a region reference that isn't otherwise resolvable — a stop-gap value, not a setting you would normally touch.
placeholder.pincode_idThe same placeholder pattern as above, for pincode references.
reservation.enabledThe kill-switch for the daily auto-reservation scheduler. Turn it off to pause automatic stock reservation across the whole portal.
wave.enabledThe kill-switch for the daily auto-wave-creation scheduler. Turn it off to stop new picking waves being created automatically.
Kill-switches, not day-to-day settings

reservation.enabled and wave.enabled are emergency/maintenance switches for two background jobs, not values you change routinely. See Background Schedulers for exactly what each job does, when it runs, and what happens while its switch is off.