changedInput schema / properties / definition / allOf
Previous value: -[
- {
- "additionalProperties": false,
- "description": "A custom report: report-wide filters and up to 12 blocks. Read report-catalog first for the dataset, field and measure ids.",
- "example": {
- "blocks": [
- {
- "compare": "previous_period",
- "dataset": "interview_results",
- "id": "headline",
- "measures": [
- "completed",
- "avg_score",
- "shortlisted"
- ],
- "type": "kpi"
- },
- {
- "dataset": "interview_results",
- "dimensions": [
- {
- "field": "date",
- "grain": "week"
- }
- ],
- "id": "trend",
- "measures": [
- "completed"
- ],
- "title": "Completed per week",
- "type": "line",
- "width": 8
- },
- {
- "dataset": "interview_results",
- "dimensions": [
- "position"
- ],
- "id": "by_position",
- "limit": 25,
- "measures": [
- "completed",
- "avg_score",
- "shortlisted"
- ],
- "sort": [
- {
- "dir": "desc",
- "field": "completed"
- }
- ],
- "title": "By position",
- "type": "table"
- }
- ],
- "filters": {
- "period": {
- "preset": "last_30_days"
- }
- },
- "schema": "jobmojito.report/v1",
- "title": "Weekly hiring pulse"
- },
- "properties": {
- "blocks": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "compare": {
- "description": "kpi / funnel only: also return the same numbers for the period before.",
- "enum": [
- "previous_period",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "dataset": {
- "description": "Dataset id from report-catalog. Not used by a text block.",
- "example": "interview_results",
- "type": [
- "string",
- "null"
- ]
- },
- "dimensions": {
- "items": {
- "anyOf": [
- {
- "pattern": "^[a-z][a-z0-9_]{0,40}$",
- "type": "string"
- },
- {
- "additionalProperties": false,
- "properties": {
- "field": {
- "pattern": "^[a-z][a-z0-9_]{0,40}$",
- "type": [
- "string",
- "null"
- ]
- },
- "grain": {
- "description": "For a date field: day (default), week, month, quarter or year.",
- "enum": [
- "day",
- "week",
- "month",
- "quarter",
- "year",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- }
- },
- "required": [
- "field"
- ],
- "type": "object"
- }
- ],
- "description": "A dimension field id, or {\"field\", \"grain\"} for a date."
- },
- "maxItems": 2,
- "type": [
- "array",
- "null"
- ]
- },
- "id": {
- "example": "by_position",
- "pattern": "^[A-Za-z0-9_-]{1,40}$",
- "type": [
- "string",
- "null"
- ]
- },
- "limit": {
- "description": "Rows for a table / bar / line. Default 100 (line 500).",
- "maximum": 500,
- "minimum": 1,
- "type": [
- "integer",
- "null"
- ]
- },
- "measures": {
- "description": "1 to 6 measure ids of the dataset.",
- "example": [
- "completed",
- "avg_score"
- ],
- "items": {
- "pattern": "^[a-z][a-z0-9_]{0,40}$",
- "type": "string"
- },
- "maxItems": 6,
- "minItems": 1,
- "type": [
- "array",
- "null"
- ]
- },
- "sort": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "dir": {
- "enum": [
- "asc",
- "desc",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "field": {
- "description": "A dimension or measure the block selects.",
- "pattern": "^[a-z][a-z0-9_]{0,40}$",
- "type": [
- "string",
- "null"
- ]
- }
- },
- "required": [
- "field"
- ],
- "type": "object"
- },
- "maxItems": 3,
- "type": [
- "array",
- "null"
- ]
- },
- "text": {
- "description": "Text block only: the note (plain text, line breaks kept).",
- "maxLength": 4000,
- "type": [
- "string",
- "null"
- ]
- },
- "title": {
- "maxLength": 120,
- "type": [
- "string",
- "null"
- ]
- },
- "type": {
- "description": "kpi: one total per measure (no dimensions; add compare previous_period for a change). funnel: 2+ measures as steps (no dimensions). table: 0-2 dimensions. bar: 1-2 dimensions. stacked_bar: exactly 2 dimensions. line: first dimension a date. text: a note, only `text`.",
- "enum": [
- "kpi",
- "table",
- "bar",
- "stacked_bar",
- "line",
- "funnel",
- "text",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "where": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "field": {
- "description": "A dimension of the block's dataset.",
- "pattern": "^[a-z][a-z0-9_]{0,40}$",
- "type": [
- "string",
- "null"
- ]
- },
- "op": {
- "enum": [
- "eq",
- "neq",
- "in",
- "not_in",
- "gt",
- "gte",
- "lt",
- "lte",
- "between",
- "is_empty",
- "is_not_empty",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "value": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "number"
- },
- {
- "type": "boolean"
- },
- {
- "items": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "number"
- }
- ]
- },
- "type": "array"
- }
- ],
- "description": "One value for eq / neq / gt / gte / lt / lte, a list for in / not_in, [low, high] for between, nothing for is_empty / is_not_empty."
- }
- },
- "required": [
- "field",
- "op"
- ],
- "type": "object"
- },
- "maxItems": 10,
- "type": [
- "array",
- "null"
- ]
- },
- "width": {
- "description": "Columns of a 12-column grid. Default 12.",
- "maximum": 12,
- "minimum": 1,
- "type": [
- "integer",
- "null"
- ]
- }
- },
- "required": [
- "id",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 12,
- "type": [
- "array",
- "null"
- ]
- },
- "description": {
- "maxLength": 1000,
- "type": [
- "string",
- "null"
- ]
- },
- "filters": {
- "additionalProperties": false,
- "description": "Filters for every block of the report. Each viewer can override them for themselves.",
- "properties": {
- "include_test": {
- "description": "Include test runs. Default false.",
- "type": [
- "boolean",
- "null"
- ]
- },
- "interview_ids": {
- "description": "Only these interviews (interview ids from list_interviews). Empty or missing = all.",
- "items": {
- "format": "uuid",
- "type": "string"
- },
- "maxItems": 200,
- "type": [
- "array",
- "null"
- ]
- },
- "period": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "preset": {
- "enum": [
- "last_7_days",
- "last_30_days",
- "last_90_days",
- "this_month",
- "last_month",
- "this_quarter",
- "last_quarter",
- "this_year",
- "last_year",
- "all_time",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- }
- },
- "required": [
- "preset"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "from": {
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": [
- "string",
- "null"
- ]
- },
- "to": {
- "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
- "type": [
- "string",
- "null"
- ]
- }
- },
- "required": [
- "from",
- "to"
- ],
- "type": "object"
- }
- ],
- "description": "Either a preset, or from and to dates (YYYY-MM-DD, both inclusive, UTC). Default: last_30_days.",
- "example": {
- "preset": "last_30_days"
- }
- },
- "position_ids": {
- "description": "Only these positions (position ids from list_interviews). Empty or missing = all.",
- "items": {
- "format": "uuid",
- "type": "string"
- },
- "maxItems": 200,
- "type": [
- "array",
- "null"
- ]
- }
- },
- "type": "object"
- },
- "schema": {
- "description": "Always \"jobmojito.report/v1\".",
- "enum": [
- "jobmojito.report/v1",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "title": {
- "maxLength": 120,
- "minLength": 1,
- "type": [
- "string",
- "null"
- ]
- }
- },
- "required": [
- "schema",
- "title",
- "blocks"
- ],
- "type": "object"
- },
- {
- "description": "The whole new definition (it replaces the old one)."
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "description": "A custom report: report-wide filters and up to 12 blocks. Read report-catalog first for the dataset, field and measure ids.",
+ "example": {
+ "blocks": [
+ {
+ "compare": "previous_period",
+ "dataset": "interview_results",
+ "id": "headline",
+ "measures": [
+ "completed",
+ "avg_score",
+ "shortlisted"
+ ],
+ "type": "kpi"
+ },
+ {
+ "dataset": "interview_results",
+ "dimensions": [
+ {
+ "field": "date",
+ "grain": "week"
+ }
+ ],
+ "id": "trend",
+ "measures": [
+ "completed"
+ ],
+ "title": "Completed per week",
+ "type": "line",
+ "width": 8
+ },
+ {
+ "dataset": "interview_results",
+ "dimensions": [
+ "position"
+ ],
+ "id": "by_position",
+ "limit": 25,
+ "measures": [
+ "completed",
+ "avg_score",
+ "shortlisted"
+ ],
+ "sort": [
+ {
+ "dir": "desc",
+ "field": "completed"
+ }
+ ],
+ "title": "By position",
+ "type": "table"
+ }
+ ],
+ "filters": {
+ "period": {
+ "preset": "last_30_days"
+ }
+ },
+ "schema": "jobmojito.report/v1",
+ "title": "Weekly hiring pulse"
+ },
+ "properties": {
+ "blocks": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "compare": {
+ "description": "kpi / funnel only: also return the same numbers for the period before.",
+ "enum": [
+ "previous_period",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dataset": {
+ "description": "Dataset id from report-catalog. Not used by a text block.",
+ "example": "interview_results",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "dimensions": {
+ "items": {
+ "anyOf": [
+ {
+ "pattern": "^[a-z][a-z0-9_]{0,40}$",
+ "type": "string"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "pattern": "^[a-z][a-z0-9_]{0,40}$",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "grain": {
+ "description": "For a date field: day (default), week, month, quarter or year.",
+ "enum": [
+ "day",
+ "week",
+ "month",
+ "quarter",
+ "year",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "field"
+ ],
+ "type": "object"
+ }
+ ],
+ "description": "A dimension field id, or {\"field\", \"grain\"} for a date."
+ },
+ "maxItems": 2,
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "id": {
+ "example": "by_position",
+ "pattern": "^[A-Za-z0-9_-]{1,40}$",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "limit": {
+ "description": "Rows for a table / bar / line. Default 100 (line 500).",
+ "maximum": 500,
+ "minimum": 1,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "measures": {
+ "description": "1 to 6 measure ids of the dataset.",
+ "example": [
+ "completed",
+ "avg_score"
+ ],
+ "items": {
+ "pattern": "^[a-z][a-z0-9_]{0,40}$",
+ "type": "string"
+ },
+ "maxItems": 6,
+ "minItems": 1,
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "sort": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "dir": {
+ "enum": [
+ "asc",
+ "desc",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "field": {
+ "description": "A dimension or measure the block selects.",
+ "pattern": "^[a-z][a-z0-9_]{0,40}$",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "field"
+ ],
+ "type": "object"
+ },
+ "maxItems": 3,
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "text": {
+ "description": "Text block only: the note (plain text, line breaks kept).",
+ "maxLength": 4000,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "title": {
+ "maxLength": 120,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "type": {
+ "description": "kpi: one total per measure (no dimensions; add compare previous_period for a change). funnel: 2+ measures as steps (no dimensions). table: 0-2 dimensions. bar: 1-2 dimensions. stacked_bar: exactly 2 dimensions. line: first dimension a date. text: a note, only `text`.",
+ "enum": [
+ "kpi",
+ "table",
+ "bar",
+ "stacked_bar",
+ "line",
+ "funnel",
+ "text",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "where": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "field": {
+ "description": "A dimension of the block's dataset.",
+ "pattern": "^[a-z][a-z0-9_]{0,40}$",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "op": {
+ "enum": [
+ "eq",
+ "neq",
+ "in",
+ "not_in",
+ "gt",
+ "gte",
+ "lt",
+ "lte",
+ "between",
+ "is_empty",
+ "is_not_empty",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "value": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ },
+ "type": "array"
+ }
+ ],
+ "description": "One value for eq / neq / gt / gte / lt / lte, a list for in / not_in, [low, high] for between, nothing for is_empty / is_not_empty."
+ }
+ },
+ "required": [
+ "field",
+ "op"
+ ],
+ "type": "object"
+ },
+ "maxItems": 10,
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "width": {
+ "description": "Columns of a 12-column grid. Default 12.",
+ "maximum": 12,
+ "minimum": 1,
+ "type": [
+ "integer",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type"
+ ],
+ "type": "object"
+ },
+ "maxItems": 12,
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "description": {
+ "maxLength": 1000,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "filters": {
+ "additionalProperties": false,
+ "description": "Filters for every block of the report. Each viewer can override them for themselves.",
+ "properties": {
+ "include_test": {
+ "description": "Include test runs. Default false.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "interview_ids": {
+ "description": "Interviews to show (interview ids from list_interviews), combined with the other picks by OR. Nothing picked = all.",
+ "items": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "maxItems": 200,
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "period": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "preset": {
+ "enum": [
+ "last_7_days",
+ "last_30_days",
+ "last_90_days",
+ "this_month",
+ "last_month",
+ "this_quarter",
+ "last_quarter",
+ "this_year",
+ "last_year",
+ "all_time",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "preset"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "from": {
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "to": {
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "from",
+ "to"
+ ],
+ "type": "object"
+ }
+ ],
+ "description": "Either a preset, or from and to dates (YYYY-MM-DD, both inclusive, UTC). Default: last_30_days.",
+ "example": {
+ "preset": "last_30_days"
+ }
+ },
+ "position_ids": {
+ "description": "Positions to show (position ids from list_interviews). position_ids, interview_ids and without_position are one pick list: a row shows when it belongs to ANY pick. Nothing picked = all.",
+ "items": {
+ "format": "uuid",
+ "type": "string"
+ },
+ "maxItems": 200,
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "without_position": {
+ "description": "Also pick interviews that are not part of any position (stand-alone interviews, and coaching sessions). Combined with the other picks by OR.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "schema": {
+ "description": "Always \"jobmojito.report/v1\".",
+ "enum": [
+ "jobmojito.report/v1",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "title": {
+ "maxLength": 120,
+ "minLength": 1,
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "schema",
+ "title",
+ "blocks"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "The whole new definition (it replaces the old one)."
+ }
+]