ccs-digitalmarketplace-frameworks 4.2.2 → 4.3.0

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/frameworks/g-cloud-15/assessment/declaration/extra.schema.json +14 -0
  3. package/frameworks/g-cloud-15/manifests/agreement.yml +10 -0
  4. package/frameworks/g-cloud-15/manifests/declaration.yml +6 -0
  5. package/frameworks/g-cloud-15/manifests/display_service.yml +1 -0
  6. package/frameworks/g-cloud-15/manifests/download_results.yml +4 -0
  7. package/frameworks/g-cloud-15/manifests/edit_service.yml +18 -0
  8. package/frameworks/g-cloud-15/manifests/edit_service_as_admin.yml +11 -0
  9. package/frameworks/g-cloud-15/manifests/edit_submission.yml +17 -0
  10. package/frameworks/g-cloud-15/manifests/services_search_filters.yml +1 -0
  11. package/frameworks/g-cloud-15/messages/advice.yml +18 -0
  12. package/frameworks/g-cloud-15/messages/become-a-supplier.yml +39 -0
  13. package/frameworks/g-cloud-15/messages/descriptions.yml +2 -0
  14. package/frameworks/g-cloud-15/messages/e-signature.yml +1 -0
  15. package/frameworks/g-cloud-15/messages/homepage-sidebar.yml +16 -0
  16. package/frameworks/g-cloud-15/messages/urls.yml +5 -0
  17. package/frameworks/g-cloud-15/metadata/copy_services.yml +231 -0
  18. package/frameworks/g-cloud-15/metadata/following_framework.yml +4 -0
  19. package/frameworks/g-cloud-15/metadata/service_questions_to_scan_for_bad_words.yml +3 -0
  20. package/frameworks/g-cloud-15/questions/agreements/legalText.yml +143 -0
  21. package/frameworks/g-cloud-15/questions/agreements/signerName.yml +16 -0
  22. package/frameworks/g-cloud-15/questions/agreements/signerRole.yml +16 -0
  23. package/frameworks/g-cloud-15/questions/agreements/signerTermsAndConditions.yml +16 -0
  24. package/frameworks/g-cloud-15/questions/declaration/immediateParentCompany.yml +12 -0
  25. package/frameworks/g-cloud-15/questions/declaration/immediateParentCompanyDetailsAddressBuilding.yml +11 -0
  26. package/frameworks/g-cloud-15/questions/declaration/immediateParentCompanyDetailsAddressCountry.yml +11 -0
  27. package/frameworks/g-cloud-15/questions/declaration/immediateParentCompanyDetailsAddressPostcode.yml +14 -0
  28. package/frameworks/g-cloud-15/questions/declaration/immediateParentCompanyDetailsAddressTown.yml +11 -0
  29. package/frameworks/g-cloud-15/questions/declaration/immediateParentCompanyDetailsDUNSNumber.yml +12 -0
  30. package/frameworks/g-cloud-15/questions/declaration/immediateParentCompanyDetailsName.yml +7 -0
  31. package/frameworks/g-cloud-15/questions/declaration/immediateParentCompanyDetailsRegistrationNumber.yml +4 -0
  32. package/frameworks/g-cloud-15/questions/declaration/immediateParentCompanyDetailsVATNumber.yml +4 -0
  33. package/frameworks/g-cloud-15/questions/declaration/multiqImmediateParentCompany.yml +7 -0
  34. package/frameworks/g-cloud-15/questions/declaration/multiqImmediateParentCompanyDetails.yml +11 -0
  35. package/frameworks/g-cloud-15/questions/declaration/multiqImmediateParentCompanyDetailsAddress.yml +9 -0
  36. package/frameworks/g-cloud-15/questions/services/id.yml +2 -0
  37. package/frameworks/g-cloud-15/questions/services/lot.yml +14 -0
  38. package/frameworks/g-cloud-15/questions/services/lotName.yml +2 -0
  39. package/frameworks/g-cloud-15/questions/services/serviceDescription.yml +22 -0
  40. package/frameworks/g-cloud-15/questions/services/serviceName.yml +21 -0
  41. package/frameworks/g-cloud-15/search_mappings/services.json +268 -0
  42. package/package.json +1 -1
  43. package/script_helpers/clone_helpers.py +9 -6
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Records breaking changes from major version bumps
4
4
 
5
+ ## 4.3.0
6
+
7
+ Add the G-Cloud 15 framework
8
+
5
9
  ## 4.0.0
6
10
 
7
11
  Add the FVRA questions section
@@ -0,0 +1,14 @@
1
+ {
2
+ "definitions": {
3
+ "baseline": {
4
+ "allOf": [
5
+ {
6
+ "anyOf": [
7
+ {"properties": {"servicesHaveOrSupportCloudHostingCloudSoftware": {"enum": ["Yes"]}}},
8
+ {"properties": {"servicesHaveOrSupportCloudSupport": {"enum": ["Yes"]}}}
9
+ ]
10
+ }
11
+ ]
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,10 @@
1
+ - name: Legal text
2
+ questions:
3
+ - legalText
4
+
5
+
6
+ - name: Framework agreement
7
+ questions:
8
+ - signerName
9
+ - signerRole
10
+ - signerTermsAndConditions
@@ -0,0 +1,6 @@
1
+ - name: Immediate parent company
2
+ slug: immediate-parent-company
3
+ editable: True
4
+ prefill: False
5
+ questions:
6
+ - multiqImmediateParentCompany
@@ -0,0 +1,4 @@
1
+ - name: Service data for results download
2
+ questions:
3
+ - serviceName
4
+ - serviceDescription
@@ -0,0 +1,18 @@
1
+ -
2
+ name: Service attributes
3
+ editable: False
4
+ questions:
5
+ - id
6
+ - lotName
7
+
8
+ -
9
+ name: Service name
10
+ editable: True
11
+ questions:
12
+ - serviceName
13
+
14
+ -
15
+ name: About your service
16
+ editable: True
17
+ questions:
18
+ - serviceDescription
@@ -0,0 +1,11 @@
1
+ - name: Service attributes
2
+ editable: False
3
+ questions:
4
+ - id
5
+ - lotName
6
+
7
+ - name: About your service
8
+ editable: True
9
+ questions:
10
+ - serviceName
11
+ - serviceDescription
@@ -0,0 +1,17 @@
1
+ - name: Service attributes
2
+ editable: False
3
+ edit_questions: False
4
+ questions:
5
+ - lotName
6
+
7
+ - name: Service name
8
+ editable: False
9
+ edit_questions: True
10
+ questions:
11
+ - serviceName
12
+
13
+ - name: About your service
14
+ editable: False
15
+ edit_questions: True
16
+ questions:
17
+ - serviceDescription
@@ -0,0 +1,18 @@
1
+ use_of_service_data: >
2
+ The service information you provide here:
3
+
4
+ - will be public
5
+ - may be used as filters
6
+ - will appear on your service description page
7
+ - should help buyers review and compare services
8
+
9
+ lots:
10
+ - slug: cloud-hosting
11
+ body: Platform or infrastructure services for running software, networking, or processing and storing data.
12
+ advice: eg content delivery networks or load balancing services
13
+ - slug: cloud-software
14
+ body: Applications that are accessed over the internet and hosted in the cloud.
15
+ advice: eg accounting tools or customer service management software
16
+ - slug: cloud-support
17
+ body: Services to help you set up and maintain your cloud software or hosting services.
18
+ advice: eg migration services or ongoing support
@@ -0,0 +1,39 @@
1
+ coming: |
2
+ ### G-Cloud
3
+
4
+ G-Cloud is opening for applications.
5
+
6
+ You will be able to apply to sell:
7
+
8
+ - cloud hosting
9
+ - cloud software
10
+ - cloud support
11
+
12
+ open: |
13
+ ### G-Cloud
14
+
15
+ G-Cloud is open for applications.
16
+
17
+ You can apply to sell:
18
+
19
+ - cloud hosting
20
+ - cloud software
21
+ - cloud support
22
+
23
+
24
+ pending: &can_not_apply |
25
+ ### G-Cloud
26
+
27
+ G-Cloud is closed for applications. You can create an account when it is open.
28
+
29
+ You will be able to apply to sell:
30
+
31
+ - cloud hosting
32
+ - cloud software
33
+ - cloud support
34
+
35
+ standstill: *can_not_apply
36
+
37
+ live: *can_not_apply
38
+
39
+ expired: *can_not_apply
@@ -0,0 +1,2 @@
1
+ framework: cloud hosting, software and support
2
+ framework_short: cloud services
@@ -0,0 +1 @@
1
+ framework_contract_title: Framework Agreement
@@ -0,0 +1,16 @@
1
+ coming:
2
+ heading: 'G-Cloud 15 will open on 19 February 2525 by 11am GMT.'
3
+ messages:
4
+ - 'Provide cloud hosting, software and support.'
5
+ - 'You’ll need to create a supplier account to apply.'
6
+
7
+ open:
8
+ heading: 'G-Cloud 15 is open for applications'
9
+ messages:
10
+ - 'You need an account to apply.'
11
+ - 'The application deadline is 3pm BST, Tuesday 7 May 2525.'
12
+
13
+ pending:
14
+ heading: 'G-Cloud 15 is closed for applications'
15
+ messages:
16
+ - 'Applications are being reviewed.'
@@ -0,0 +1,5 @@
1
+ call_off_contract_url: https://www.gov.uk/government/publications/g-cloud-15-call-off-contract/__placeholder__/__placeholder__/__placeholder__
2
+ customer_benefits_record_form_url: https://docs.google.com/forms/d/e/1FAIpQLSfQ3VeAMCIYNur4FoZxzn1F5BDkOTxFNK-4qbTlHVcyGqTgpw/viewform/__placeholder__/__placeholder__/__placeholder__
3
+ framework_agreement_pdf_url: https://www.contractsfinder.service.gov.uk/Notice/9637a011-f05e-4fce-a4b9-e5fd98321150/__placeholder__
4
+ framework_agreement_url: https://www.contractsfinder.service.gov.uk/Notice/Attachment/43c68a54-735a-48fa-ad47-32461ed5e5a7/__placeholder__
5
+ supplier_guide_url: https://www.contractsfinder.service.gov.uk/Notice/9637a011-f05e-4fce-a4b9-e5fd98321150/__placeholder__
@@ -0,0 +1,231 @@
1
+ questions_to_exclude:
2
+ - APIAutomationTools
3
+ - APIAutomationToolsOther
4
+ - APIDocumentation
5
+ - APIDocumentationFormats
6
+ - APIHosting
7
+ - APISandbox
8
+ - APISoftware
9
+ - APIUsage
10
+ - QAAndTesting
11
+ - QAAndTestingDescription
12
+ - accessRestrictionManagementAndSupport
13
+ - accessRestrictionTesting
14
+ - accreditationsOther
15
+ - accreditationsOtherList
16
+ - approachToResilience
17
+ - auditBuyersActions
18
+ - auditBuyersActionsStorage
19
+ - auditSuppliersActions
20
+ - auditSuppliersActionsStorage
21
+ - backup
22
+ - backupControls
23
+ - backupDatacentre
24
+ - backupRecovery
25
+ - backupScheduling
26
+ - backupWhatData
27
+ - boardLevelServiceSecurity
28
+ - browsersAccess
29
+ - browsersSupported
30
+ - cloudDeploymentModel
31
+ - commandLineInterface
32
+ - commandLineOS
33
+ - commandLineUsage
34
+ - configurationAndChangeManagementProcesses
35
+ - configurationAndChangeManagementType
36
+ - covid19Recovery
37
+ - customisationAvailable
38
+ - customisationDescription
39
+ - dataExportFormats
40
+ - dataExportFormatsOther
41
+ - dataExportHow
42
+ - dataImportFormats
43
+ - dataImportFormatsOther
44
+ - dataProtectionBetweenNetworks
45
+ - dataProtectionBetweenNetworksOther
46
+ - dataProtectionWithinNetwork
47
+ - dataProtectionWithinNetworkOther
48
+ - dataSanitisation
49
+ - dataSanitisationType
50
+ - dataSanitisationTypeHosting
51
+ - dataSanitisationTypeSoftware
52
+ - dataStorageAndProcessing
53
+ - dataStorageAndProcessingLocations
54
+ - dataStorageAndProcessingUserControl
55
+ - datacentreSecurityStandards
56
+ - devicesUsersManageTheServiceThrough
57
+ - documentation
58
+ - documentationAccessibility
59
+ - documentationAccessibilityDescription
60
+ - documentationFormats
61
+ - documentationFormatsOther
62
+ - educationPricing
63
+ - emailOrTicketingSupport
64
+ - emailOrTicketingSupportAccessibility
65
+ - emailOrTicketingSupportPriority
66
+ - emailOrTicketingSupportResponseTimes
67
+ - endOfContractDataExtraction
68
+ - endOfContractProcess
69
+ - energyEfficientDatacentres
70
+ - energyEfficientDatacentresDescription
71
+ - equalOpportunity
72
+ - equipmentDisposalApproach
73
+ - fightingClimateChange
74
+ - freeVersionDescription
75
+ - freeVersionLink
76
+ - freeVersionTrialOption
77
+ - gettingStarted
78
+ - governmentSecurityClearances
79
+ - governmentSecurityClearancesFilter
80
+ - guaranteedAvailability
81
+ - howLongSystemLogsStored
82
+ - incidentManagementApproach
83
+ - incidentManagementType
84
+ - independenceOfResources
85
+ - informationSecurityPoliciesAndProcesses
86
+ - installation
87
+ - installationCompatibleOperatingSystems
88
+ - managementAccessAuthentication
89
+ - managementAccessAuthenticationDescription
90
+ - metrics
91
+ - metricsDescription
92
+ - metricsHosting
93
+ - metricsHostingHow
94
+ - metricsHostingWhat
95
+ - metricsHostingWhatOther
96
+ - metricsHow
97
+ - metricsSoftware
98
+ - metricsSoftwareDescription
99
+ - metricsSoftwareHow
100
+ - metricsWhat
101
+ - metricsWhatOther
102
+ - mobile
103
+ - mobileDifferences
104
+ - ongoingSupport
105
+ - ongoingSupportDescription
106
+ - ongoingSupportServices
107
+ - onsiteSupport
108
+ - outageReporting
109
+ - penetrationTesting
110
+ - penetrationTestingApproach
111
+ - phoneSupport
112
+ - phoneSupportAvailability
113
+ - planningService
114
+ - planningServiceCompatibility
115
+ - planningServiceCompatibilityList
116
+ - planningServiceDescription
117
+ - price
118
+ - priceInterval
119
+ - priceMax
120
+ - priceMin
121
+ - priceUnit
122
+ - pricingDocumentURL
123
+ - protectionOfDataAtRest
124
+ - protectionOfDataAtRestOther
125
+ - protectiveMonitoringApproach
126
+ - protectiveMonitoringType
127
+ - publicSectorNetworks
128
+ - publicSectorNetworksOther
129
+ - publicSectorNetworksTypes
130
+ - resellingOrganisations
131
+ - resellingType
132
+ - scaling
133
+ - scalingType
134
+ - secureDevelopment
135
+ - securityGovernanceAccreditation
136
+ - securityGovernanceApproach
137
+ - securityGovernanceStandards
138
+ - securityGovernanceStandardsOther
139
+ - securityTesting
140
+ - securityTestingAccreditations
141
+ - securityTestingAccreditationsOther
142
+ - securityTestingAccredited
143
+ - securityTestingCCP
144
+ - securityTestingWhat
145
+ - securityTestingWhatOther
146
+ - serviceAddOnDetails
147
+ - serviceAddOnType
148
+ - serviceBenefits
149
+ - serviceBenefitsHostingAndSoftware
150
+ - serviceBenefitsSupport
151
+ - serviceCategories
152
+ - serviceCategoriesHosting
153
+ - serviceCategoriesSoftware
154
+ - serviceCategoriesSupport
155
+ - serviceConstraints
156
+ - serviceConstraintsHostingAndSoftware
157
+ - serviceConstraintsSupport
158
+ - serviceDefinitionDocumentURL
159
+ - serviceFeatures
160
+ - serviceFeaturesHostingAndSoftware
161
+ - serviceFeaturesSupport
162
+ - serviceInterface
163
+ - serviceInterfaceAccessibility
164
+ - serviceInterfaceAccessibility2
165
+ - serviceInterfaceAccessibilityDescription
166
+ - serviceInterfaceDescription
167
+ - serviceInterfaceTesting
168
+ - setupAndMigrationService
169
+ - setupAndMigrationServiceDescription
170
+ - setupAndMigrationServiceSpecific
171
+ - setupAndMigrationServiceSpecificList
172
+ - sfiaRateDocumentURL
173
+ - socialValue
174
+ - staffSecurityClearanceChecks
175
+ - standardsCSASTAR
176
+ - standardsCSASTARExclusions
177
+ - standardsCSASTARLevel
178
+ - standardsCSASTARWhen
179
+ - standardsCyberEssentials
180
+ - standardsCyberEssentialsPlus
181
+ - standardsISO28000
182
+ - standardsISO28000Exclusions
183
+ - standardsISO28000When
184
+ - standardsISO28000Who
185
+ - standardsISOIEC27001
186
+ - standardsISOIEC27001Exclusions
187
+ - standardsISOIEC27001When
188
+ - standardsISOIEC27001Who
189
+ - standardsPCI
190
+ - standardsPCIExclusions
191
+ - standardsPCIWhen
192
+ - standardsPCIWho
193
+ - supportAvailableToThirdParty
194
+ - supportLevels
195
+ - supportMultiCloud
196
+ - systemRequirements
197
+ - tacklingEconomicInequality
198
+ - termsAndConditionsDocumentURL
199
+ - training
200
+ - trainingDescription
201
+ - trainingServiceSpecific
202
+ - trainingServiceSpecificList
203
+ - usageNotifications
204
+ - usageNotificationsHow
205
+ - usageNotificationsHowOther
206
+ - userAuthentication
207
+ - userAuthenticationDescription
208
+ - userAuthenticationHosting
209
+ - userAuthenticationNeeded
210
+ - userAuthenticationSoftware
211
+ - userSupportAccessibility
212
+ - virtualisation
213
+ - virtualisationImplementedBy
214
+ - virtualisationSeparation
215
+ - virtualisationTechnologiesUsed
216
+ - virtualisationTechnologiesUsedOther
217
+ - virtualisationThirdPartyProvider
218
+ - vulnerabilityManagementApproach
219
+ - vulnerabilityManagementType
220
+ - webChatSupport
221
+ - webChatSupportAccessibility
222
+ - webChatSupportAccessibilityDescription
223
+ - webChatSupportAccessibilityTesting
224
+ - webChatSupportAvailability
225
+ - webInterface
226
+ - webInterfaceAccessibility
227
+ - webInterfaceAccessibilityDescription
228
+ - webInterfaceAccessibilityTesting
229
+ - webInterfaceUsage
230
+ - wellbeing
231
+ source_framework: g-cloud-14
@@ -0,0 +1,4 @@
1
+ framework:
2
+ coming: '2026'
3
+ name: G-Cloud 16
4
+ slug: g-cloud-16
@@ -0,0 +1,3 @@
1
+ service_questions:
2
+ - serviceDescription
3
+ - serviceName
@@ -0,0 +1,143 @@
1
+ type: text
2
+ optional: true
3
+ question: |
4
+ <h2 class="govuk-heading-m">
5
+ 1. The Appointment
6
+ </h2>
7
+ <p>
8
+ This section includes terms about the Supplier appointment.
9
+ </p>
10
+
11
+ <p>
12
+ 1.1 <strong>Appointment</strong>
13
+ <p>
14
+ <p>
15
+ Under the terms of this Framework Agreement (RM1557.14) and the Supplier’s Application, the Minister for the Cabinet Office, represented by the Crown Commercial Service (CCS), 9th Floor, The Capital, Old Hall Street, Liverpool, L3 9PP, appoints:
16
+ </p>
17
+
18
+ <p>
19
+ <strong>Company:</strong>
20
+ [[registered_name]]
21
+ </p>
22
+
23
+ <p>
24
+ <strong>Registered address:</strong>
25
+ [[registered_address]]
26
+ </p>
27
+
28
+ <p>
29
+ <strong>Company number:</strong>
30
+ [[registration_number]]
31
+ </p>
32
+
33
+ <p>
34
+ (the ‘Supplier’), as a Framework Agreement Supplier of G-Cloud Services who can be considered for Call-Off Contracts as outlined in the Contract Notice in the Find a Tender Service reference (2024/S 000-005327).
35
+ </p>
36
+
37
+ <p>
38
+ <span>
39
+ 1.2
40
+ </span>
41
+ <span>
42
+ <strong>Appointment is to:</strong>
43
+ [[completed_lots]]
44
+ </span>
45
+ </p>
46
+
47
+ <p>
48
+ <span>
49
+ 1.3
50
+ </span>
51
+ <span>
52
+ <strong>Appointment starts at:</strong>
53
+ 29 October 2024
54
+ </span>
55
+ </p>
56
+
57
+ <p>
58
+ <span>
59
+ 1.4
60
+ </span>
61
+ <span>
62
+ <strong>Appointment ends at:</strong>
63
+ 28 April 2026
64
+ </span>
65
+ </p>
66
+
67
+ <p>
68
+ <span>
69
+ 1.5
70
+ </span>
71
+ <span>
72
+ <strong>Framework Agreement extension:</strong>
73
+ N/A
74
+ </span>
75
+ </p>
76
+
77
+ <p>
78
+ <span>
79
+ 1.6
80
+ </span>
81
+ <span>
82
+ <strong>Framework Agreement term:</strong>
83
+ From and including the date at 1.3 above (Appointment starts at) to and including the date at 1.4 above (Appointment ends at).
84
+ </span>
85
+ </p>
86
+
87
+ <p>
88
+ <span>
89
+ 1.7
90
+ </span>
91
+ <span>
92
+ <strong>Call-Off Contract length:</strong>
93
+ Up to 36 months plus an optional extension period of up to 12 months.
94
+ </span>
95
+ </p>
96
+
97
+ <p>
98
+ <span>
99
+ 1.8
100
+ </span>
101
+ <span>
102
+ The Parties agree that they have read this Framework Agreement and by signing below agree to be bound by its terms.
103
+ </span>
104
+ </p>
105
+
106
+ <p>
107
+ <span>
108
+ 1.9
109
+ </span>
110
+ <span>
111
+ All sections, including the Invitation to Tender and Schedules to this Framework Agreement are expressly part of this Framework Agreement.
112
+ </span>
113
+ </p>
114
+
115
+ <p>
116
+ <span>
117
+ 1.10
118
+ </span>
119
+ <span>
120
+ CCS will pay £1 to the Supplier to perform its obligations under this Framework Agreement, receipt of which is acknowledged by the Supplier signing this Framework Agreement.
121
+ </span>
122
+ </p>
123
+
124
+ <p>
125
+ <span>
126
+ 1.11
127
+ </span>
128
+ <span>
129
+ The finalised Framework Agreement includes an electronically signed Framework Agreement. It is electronically signed by the Supplier when they make the legal declaration confirming their agreement to the G-Cloud 15 Framework Agreement, and countersigned by Crown Commercial Service.
130
+ </span>
131
+ </p>
132
+
133
+ <p class="govuk-body">
134
+ <a href="[[framework_govuk_url]]">
135
+ Read the [[framework_name]] contract terms and conditions
136
+ </a>
137
+ </p>
138
+
139
+ depends:
140
+ - "on": agreementVersion
141
+ being:
142
+ - standard
143
+ - guarantor
@@ -0,0 +1,16 @@
1
+ question: Your full name
2
+ type: text
3
+
4
+ depends:
5
+ - "on": agreementVersion
6
+ being:
7
+ - standard
8
+ - guarantor
9
+
10
+ max_length_in_characters: 256
11
+
12
+ validations:
13
+ - name: answer_required
14
+ message: Enter your full name.
15
+ - name: under_character_limit
16
+ message: Name must be under 256 characters.
@@ -0,0 +1,16 @@
1
+ question: Your role in the company
2
+ type: text
3
+
4
+ depends:
5
+ - "on": agreementVersion
6
+ being:
7
+ - standard
8
+ - guarantor
9
+
10
+ max_length_in_characters: 256
11
+
12
+ validations:
13
+ - name: answer_required
14
+ message: Enter your role in the company.
15
+ - name: under_character_limit
16
+ message: Name must be under 256 characters.
@@ -0,0 +1,16 @@
1
+ question: <span class="govuk-visually-hidden">Do you accept the terms and conditions of the [[contract_title]]?</span>
2
+ type: checkboxes
3
+
4
+ depends:
5
+ - "on": agreementVersion
6
+ being:
7
+ - standard
8
+ - guarantor
9
+
10
+ options:
11
+ - label: I accept the terms and conditions of the [[contract_title]]
12
+ value: "yes"
13
+
14
+ validations:
15
+ - name: answer_required
16
+ message: Accept the terms and conditions of the [[contract_title]].
@@ -0,0 +1,12 @@
1
+ name: Immediate parent company
2
+ question: Do you have an immediate parent company?
3
+ type: boolean
4
+
5
+ followup:
6
+ multiqImmediateParentCompanyDetails:
7
+ - true
8
+
9
+ validations:
10
+ -
11
+ name: answer_required
12
+ message: You must select an option
@@ -0,0 +1,11 @@
1
+ name: Building and street
2
+ question: |
3
+ <p class="govuk-label">
4
+ Building and street
5
+ </p>
6
+
7
+ type: text
8
+
9
+ validations:
10
+ - name: answer_required
11
+ message: You must enter the building and street
@@ -0,0 +1,11 @@
1
+ name: Country
2
+ question: |
3
+ <p class="govuk-label">
4
+ Country
5
+ </p>
6
+
7
+ type: text
8
+
9
+ validations:
10
+ - name: answer_required
11
+ message: You must enter the country
@@ -0,0 +1,14 @@
1
+ name: Postcode
2
+ question: |
3
+ <p class="govuk-label">
4
+ Postcode
5
+ </p>
6
+
7
+ type: text
8
+ max_length_in_characters: 15
9
+
10
+ validations:
11
+ - name: answer_required
12
+ message: You must enter the postcode
13
+ - name: under_character_limit
14
+ message: Postcode must be 15 characters or fewer
@@ -0,0 +1,11 @@
1
+ name: Town or city
2
+ question: |
3
+ <p class="govuk-label">
4
+ Town or city
5
+ </p>
6
+
7
+ type: text
8
+
9
+ validations:
10
+ - name: answer_required
11
+ message: You must enter the town or city
@@ -0,0 +1,12 @@
1
+ name: DUNS number
2
+ question: DUNS number of head office, if they have a head office
3
+ type: text
4
+ optional: true
5
+
6
+ validations:
7
+ -
8
+ name: invalid_format
9
+ message: The DUNS number must be 9 digits
10
+ -
11
+ name: cannot_use_own_duns_number
12
+ message: You cannot add your own DUNS number for your immediate parent company
@@ -0,0 +1,7 @@
1
+ name: Full name of immediate parent company
2
+ question: Full name of immediate parent company
3
+ type: text
4
+
5
+ validations:
6
+ - name: answer_required
7
+ message: You must enter the name of the immediate parent company
@@ -0,0 +1,4 @@
1
+ name: Registration number
2
+ question: Registration number
3
+ type: text
4
+ optional: true
@@ -0,0 +1,4 @@
1
+ name: VAT number
2
+ question: VAT number
3
+ type: text
4
+ optional: true
@@ -0,0 +1,7 @@
1
+ name: Immediate parent company
2
+ question: ""
3
+
4
+ type: multiquestion
5
+ questions:
6
+ - immediateParentCompany
7
+ - multiqImmediateParentCompanyDetails
@@ -0,0 +1,11 @@
1
+ name: Immediate parent company details
2
+ question: What are the details of your immediate parent company?
3
+ hidden: true
4
+ type: multiquestion
5
+
6
+ questions:
7
+ - immediateParentCompanyDetailsName
8
+ - multiqImmediateParentCompanyDetailsAddress
9
+ - immediateParentCompanyDetailsRegistrationNumber
10
+ - immediateParentCompanyDetailsDUNSNumber
11
+ - immediateParentCompanyDetailsVATNumber
@@ -0,0 +1,9 @@
1
+ name: Immediate parent company details address
2
+ question: Registered or head office address
3
+ type: multiquestion
4
+
5
+ questions:
6
+ - immediateParentCompanyDetailsAddressBuilding
7
+ - immediateParentCompanyDetailsAddressTown
8
+ - immediateParentCompanyDetailsAddressPostcode
9
+ - immediateParentCompanyDetailsAddressCountry
@@ -0,0 +1,2 @@
1
+ question: Service ID
2
+ type: service_id
@@ -0,0 +1,14 @@
1
+ question: Service type
2
+
3
+ type: radios
4
+ options:
5
+ - label: Infrastructure as a Service (IaaS) and Platform as a Service (PaaS)
6
+ value: iaas-and-paas
7
+ - label: Infrastructure as a Service (IaaS) and Platform as a Service (PaaS) (above OFFICIAL)
8
+ value: iaas-and-paas-above-official
9
+ - label: Infrastructure Software as a Service (iSaaS)
10
+ value: isaas
11
+ - label: Software as a Service (Saas)
12
+ value: saas
13
+ - label: Cloud Support
14
+ value: cloud-support
@@ -0,0 +1,2 @@
1
+ question: Service type
2
+ type: text
@@ -0,0 +1,22 @@
1
+ name: Service description
2
+ question: Provide a summary describing what your service is for.
3
+
4
+ depends:
5
+ - "on": lot
6
+ being:
7
+ - iaas-and-paas
8
+ - iaas-and-paas-above-official
9
+ - issas
10
+ - sass
11
+ - cloud-support
12
+
13
+ type: textbox_large
14
+ max_length_in_words: 50
15
+
16
+ validations:
17
+ - name: answer_required
18
+ message: Enter summary.
19
+ - name: under_50_words
20
+ message: Description must be 50 words or fewer.
21
+ - name: under_character_limit
22
+ message: Description must be 500 characters or fewer.
@@ -0,0 +1,21 @@
1
+ id: serviceName
2
+ question: What’s your service called?
3
+ name: Service name
4
+ hint: Include your service name only. Don’t use extra keywords.
5
+
6
+ depends:
7
+ - "on": lot
8
+ being:
9
+ - iaas-and-paas
10
+ - iaas-and-paas-above-official
11
+ - issas
12
+ - sass
13
+ - cloud-support
14
+
15
+ type: text
16
+
17
+ validations:
18
+ - name: answer_required
19
+ message: Enter the service name.
20
+ - name: under_character_limit
21
+ message: Your service name must be 100 characters or fewer.
@@ -0,0 +1,268 @@
1
+ {
2
+ "settings": {
3
+ "index": {
4
+ "max_result_window": 50000
5
+ },
6
+ "analysis": {
7
+ "analyzer": {
8
+ "stemming_analyzer": {
9
+ "tokenizer": "standard",
10
+ "filter": [
11
+ "lowercase",
12
+ "possessive_english_stemmer",
13
+ "light_english_stemmer"
14
+ ]
15
+ }
16
+ },
17
+ "filter": {
18
+ "light_english_stemmer": {
19
+ "type": "stemmer",
20
+ "name": "light_english"
21
+ },
22
+ "possessive_english_stemmer": {
23
+ "type": "stemmer",
24
+ "name": "possessive_english"
25
+ }
26
+ },
27
+ "char_filter": {
28
+ "nonalpha_removal": {
29
+ "type": "pattern_replace",
30
+ "pattern": "\\W+",
31
+ "replacement": ""
32
+ }
33
+ },
34
+ "normalizer": {
35
+ "filter_normalizer": {
36
+ "type": "custom",
37
+ "char_filter": [
38
+ "nonalpha_removal"
39
+ ],
40
+ "filter": [
41
+ "lowercase"
42
+ ]
43
+ }
44
+ }
45
+ }
46
+ },
47
+ "mappings": {
48
+ "_meta": {
49
+ "dm_sort_clause": [
50
+ "_score",
51
+ {
52
+ "sortonly_serviceIdHash": "desc"
53
+ }
54
+ ],
55
+ "transformations": [
56
+ {
57
+ "hash_to": {
58
+ "field": "id",
59
+ "target_field": "serviceIdHash"
60
+ }
61
+ }
62
+ ]
63
+ },
64
+ "dynamic": "strict",
65
+ "properties": {
66
+ "dmtext_id": {
67
+ "type": "keyword"
68
+ },
69
+ "sortonly_serviceIdHash": {
70
+ "type": "keyword"
71
+ },
72
+ "dmagg_lot": {
73
+ "type": "keyword"
74
+ },
75
+ "dmtext_lot": {
76
+ "type": "keyword"
77
+ },
78
+ "dmtext_lotName": {
79
+ "type": "text"
80
+ },
81
+ "dmtext_frameworkName": {
82
+ "type": "keyword"
83
+ },
84
+ "dmtext_serviceName": {
85
+ "type": "text"
86
+ },
87
+ "dmtext_serviceDescription": {
88
+ "term_vector": "with_positions_offsets",
89
+ "type": "text",
90
+ "analyzer": "stemming_analyzer"
91
+ },
92
+ "dmtext_serviceBenefits": {
93
+ "type": "text",
94
+ "analyzer": "stemming_analyzer"
95
+ },
96
+ "dmtext_serviceFeatures": {
97
+ "type": "text",
98
+ "analyzer": "stemming_analyzer"
99
+ },
100
+ "dmtext_supplierName": {
101
+ "type": "text"
102
+ },
103
+ "dmfilter_lot": {
104
+ "type": "keyword",
105
+ "normalizer": "filter_normalizer"
106
+ },
107
+ "dmagg_serviceCategories": {
108
+ "type": "keyword"
109
+ },
110
+ "dmtext_serviceCategories": {
111
+ "type": "text",
112
+ "analyzer": "stemming_analyzer"
113
+ },
114
+ "dmfilter_serviceCategories": {
115
+ "type": "keyword",
116
+ "normalizer": "filter_normalizer"
117
+ },
118
+ "dmfilter_supportMultiCloud": {
119
+ "type": "keyword",
120
+ "normalizer": "filter_normalizer"
121
+ },
122
+ "dmfilter_cloudDeploymentModel": {
123
+ "type": "keyword",
124
+ "normalizer": "filter_normalizer"
125
+ },
126
+ "dmfilter_resellingType": {
127
+ "type": "keyword",
128
+ "normalizer": "filter_normalizer"
129
+ },
130
+ "dmfilter_emailOrTicketingSupport": {
131
+ "type": "keyword",
132
+ "normalizer": "filter_normalizer"
133
+ },
134
+ "dmfilter_phoneSupport": {
135
+ "type": "keyword",
136
+ "normalizer": "filter_normalizer"
137
+ },
138
+ "dmfilter_webChatSupport": {
139
+ "type": "keyword",
140
+ "normalizer": "filter_normalizer"
141
+ },
142
+ "dmfilter_onsiteSupport": {
143
+ "type": "keyword",
144
+ "normalizer": "filter_normalizer"
145
+ },
146
+ "dmfilter_userSupportAccessibility": {
147
+ "type": "keyword",
148
+ "normalizer": "filter_normalizer"
149
+ },
150
+ "dmfilter_serviceInterfaceAccessibility": {
151
+ "type": "keyword",
152
+ "normalizer": "filter_normalizer"
153
+ },
154
+ "dmfilter_browsersAccess": {
155
+ "type": "keyword",
156
+ "normalizer": "filter_normalizer"
157
+ },
158
+ "dmfilter_installation": {
159
+ "type": "keyword",
160
+ "normalizer": "filter_normalizer"
161
+ },
162
+ "dmfilter_mobile": {
163
+ "type": "keyword",
164
+ "normalizer": "filter_normalizer"
165
+ },
166
+ "dmfilter_APISoftware": {
167
+ "type": "keyword",
168
+ "normalizer": "filter_normalizer"
169
+ },
170
+ "dmfilter_metricsHow": {
171
+ "type": "keyword",
172
+ "normalizer": "filter_normalizer"
173
+ },
174
+ "dmfilter_metricsWhat": {
175
+ "type": "keyword",
176
+ "normalizer": "filter_normalizer"
177
+ },
178
+ "dmfilter_scalingType": {
179
+ "type": "keyword",
180
+ "normalizer": "filter_normalizer"
181
+ },
182
+ "dmfilter_usageNotifications": {
183
+ "type": "keyword",
184
+ "normalizer": "filter_normalizer"
185
+ },
186
+ "dmfilter_backup": {
187
+ "type": "keyword",
188
+ "normalizer": "filter_normalizer"
189
+ },
190
+ "dmfilter_backupDatacentre": {
191
+ "type": "keyword",
192
+ "normalizer": "filter_normalizer"
193
+ },
194
+ "dmfilter_publicSectorNetworksTypes": {
195
+ "type": "keyword",
196
+ "normalizer": "filter_normalizer"
197
+ },
198
+ "dmfilter_dataProtectionBetweenNetworks": {
199
+ "type": "keyword",
200
+ "normalizer": "filter_normalizer"
201
+ },
202
+ "dmfilter_dataProtectionWithinNetwork": {
203
+ "type": "keyword",
204
+ "normalizer": "filter_normalizer"
205
+ },
206
+ "dmfilter_dataStorageAndProcessingLocations": {
207
+ "type": "keyword",
208
+ "normalizer": "filter_normalizer"
209
+ },
210
+ "dmfilter_userAuthentication": {
211
+ "type": "keyword",
212
+ "normalizer": "filter_normalizer"
213
+ },
214
+ "dmfilter_managementAccessAuthentication": {
215
+ "type": "keyword",
216
+ "normalizer": "filter_normalizer"
217
+ },
218
+ "dmfilter_standardsISOIEC27001": {
219
+ "type": "keyword",
220
+ "normalizer": "filter_normalizer"
221
+ },
222
+ "dmfilter_standardsISO28000": {
223
+ "type": "keyword",
224
+ "normalizer": "filter_normalizer"
225
+ },
226
+ "dmfilter_standardsCSASTAR": {
227
+ "type": "keyword",
228
+ "normalizer": "filter_normalizer"
229
+ },
230
+ "dmfilter_standardsPCI": {
231
+ "type": "keyword",
232
+ "normalizer": "filter_normalizer"
233
+ },
234
+ "dmfilter_standardsCyberEssentials": {
235
+ "type": "keyword",
236
+ "normalizer": "filter_normalizer"
237
+ },
238
+ "dmfilter_standardsCyberEssentialsPlus": {
239
+ "type": "keyword",
240
+ "normalizer": "filter_normalizer"
241
+ },
242
+ "dmfilter_securityGovernanceStandards": {
243
+ "type": "keyword",
244
+ "normalizer": "filter_normalizer"
245
+ },
246
+ "dmfilter_datacentreSecurityStandards": {
247
+ "type": "keyword",
248
+ "normalizer": "filter_normalizer"
249
+ },
250
+ "dmfilter_staffSecurityClearanceChecks": {
251
+ "type": "keyword",
252
+ "normalizer": "filter_normalizer"
253
+ },
254
+ "dmfilter_governmentSecurityClearances": {
255
+ "type": "keyword",
256
+ "normalizer": "filter_normalizer"
257
+ },
258
+ "dmfilter_educationPricing": {
259
+ "type": "keyword",
260
+ "normalizer": "filter_normalizer"
261
+ },
262
+ "dmfilter_freeVersionTrialOption": {
263
+ "type": "keyword",
264
+ "normalizer": "filter_normalizer"
265
+ }
266
+ }
267
+ }
268
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccs-digitalmarketplace-frameworks",
3
- "version": "4.2.2",
3
+ "version": "4.3.0",
4
4
  "description": "Data files for Digital Marketplace’s procurement frameworks",
5
5
  "repository": "git@github.com:Crown-Commercial-Service/ccs-digitalmarketplace-frameworks",
6
6
  "author": "enquiries@digitalmarketplace.service.gov.uk"
@@ -160,13 +160,16 @@ class FrameworkContentCloner:
160
160
  for key, file_path in DATES_FILES.items():
161
161
  full_file_path = os.path.join("frameworks", self._new_fw_slug, file_path)
162
162
 
163
- with open(full_file_path, 'r') as f:
164
- current_content = f.read()
165
- updated_content = current_content.replace(str(self._launch_year - 1), '2525')
163
+ try:
164
+ with open(full_file_path, 'r') as f:
165
+ current_content = f.read()
166
+ updated_content = current_content.replace(str(self._launch_year - 1), '2525')
166
167
 
167
- with open(full_file_path, 'w') as f:
168
- print(f"Writing content to {file_path}")
169
- f.write(updated_content)
168
+ with open(full_file_path, 'w') as f:
169
+ print(f"Writing content to {file_path}")
170
+ f.write(updated_content)
171
+ except FileNotFoundError:
172
+ print(f"Skipping {key} as file not found for framework")
170
173
 
171
174
  def set_placeholders_for_file_urls(self):
172
175
  print("Setting placeholder urls for as-yet unpublished files")