@cyprnet/node-red-contrib-uibuilder-formgen 0.4.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/LICENSE +22 -0
- package/README.md +58 -0
- package/docs/user-guide.html +565 -0
- package/examples/formgen-builder/src/index.html +921 -0
- package/examples/formgen-builder/src/index.js +1338 -0
- package/examples/portalsmith-formgen-example.json +531 -0
- package/examples/schema-builder-integration.json +109 -0
- package/examples/schemas/Banking/banking_fraud_report.json +102 -0
- package/examples/schemas/Banking/banking_kyc_update.json +59 -0
- package/examples/schemas/Banking/banking_loan_application.json +113 -0
- package/examples/schemas/Banking/banking_new_account.json +98 -0
- package/examples/schemas/Banking/banking_wire_transfer_request.json +94 -0
- package/examples/schemas/HR/hr_employee_change_form.json +65 -0
- package/examples/schemas/HR/hr_exit_interview.json +105 -0
- package/examples/schemas/HR/hr_job_application.json +166 -0
- package/examples/schemas/HR/hr_onboarding_request.json +140 -0
- package/examples/schemas/HR/hr_time_off_request.json +95 -0
- package/examples/schemas/HR/hr_training_request.json +70 -0
- package/examples/schemas/Healthcare/health_appointment_request.json +103 -0
- package/examples/schemas/Healthcare/health_incident_report.json +82 -0
- package/examples/schemas/Healthcare/health_lab_order_request.json +72 -0
- package/examples/schemas/Healthcare/health_medication_refill.json +72 -0
- package/examples/schemas/Healthcare/health_patient_intake.json +113 -0
- package/examples/schemas/IT/it_access_request.json +145 -0
- package/examples/schemas/IT/it_dhcp_reservation.json +175 -0
- package/examples/schemas/IT/it_dns_domain_external.json +192 -0
- package/examples/schemas/IT/it_dns_domain_internal.json +171 -0
- package/examples/schemas/IT/it_network_change_request.json +126 -0
- package/examples/schemas/IT/it_network_request-form.json +299 -0
- package/examples/schemas/IT/it_new_hardware_request.json +155 -0
- package/examples/schemas/IT/it_password_reset.json +133 -0
- package/examples/schemas/IT/it_software_license_request.json +93 -0
- package/examples/schemas/IT/it_static_ip_request.json +199 -0
- package/examples/schemas/IT/it_subnet_request_form.json +216 -0
- package/examples/schemas/Maintenance/maint_checklist.json +176 -0
- package/examples/schemas/Maintenance/maint_facility_issue_report.json +127 -0
- package/examples/schemas/Maintenance/maint_incident_intake.json +174 -0
- package/examples/schemas/Maintenance/maint_inventory_restock.json +79 -0
- package/examples/schemas/Maintenance/maint_safety_audit.json +92 -0
- package/examples/schemas/Maintenance/maint_vehicle_inspection.json +112 -0
- package/examples/schemas/Maintenance/maint_work_order.json +134 -0
- package/index.js +12 -0
- package/lib/licensing.js +254 -0
- package/nodes/portalsmith-license.html +40 -0
- package/nodes/portalsmith-license.js +23 -0
- package/nodes/uibuilder-formgen.html +261 -0
- package/nodes/uibuilder-formgen.js +598 -0
- package/package.json +47 -0
- package/scripts/normalize_schema_titles.py +77 -0
- package/templates/index.html.mustache +541 -0
- package/templates/index.js.mustache +1135 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"formId": "ddi_dns_domain_external",
|
|
4
|
+
"title": "DDI - DNS Domain (External)",
|
|
5
|
+
"description": "Request creation or change of an external/public DNS zone and records (registrar + delegation + DNSSEC).",
|
|
6
|
+
"sections": [
|
|
7
|
+
{
|
|
8
|
+
"id": "req",
|
|
9
|
+
"title": "Request Details",
|
|
10
|
+
"fields": [
|
|
11
|
+
{
|
|
12
|
+
"id": "requestor_name",
|
|
13
|
+
"type": "text",
|
|
14
|
+
"label": "Requestor Name",
|
|
15
|
+
"required": true
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "requestor_email",
|
|
19
|
+
"type": "text",
|
|
20
|
+
"label": "Requestor Email",
|
|
21
|
+
"validate": "email",
|
|
22
|
+
"required": true
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "needed_by",
|
|
26
|
+
"type": "date",
|
|
27
|
+
"label": "Needed By",
|
|
28
|
+
"required": true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "ticket_id",
|
|
32
|
+
"type": "text",
|
|
33
|
+
"label": "Ticket / Change ID"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "domain",
|
|
39
|
+
"title": "Domain / Registrar",
|
|
40
|
+
"fields": [
|
|
41
|
+
{
|
|
42
|
+
"id": "domain_name",
|
|
43
|
+
"type": "text",
|
|
44
|
+
"label": "Domain Name",
|
|
45
|
+
"required": true,
|
|
46
|
+
"placeholder": "e.g., example.com"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "request_type",
|
|
50
|
+
"type": "select",
|
|
51
|
+
"label": "Request Type",
|
|
52
|
+
"required": true,
|
|
53
|
+
"options": [
|
|
54
|
+
"New Zone",
|
|
55
|
+
"Update Records",
|
|
56
|
+
"Delegation Change",
|
|
57
|
+
"Transfer Registrar",
|
|
58
|
+
"DNSSEC Change",
|
|
59
|
+
"Other"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "registrar",
|
|
64
|
+
"type": "text",
|
|
65
|
+
"label": "Registrar",
|
|
66
|
+
"placeholder": "e.g., MarkMonitor, GoDaddy, Route53 Registrar"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"id": "registrar_account",
|
|
70
|
+
"type": "text",
|
|
71
|
+
"label": "Registrar Account / Tenant"
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "external_dns_platform",
|
|
77
|
+
"title": "External DNS Platform / Location",
|
|
78
|
+
"description": "Where external DNS is hosted and the expected authoritative nameservers.",
|
|
79
|
+
"fields": [
|
|
80
|
+
{
|
|
81
|
+
"id": "dns_provider",
|
|
82
|
+
"type": "select",
|
|
83
|
+
"label": "DNS Provider",
|
|
84
|
+
"required": true,
|
|
85
|
+
"options": [
|
|
86
|
+
"Cloudflare",
|
|
87
|
+
"Route 53",
|
|
88
|
+
"Akamai",
|
|
89
|
+
"NS1",
|
|
90
|
+
"Infoblox (External)",
|
|
91
|
+
"Other"
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "provider_account",
|
|
96
|
+
"type": "text",
|
|
97
|
+
"label": "Provider Account / Zone ID (if known)"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "authoritative_ns",
|
|
101
|
+
"type": "textarea",
|
|
102
|
+
"label": "Authoritative Nameservers",
|
|
103
|
+
"help": "One per line, if already known."
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "geography_notes",
|
|
107
|
+
"type": "textarea",
|
|
108
|
+
"label": "Geo / Routing Notes",
|
|
109
|
+
"help": "Anycast, geo-steering, failover policies, etc."
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"id": "dnssec",
|
|
115
|
+
"title": "DNSSEC",
|
|
116
|
+
"fields": [
|
|
117
|
+
{
|
|
118
|
+
"id": "dnssec_required",
|
|
119
|
+
"type": "select",
|
|
120
|
+
"label": "Enable DNSSEC?",
|
|
121
|
+
"required": true,
|
|
122
|
+
"options": [
|
|
123
|
+
"Yes",
|
|
124
|
+
"No",
|
|
125
|
+
"Unknown"
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"id": "ds_publish_method",
|
|
130
|
+
"type": "select",
|
|
131
|
+
"label": "DS Publication Method",
|
|
132
|
+
"options": [
|
|
133
|
+
"Registrar DS Update",
|
|
134
|
+
"Provider Managed",
|
|
135
|
+
"N/A"
|
|
136
|
+
],
|
|
137
|
+
"showIf": {
|
|
138
|
+
"field": "dnssec_required",
|
|
139
|
+
"operator": "equals",
|
|
140
|
+
"value": "Yes"
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"id": "ksk_rollover_window",
|
|
145
|
+
"type": "textarea",
|
|
146
|
+
"label": "KSK Rollover / Maintenance Notes",
|
|
147
|
+
"showIf": {
|
|
148
|
+
"field": "dnssec_required",
|
|
149
|
+
"operator": "equals",
|
|
150
|
+
"value": "Yes"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": "records",
|
|
157
|
+
"title": "Requested DNS Records",
|
|
158
|
+
"fields": [
|
|
159
|
+
{
|
|
160
|
+
"id": "record_change_summary",
|
|
161
|
+
"type": "textarea",
|
|
162
|
+
"label": "Record Requirements",
|
|
163
|
+
"required": true,
|
|
164
|
+
"help": "List A/AAAA/CNAME/TXT/MX/SRV, TTLs, and any validation targets."
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "ttl_default",
|
|
168
|
+
"type": "number",
|
|
169
|
+
"label": "Default TTL (seconds)",
|
|
170
|
+
"min": 60,
|
|
171
|
+
"max": 86400,
|
|
172
|
+
"step": 60
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"id": "validation_notes",
|
|
176
|
+
"type": "textarea",
|
|
177
|
+
"label": "Validation / Ownership Proof",
|
|
178
|
+
"help": "e.g., ACME DNS-01 TXT, domain verification strings."
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"actions": [
|
|
184
|
+
{
|
|
185
|
+
"id": "copy_external_dns_summary",
|
|
186
|
+
"type": "copyBlock",
|
|
187
|
+
"label": "Copy External DNS Summary",
|
|
188
|
+
"template": "External DNS Domain Request\\nDomain: {{domain_name}}\\nType: {{request_type}}\\nProvider: {{dns_provider}}\\nDNSSEC: {{dnssec_required}}\\nRecords: {{record_change_summary}}\\nNeeded By: {{needed_by}}\\nTicket: {{ticket_id}}",
|
|
189
|
+
"successMessage": "Copied external DNS summary"
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"formId": "ddi_dns_domain_internal",
|
|
4
|
+
"title": "DDI - DNS Domain (Internal)",
|
|
5
|
+
"description": "Request an internal DNS zone or changes, including DNS view, forwarders, and resolver scope.",
|
|
6
|
+
"sections": [
|
|
7
|
+
{
|
|
8
|
+
"id": "req",
|
|
9
|
+
"title": "Request Details",
|
|
10
|
+
"fields": [
|
|
11
|
+
{
|
|
12
|
+
"id": "requestor_name",
|
|
13
|
+
"type": "text",
|
|
14
|
+
"label": "Requestor Name",
|
|
15
|
+
"required": true
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "requestor_email",
|
|
19
|
+
"type": "text",
|
|
20
|
+
"label": "Requestor Email",
|
|
21
|
+
"validate": "email",
|
|
22
|
+
"required": true
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "needed_by",
|
|
26
|
+
"type": "date",
|
|
27
|
+
"label": "Needed By",
|
|
28
|
+
"required": true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "ticket_id",
|
|
32
|
+
"type": "text",
|
|
33
|
+
"label": "Ticket / Change ID"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "zone",
|
|
39
|
+
"title": "Zone Details",
|
|
40
|
+
"fields": [
|
|
41
|
+
{
|
|
42
|
+
"id": "zone_name",
|
|
43
|
+
"type": "text",
|
|
44
|
+
"label": "Zone Name",
|
|
45
|
+
"required": true,
|
|
46
|
+
"placeholder": "e.g., corp.example.local"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "request_type",
|
|
50
|
+
"type": "select",
|
|
51
|
+
"label": "Request Type",
|
|
52
|
+
"required": true,
|
|
53
|
+
"options": [
|
|
54
|
+
"New Zone",
|
|
55
|
+
"Update Records",
|
|
56
|
+
"Delegation Change",
|
|
57
|
+
"Conditional Forward",
|
|
58
|
+
"Reverse Zone",
|
|
59
|
+
"Other"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "dns_view",
|
|
64
|
+
"type": "select",
|
|
65
|
+
"label": "DNS View / Split-Horizon",
|
|
66
|
+
"required": true,
|
|
67
|
+
"options": [
|
|
68
|
+
"Internal",
|
|
69
|
+
"Corp",
|
|
70
|
+
"Prod",
|
|
71
|
+
"Non-Prod",
|
|
72
|
+
"Guest",
|
|
73
|
+
"Custom"
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "dns_view_custom",
|
|
78
|
+
"type": "text",
|
|
79
|
+
"label": "Custom DNS View Name",
|
|
80
|
+
"showIf": {
|
|
81
|
+
"field": "dns_view",
|
|
82
|
+
"operator": "equals",
|
|
83
|
+
"value": "Custom"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "soa_contact",
|
|
88
|
+
"type": "text",
|
|
89
|
+
"label": "SOA Contact / Owner",
|
|
90
|
+
"placeholder": "e.g., noc.example.com"
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "location",
|
|
96
|
+
"title": "Resolver Scope / Location",
|
|
97
|
+
"fields": [
|
|
98
|
+
{
|
|
99
|
+
"id": "site_name",
|
|
100
|
+
"type": "text",
|
|
101
|
+
"label": "Site / Region Scope",
|
|
102
|
+
"required": true,
|
|
103
|
+
"placeholder": "e.g., All Sites, NYC only, EU only"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"id": "resolver_groups",
|
|
107
|
+
"type": "textarea",
|
|
108
|
+
"label": "Resolver Groups / DNS Servers",
|
|
109
|
+
"help": "Hostnames/IPs of resolvers or groups that should serve this zone."
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "forwarders",
|
|
113
|
+
"type": "textarea",
|
|
114
|
+
"label": "Forwarders (if applicable)",
|
|
115
|
+
"help": "One per line. Used for conditional forwarding."
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"id": "records",
|
|
121
|
+
"title": "Records / Policies",
|
|
122
|
+
"fields": [
|
|
123
|
+
{
|
|
124
|
+
"id": "record_change_summary",
|
|
125
|
+
"type": "textarea",
|
|
126
|
+
"label": "Record Requirements",
|
|
127
|
+
"required": true
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "ttl_default",
|
|
131
|
+
"type": "number",
|
|
132
|
+
"label": "Default TTL (seconds)",
|
|
133
|
+
"min": 60,
|
|
134
|
+
"max": 86400,
|
|
135
|
+
"step": 60
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "dynamic_updates",
|
|
139
|
+
"type": "select",
|
|
140
|
+
"label": "Allow Dynamic Updates?",
|
|
141
|
+
"required": true,
|
|
142
|
+
"options": [
|
|
143
|
+
"No",
|
|
144
|
+
"Yes (Restricted)",
|
|
145
|
+
"Yes (Unrestricted)",
|
|
146
|
+
"Unknown"
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"id": "update_restrictions",
|
|
151
|
+
"type": "textarea",
|
|
152
|
+
"label": "Dynamic Update Restrictions",
|
|
153
|
+
"showIf": {
|
|
154
|
+
"field": "dynamic_updates",
|
|
155
|
+
"operator": "neq",
|
|
156
|
+
"value": "No"
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
"actions": [
|
|
163
|
+
{
|
|
164
|
+
"id": "copy_internal_dns_summary",
|
|
165
|
+
"type": "copyBlock",
|
|
166
|
+
"label": "Copy Internal DNS Summary",
|
|
167
|
+
"template": "Internal DNS Domain Request\\nZone: {{zone_name}}\\nType: {{request_type}}\\nView: {{dns_view}} {{dns_view_custom}}\\nScope: {{site_name}}\\nResolvers: {{resolver_groups}}\\nRecords: {{record_change_summary}}\\nNeeded By: {{needed_by}}\\nTicket: {{ticket_id}}",
|
|
168
|
+
"successMessage": "Copied internal DNS summary"
|
|
169
|
+
}
|
|
170
|
+
]
|
|
171
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0",
|
|
3
|
+
"formId": "it_network_change_request",
|
|
4
|
+
"title": "IT - Network Change Request",
|
|
5
|
+
"description": "Request a network change (firewall rule, VLAN, DNS, routing).",
|
|
6
|
+
"sections": [
|
|
7
|
+
{
|
|
8
|
+
"id": "request",
|
|
9
|
+
"title": "Request",
|
|
10
|
+
"fields": [
|
|
11
|
+
{
|
|
12
|
+
"id": "requestor",
|
|
13
|
+
"type": "text",
|
|
14
|
+
"label": "Requester",
|
|
15
|
+
"required": true
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "email",
|
|
19
|
+
"type": "text",
|
|
20
|
+
"label": "Email",
|
|
21
|
+
"required": true,
|
|
22
|
+
"validate": "email"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"id": "change_window",
|
|
26
|
+
"type": "date",
|
|
27
|
+
"label": "Change Date",
|
|
28
|
+
"required": true
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"id": "ticket",
|
|
32
|
+
"type": "text",
|
|
33
|
+
"label": "Ticket/Change ID"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "change",
|
|
39
|
+
"title": "Change Details",
|
|
40
|
+
"fields": [
|
|
41
|
+
{
|
|
42
|
+
"id": "change_type",
|
|
43
|
+
"type": "select",
|
|
44
|
+
"label": "Change Type",
|
|
45
|
+
"required": true,
|
|
46
|
+
"options": [
|
|
47
|
+
{
|
|
48
|
+
"value": "",
|
|
49
|
+
"text": "Select..."
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"value": "firewall",
|
|
53
|
+
"text": "Firewall rule"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"value": "vlan",
|
|
57
|
+
"text": "VLAN change"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"value": "dns",
|
|
61
|
+
"text": "DNS update"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"value": "routing",
|
|
65
|
+
"text": "Routing change"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "risk",
|
|
71
|
+
"type": "radio",
|
|
72
|
+
"label": "Risk Level",
|
|
73
|
+
"required": true,
|
|
74
|
+
"options": [
|
|
75
|
+
{
|
|
76
|
+
"value": "low",
|
|
77
|
+
"text": "Low"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"value": "medium",
|
|
81
|
+
"text": "Medium"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"value": "high",
|
|
85
|
+
"text": "High"
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "firewall_rules",
|
|
91
|
+
"type": "keyvalue",
|
|
92
|
+
"label": "Firewall Rules (delimiter)",
|
|
93
|
+
"help": "One per line, e.g., src=10.0.0.0/24 dst=10.1.0.5 port=443",
|
|
94
|
+
"keyvalueMode": "delimiter",
|
|
95
|
+
"keyvalueDelimiter": "=",
|
|
96
|
+
"showIf": {
|
|
97
|
+
"field": "change_type",
|
|
98
|
+
"operator": "equals",
|
|
99
|
+
"value": "firewall"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "vlan_lines",
|
|
104
|
+
"type": "keyvalue",
|
|
105
|
+
"label": "VLAN Entries (delimiter)",
|
|
106
|
+
"help": "One per line, e.g., vlan_id=101",
|
|
107
|
+
"keyvalueMode": "delimiter",
|
|
108
|
+
"keyvalueDelimiter": "=",
|
|
109
|
+
"showIf": {
|
|
110
|
+
"field": "change_type",
|
|
111
|
+
"operator": "equals",
|
|
112
|
+
"value": "vlan"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"id": "details",
|
|
117
|
+
"type": "textarea",
|
|
118
|
+
"label": "Details",
|
|
119
|
+
"rows": 5,
|
|
120
|
+
"required": true
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"actions": []
|
|
126
|
+
}
|