screwdriver-data-schema 22.9.5 → 22.9.7

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/config/regex.js CHANGED
@@ -41,7 +41,8 @@ module.exports = {
41
41
  // Steps can only be named with A-Z,a-z,0-9,-,_
42
42
  STEP_NAME: /^[\w-]+$/,
43
43
  // Jobs can only be named with A-Z,a-z,0-9,-,_
44
- JOB_NAME: /^[\w-]+$/,
44
+ // Also allow stage setup/teardown like stage@stage-name:setup
45
+ JOB_NAME: /^(([\w-]+)|(?:stage@([\w-]+):(setup|teardown)))$/,
45
46
  // PR JOB Name can only be PR-1 or PR-1:main, group1: PR-prNum, group2: jobName
46
47
  PR_JOB_NAME: /^(PR-\d+)(?::([\w-]+))?$/,
47
48
  // Match all possible job name
package/models/job.js CHANGED
@@ -9,7 +9,7 @@ const MODEL = {
9
9
  id: Joi.number().integer().positive().description('Identifier of this Job').example(123345),
10
10
 
11
11
  name: Joi.string()
12
- .regex(/^(PR-[0-9]+:)?[\w-]+$/)
12
+ .regex(/^(PR-[0-9]+:)?(([\w-]+)|(?:stage@([\w-]+):(setup|teardown)))$/)
13
13
  .max(110)
14
14
  .description('Name of the Job')
15
15
  .example('main'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "screwdriver-data-schema",
3
- "version": "22.9.5",
3
+ "version": "22.9.7",
4
4
  "description": "Internal Data Schema of Screwdriver",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -18,18 +18,18 @@ const pipelineId = models.pipeline.base.extract('id');
18
18
  const SCHEMA_PIPELINE = Joi.object()
19
19
  .keys({
20
20
  id: pipelineId.required(),
21
- name: models.pipeline.base.extract('name').optional(),
21
+ name: models.pipeline.base.extract('name').optional().allow(null),
22
22
  scmContext: models.pipeline.base.extract('scmContext').required(),
23
23
  configPipelineId: models.pipeline.base.extract('configPipelineId').optional().allow(null)
24
24
  })
25
25
  .unknown();
26
26
  const SCHEMA_TEMPLATE = Joi.object()
27
27
  .keys({
28
- id: models.template.base.extract('id'),
29
- fullName: Template.fullName,
30
- name: models.template.base.extract('name'),
31
- namespace: models.template.base.extract('namespace'),
32
- version: models.template.base.extract('version')
28
+ id: models.template.base.extract('id').optional(),
29
+ fullName: Template.fullName.optional(),
30
+ name: models.template.base.extract('name').optional(),
31
+ namespace: models.template.base.extract('namespace').optional(),
32
+ version: models.template.base.extract('version').optional()
33
33
  })
34
34
  .unknown();
35
35
  const buildSchemaObj = {
@@ -55,7 +55,7 @@ const buildSchemaObj = {
55
55
  token: Joi.string().required().label('Build JWT'),
56
56
  enqueueTime: Joi.date().iso(),
57
57
  isPR: Joi.boolean().optional().default(true),
58
- prNum: models.event.base.extract('prNum'),
58
+ prNum: models.event.base.extract('prNum').optional(),
59
59
  prParentJobId: jobId.optional()
60
60
  };
61
61
  const SCHEMA_START = Joi.object()