Portal Community

Artefact 1 — SQL Data File

The primary output. Contains a guarded INSERT into dbo.Atlas_Forms with the full form schema as JSON:

-- Generated file: Atlas_Forms_13008_GuardRail_IpAllowlist_Edit.data.sql

SET IDENTITY_INSERT [dbo].[Atlas_Forms] ON;

IF NOT EXISTS (SELECT 1 FROM [dbo].[Atlas_Forms] WHERE [FormID] = 13008)
BEGIN
    INSERT INTO [dbo].[Atlas_Forms]
        ([FormID], [FormCode], [FormCategoryID], [FormTypeID],
         [PrimaryUsage], [NodeUsage], [TenantID], [IsActive], [SchemaJson])
    VALUES
    (
        13008,
        'GuardRail_IpAllowlist_Edit',
        130,
        2,
        'guardrails',
        'guardrail-ip-allowlist',
        NULL,
        1,
        N'{
          "metadata": {
            "formId": 13008,
            "title": "Edit IP Allowlist Rule"
          },
          "sections": [
            { "id": "details",  "title": "IP Allowlist Details",  "order": 1 },
            { "id": "settings", "title": "IP Allowlist Settings", "order": 2, "collapsible": true }
          ],
          "controls": [
            {
              "id": "ruleName", "type": "text", "sectionId": "details", "order": 1,
              "label": "Rule Name",
              "binding": { "source": "$json", "path": "ruleName" },
              "validation": { "required": true, "maxLength": 100 }
            },
            {
              "id": "ipRange", "type": "text", "sectionId": "details", "order": 2,
              "label": "IP Range",
              "placeholder": "e.g. 192.168.1.0/24",
              "binding": { "source": "$json", "path": "ipRange" },
              "validation": { "required": true, "pattern": "^([0-9]{1,3}\\.){3}[0-9]{1,3}\\/[0-9]{1,2}$",
                              "patternMessage": "Must be valid CIDR notation" }
            },
            {
              "id": "action", "type": "select", "sectionId": "settings", "order": 1,
              "label": "Action",
              "options": [
                { "value": "Allow", "label": "Allow" },
                { "value": "Block", "label": "Block" }
              ],
              "binding": { "source": "$json", "path": "action" },
              "validation": { "required": true }
            },
            {
              "id": "expiryDate", "type": "date-picker", "sectionId": "settings", "order": 2,
              "label": "Expiry Date",
              "binding": { "source": "$json", "path": "expiryDate" }
            },
            {
              "id": "notes", "type": "textarea", "sectionId": "settings", "order": 3,
              "label": "Notes",
              "binding": { "source": "$json", "path": "notes" }
            }
          ],
          "actions": [
            { "id": "save",   "label": "Save",   "type": "submit",   "config": { "endpoint": "/api/guardrails/ip-allowlist/save", "method": "POST" } },
            { "id": "cancel", "label": "Cancel", "type": "navigate", "config": { "target": "GuardRail_List" } }
          ]
        }'
    );
END

SET IDENTITY_INSERT [dbo].[Atlas_Forms] OFF;

Artefact 2 — readme.txt

-- Generated file: Atlas_Forms_13008_readme.txt

FORM: GuardRail_IpAllowlist_Edit (FormID 13008)
GENERATED: 2026-05-25
GROUP: GuardRails (FormCategoryID 130)
PURPOSE: Property form for editing IP allowlist rules in GuardRail policies.

SCREENSHOTS REQUIRED:
Place the following screenshot files alongside this readme before adding to the deploy script:
  - GuardRail_IpAllowlist_Edit_Overview.png   (full form, edit mode)
  - GuardRail_IpAllowlist_Edit_Validation.png (form with validation errors shown)

DEPLOYMENT:
Add to Deploy_GuardRails_Forms.sql:
  :r .\Atlas_Forms_13008_GuardRail_IpAllowlist_Edit.data.sql

REVIEW CHECKLIST:
  [ ] FormID 13008 is unique in the database
  [ ] Binding paths match the API response schema
  [ ] CIDR regex pattern verified against test data
  [ ] Actions endpoint URLs confirmed with backend team
  [ ] Screenshots placed and Deploy script updated

Where the Files Go

BizFirstFiV3DB/dbo/Data/AtlasForms/GuardRails/
  ...existing files...
  Atlas_Forms_13008_GuardRail_IpAllowlist_Edit.data.sql   ← new
  Atlas_Forms_13008_readme.txt                             ← new
Add the New File to the Deploy Script The AI generator creates the SQL file but does not modify Deploy_GuardRails_Forms.sql. You must add the :r reference manually. The readme.txt reminds you of this with the exact line to add.