From dd9200a655da1b86d39088f0b5bb5eb930c91690 Mon Sep 17 00:00:00 2001
From: Reinder Kraaij <kraaij@astron.nl>
Date: Tue, 21 Nov 2023 08:24:55 +0100
Subject: [PATCH] FIx Unit Tests

---
 .../src/__mocks__/task_templates.json         | 2431 +++++++++++++++++
 .../helpers/toolbar/filters.helper.test.js    |   32 +-
 2 files changed, 2458 insertions(+), 5 deletions(-)

diff --git a/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/task_templates.json b/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/task_templates.json
index d27e1dc2012..4b2f99ec225 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/task_templates.json
+++ b/SAS/TMSS/frontend/tmss_webapp/src/__mocks__/task_templates.json
@@ -55293,6 +55293,2437 @@
             },
             "type": "http://localhost:3000/api/task_type/pipeline",
             "type_value": "pipeline"
+        },
+        {
+            "description": "This schema defines the parameters for a pulsar pipeline.",
+            "name": "pulsar pipeline",
+            "purpose": "production",
+            "schema": {
+                "$id": "https://tmss.lofar.eu/api/schemas/tasktemplate/pulsar%20pipeline/8#",
+                "$schema": "http://json-schema.org/draft-07/schema#",
+                "additionalProperties": false,
+                "description": "This schema defines the parameters for a pulsar pipeline.",
+                "patternProperties": {
+                    "^[$]schema$": {}
+                },
+                "properties": {
+                    "cluster_resources": {
+                        "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pipeline/7#/definitions/cluster_resources",
+                        "default": {}
+                    },
+                    "dspsr": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "digifil": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "description": "Processes single pulses in CV data if single-pulse search is enabled",
+                                "properties": {
+                                    "channels_per_part": {
+                                        "default": 512,
+                                        "description": "Number of frequency channels per part (multiple of subbands per part).",
+                                        "maximum": 512,
+                                        "minimum": 1,
+                                        "title": "Nr of Frequency Channels",
+                                        "type": "integer"
+                                    },
+                                    "coherent_dedispersion": {
+                                        "default": true,
+                                        "title": "Coherent Dedispersion",
+                                        "type": "boolean"
+                                    },
+                                    "dm": {
+                                        "default": -1,
+                                        "desciption": "Dispersion Measure (-1 for none)",
+                                        "minimum": -1,
+                                        "title": "DM",
+                                        "type": "number"
+                                    },
+                                    "integration_time_factor": {
+                                        "default": 4,
+                                        "minimum": 1,
+                                        "title": "Integration time",
+                                        "type": "integer"
+                                    }
+                                },
+                                "title": "Digifil",
+                                "type": "object"
+                            },
+                            "enabled": {
+                                "default": true,
+                                "title": "Enabled",
+                                "type": "boolean"
+                            },
+                            "filterbank": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "channels_per_part": {
+                                        "default": 120,
+                                        "description": "Number of frequency channels per part (multiple of subbands per part).",
+                                        "maximum": 512,
+                                        "minimum": 1,
+                                        "title": "Nr of Frequency Channels",
+                                        "type": "integer"
+                                    },
+                                    "coherent_dedispersion": {
+                                        "default": true,
+                                        "title": "Coherent Dedispersion",
+                                        "type": "boolean"
+                                    },
+                                    "enabled": {
+                                        "default": false,
+                                        "title": "Enabled",
+                                        "type": "boolean"
+                                    }
+                                },
+                                "title": "Create extra channels",
+                                "type": "object"
+                            },
+                            "optimise_period_dm": {
+                                "default": true,
+                                "title": "Optimise period & DM",
+                                "type": "boolean"
+                            },
+                            "rfi_excision": {
+                                "default": true,
+                                "description": "Excise/clean/remove detected RFI",
+                                "title": "RFI excision",
+                                "type": "boolean"
+                            },
+                            "single_pulse_subintegration": {
+                                "default": false,
+                                "description": "Create single-pulse subintegrations with inter-channel dispersion delays removed.",
+                                "title": "Single pulse subintegration",
+                                "type": "boolean"
+                            },
+                            "subintegration_length": {
+                                "default": -1,
+                                "minimum": -1,
+                                "title": "Subintegration length",
+                                "type": "integer"
+                            },
+                            "number_of_bins": {
+                                "minimum": 2,
+                                "title": "Number of bins",
+                                "type": "integer"
+                            }
+                        },
+                        "title": "DSPSR",
+                        "type": "object",
+                        "required": [
+                            "enabled"
+                        ]
+                    },
+                    "output": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "dynamic_spectrum": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "enabled": {
+                                        "default": false,
+                                        "title": "Enabled",
+                                        "type": "boolean"
+                                    },
+                                    "time_average": {
+                                        "default": 0.5,
+                                        "description": "Time averaging, in seconds.",
+                                        "minimum": 0.01,
+                                        "title": "Time average",
+                                        "type": "number"
+                                    }
+                                },
+                                "title": "Dynamic Spectrum",
+                                "type": "object"
+                            },
+                            "quantisation": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "description": "Quantise output into 8-bit samples",
+                                "properties": {
+                                    "enabled": {
+                                        "default": false,
+                                        "title": "Enabled",
+                                        "type": "boolean"
+                                    },
+                                    "scale": {
+                                        "default": 5,
+                                        "description": "Conversion sigma to use when converting to 8-bit samples",
+                                        "minimum": 1,
+                                        "title": "Conversion sigma",
+                                        "type": "number"
+                                    }
+                                },
+                                "title": "Quantisation",
+                                "type": "object"
+                            }
+                        },
+                        "title": "Output",
+                        "type": "object"
+                    },
+                    "presto": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "fold_profile": {
+                                "default": true,
+                                "description": "Fold the pulsar profile",
+                                "title": "Fold",
+                                "type": "boolean"
+                            },
+                            "input": {
+                                "additionalProperties": false,
+                                "properties": {
+                                    "decode_sigma": {
+                                        "default": 3,
+                                        "description": "Sigma threshold for decoding",
+                                        "minimum": 1,
+                                        "title": "Decode sigma",
+                                        "type": "number"
+                                    },
+                                    "nr_blocks": {
+                                        "default": 100,
+                                        "description": "Number of blocks to read at a time",
+                                        "minimum": 1,
+                                        "title": "Nr of blocks",
+                                        "type": "integer"
+                                    },
+                                    "samples_per_block": {
+                                        "default": 8192,
+                                        "minimum": 16,
+                                        "title": "Block size (samples)",
+                                        "type": "integer"
+                                    }
+                                },
+                                "title": "Input",
+                                "type": "object"
+                            },
+                            "prepdata": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "dm": {
+                                        "default": -1,
+                                        "desciption": "Dispersion Measure (-1 for none)",
+                                        "minimum": -1,
+                                        "title": "DM",
+                                        "type": "number"
+                                    }
+                                },
+                                "title": "prepdata",
+                                "type": "object"
+                            },
+                            "prepfold": {
+                                "default": true,
+                                "title": "Enable prepfold",
+                                "type": "boolean"
+                            },
+                            "rfifind": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "blocks": {
+                                        "default": 16,
+                                        "minimum": 1,
+                                        "title": "blocks",
+                                        "type": "integer"
+                                    }
+                                },
+                                "title": "rfifind",
+                                "type": "object"
+                            },
+                            "rrats": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "dm_range": {
+                                        "default": 5,
+                                        "minimum": 0,
+                                        "title": "DM range",
+                                        "type": "number"
+                                    },
+                                    "enabled": {
+                                        "default": false,
+                                        "title": "Enabled",
+                                        "type": "boolean"
+                                    }
+                                },
+                                "title": "RRATs analysis",
+                                "type": "object"
+                            }
+                        },
+                        "title": "PRESTO",
+                        "type": "object"
+                    },
+                    "pulsar": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "name": {
+                                "default": "",
+                                "description": "Name of the pulsar to fold, if strategy=manual",
+                                "title": "Name",
+                                "type": "string"
+                            },
+                            "strategy": {
+                                "default": "manual",
+                                "description": "How to look up the pulsar to fold",
+                                "enum": [
+                                    "manual",
+                                    "meta",
+                                    "sapfind",
+                                    "sapfind3",
+                                    "tabfind",
+                                    "tabfind+"
+                                ],
+                                "enum_titles": [
+                                    "Pulsar name specified here",
+                                    "SAP target is pulsar name",
+                                    "Brightest known pulsar in SAP",
+                                    "Brightest 3 known pulsars in SAP",
+                                    "Brightest known pulsar in TAB",
+                                    "Brightest 3 known pulsars in TAB"
+                                ],
+                                "title": "Strategy",
+                                "type": "string"
+                            }
+                        },
+                        "title": "Pulsar to fold",
+                        "type": "object"
+                    },
+                    "single_pulse_search": {
+                        "default": false,
+                        "description": "Instructs PRESTO to process single pulses, and enables Digifil for CV data",
+                        "title": "Single-pulse search",
+                        "type": "boolean"
+                    },
+                    "software_version": {
+                        "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pipeline/9#/definitions/software_version",
+                        "default": "lofar-pulp:tmss"
+                    }
+                },
+                "required": [
+                    "pulsar",
+                    "presto",
+                    "dspsr",
+                    "output"
+                ],
+                "title": "pulsar pipeline",
+                "type": "object",
+                "version": 8
+            },
+            "state": "active",
+            "version": 8,
+            "id": 29,
+            "ref_resolved_schema": {
+                "definitions": {
+                    "beamformer": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "pipelines": {
+                                "additionalItems": false,
+                                "default": [
+                                    {}
+                                ],
+                                "description": "This array of beamformer pipelines is currently restricted to exactly 1 item. Support for handling multiple pipelines (in cobalt) will be added in the future.",
+                                "items": {
+                                    "$ref": "#/definitions/beamformer_pipeline"
+                                },
+                                "maxItems": 1,
+                                "minItems": 1,
+                                "title": "Pipelines",
+                                "type": "array"
+                            },
+                            "ppf": {
+                                "default": false,
+                                "description": "Use a PPF for the channellisation for beamforming. If not, an FFT is used.",
+                                "title": "Use PPF when beamforming",
+                                "type": "boolean"
+                            }
+                        },
+                        "required": [
+                            "pipelines",
+                            "ppf"
+                        ],
+                        "title": "Beamformer",
+                        "type": "object"
+                    },
+                    "beamformer_pipeline": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "headerTemplate": "Beamformer Pipeline {{ self.index }}",
+                        "properties": {
+                            "coherent": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "SAPs": {
+                                        "additionalItems": false,
+                                        "default": [
+                                            {
+                                                "name": "_SAP_name_",
+                                                "tabs": []
+                                            }
+                                        ],
+                                        "description": "Which SAPs in the observation to beamform.",
+                                        "items": {
+                                            "additionalProperties": false,
+                                            "properties": {
+                                                "name": {
+                                                    "default": "_SAP_to_beamform_",
+                                                    "description": "Name of the SAP to beamform",
+                                                    "minLength": 1,
+                                                    "title": "SAP name",
+                                                    "type": "string"
+                                                },
+                                                "subbands": {
+                                                    "$ref": "#/definitions/subband_selection",
+                                                    "default": {}
+                                                },
+                                                "tab_rings": {
+                                                    "additonalProperties": false,
+                                                    "default": {},
+                                                    "description": "Rings of TABs around the center of the beam.",
+                                                    "properties": {
+                                                        "count": {
+                                                            "default": 0,
+                                                            "maximum": 11,
+                                                            "minimum": 0,
+                                                            "title": "Number of rings",
+                                                            "type": "integer"
+                                                        },
+                                                        "width": {
+                                                            "default": 0.01,
+                                                            "description": "Distance between pointings.",
+                                                            "minimum": 0,
+                                                            "title": "Ring width",
+                                                            "type": "number"
+                                                        }
+                                                    },
+                                                    "title": "Tied-Array Rings",
+                                                    "type": "object"
+                                                },
+                                                "tabs": {
+                                                    "additionalItems": false,
+                                                    "default": [],
+                                                    "description": "Tied-array beams to form",
+                                                    "items": {
+                                                        "additionalProperties": false,
+                                                        "default": {},
+                                                        "headerTemplate": "TAB {{ self.index }}",
+                                                        "properties": {
+                                                            "allow_after_previous": {
+                                                                "default": true,
+                                                                "description": "This TAB can be recorded after the previous TAB, if duration allows.",
+                                                                "title": "Allow after previous",
+                                                                "type": "boolean"
+                                                            },
+                                                            "duration": {
+                                                                "default": 0,
+                                                                "description": "Exposure time of the TAB. 0 = observation duration.",
+                                                                "maximum": 0,
+                                                                "minimum": 0,
+                                                                "title": "Duration",
+                                                                "type": "integer"
+                                                            },
+                                                            "pointing": {
+                                                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/8#/definitions/pointing",
+                                                                "default": {}
+                                                            },
+                                                            "relative": {
+                                                                "default": false,
+                                                                "description": "The SAP pointing is added to the TAB pointing",
+                                                                "title": "Relative to SAP",
+                                                                "type": "boolean"
+                                                            }
+                                                        },
+                                                        "required": [
+                                                            "pointing",
+                                                            "relative"
+                                                        ],
+                                                        "title": "Tied-Array Beam",
+                                                        "type": "object"
+                                                    },
+                                                    "title": "Tied-Array Beams",
+                                                    "type": "array"
+                                                }
+                                            },
+                                            "required": [
+                                                "name",
+                                                "tabs"
+                                            ],
+                                            "type": "object"
+                                        },
+                                        "minItems": 0,
+                                        "title": "SAPs",
+                                        "type": "array"
+                                    },
+                                    "settings": {
+                                        "$ref": "#/definitions/stokes_settings",
+                                        "default": {}
+                                    }
+                                },
+                                "required": [
+                                    "SAPs",
+                                    "settings"
+                                ],
+                                "title": "Coherent Tied-Array Beams",
+                                "type": "object"
+                            },
+                            "flys eye": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "description": "Produce beams containing the individual station signals",
+                                "properties": {
+                                    "enabled": {
+                                        "default": false,
+                                        "title": "Enable Fly's Eye",
+                                        "type": "boolean"
+                                    },
+                                    "settings": {
+                                        "$ref": "#/definitions/stokes_settings",
+                                        "default": {}
+                                    }
+                                },
+                                "required": [
+                                    "enabled"
+                                ],
+                                "title": "Fly's Eye Settings",
+                                "type": "object"
+                            },
+                            "incoherent": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "SAPs": {
+                                        "additionalItems": false,
+                                        "default": [],
+                                        "description": "Which SAPs in the observation to create incoherent TABs for (empty list = all).",
+                                        "items": {
+                                            "additionalProperties": false,
+                                            "default": {},
+                                            "properties": {
+                                                "name": {
+                                                    "default": "_SAP_to_beamform_",
+                                                    "description": "Name of the SAP to beamform",
+                                                    "minLength": 1,
+                                                    "title": "SAP name",
+                                                    "type": "string"
+                                                },
+                                                "subbands": {
+                                                    "$ref": "#/definitions/subband_selection",
+                                                    "default": {}
+                                                }
+                                            },
+                                            "required": [
+                                                "name",
+                                                "subbands"
+                                            ],
+                                            "type": "object"
+                                        },
+                                        "minItems": 0,
+                                        "title": "SAPs",
+                                        "type": "array"
+                                    },
+                                    "settings": {
+                                        "$ref": "#/definitions/stokes_settings",
+                                        "default": {}
+                                    }
+                                },
+                                "required": [
+                                    "settings",
+                                    "SAPs"
+                                ],
+                                "title": "Incoherent Tied-Array Beams",
+                                "type": "object"
+                            },
+                            "name": {
+                                "default": "_beamformer_name_",
+                                "description": "Beamformer name, used for identification purposes.",
+                                "minLength": 1,
+                                "title": "Name",
+                                "type": "string"
+                            },
+                            "station_groups": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/9#/definitions/station_groups",
+                                "default": [
+                                    {
+                                        "max_nr_missing": 1,
+                                        "stations": [
+                                            "CS001",
+                                            "CS002",
+                                            "CS003",
+                                            "CS004",
+                                            "CS005",
+                                            "CS006",
+                                            "CS007",
+                                            "CS011",
+                                            "CS013",
+                                            "CS017",
+                                            "CS021",
+                                            "CS024",
+                                            "CS026",
+                                            "CS028",
+                                            "CS030",
+                                            "CS031",
+                                            "CS032",
+                                            "CS301",
+                                            "CS302",
+                                            "CS401",
+                                            "CS501"
+                                        ]
+                                    }
+                                ],
+                                "description": "While observing, COBALT will beamform on the intersection of all stations in this list and the used stations in the observation. So, specifying all possible stations here means that all observation-stations are used. Specifying a small subset here means that only the observing-stations in this small list are used. By default we let COBALT beamform on the Core stations.",
+                                "minItems": 1
+                            }
+                        },
+                        "required": [
+                            "name"
+                        ],
+                        "title": "Beamformer Pipeline",
+                        "type": "object"
+                    },
+                    "stokes": {
+                        "default": "I",
+                        "description": "Which Stokes to produce",
+                        "enum": [
+                            "I",
+                            "IQUV",
+                            "XXYY"
+                        ],
+                        "title": "Stokes",
+                        "type": "string"
+                    },
+                    "stokes_settings": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "channels_per_subband": {
+                                "default": 1,
+                                "description": "Number of frequency bands per subband",
+                                "enum": [
+                                    1,
+                                    8,
+                                    16,
+                                    32,
+                                    64,
+                                    128,
+                                    256,
+                                    512,
+                                    1024
+                                ],
+                                "minimum": 1,
+                                "title": "Channels/subband",
+                                "type": "integer"
+                            },
+                            "quantisation": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "bits": {
+                                        "default": 8,
+                                        "description": "Number of bits for a single value",
+                                        "enum": [
+                                            8
+                                        ],
+                                        "title": "Bits/sample",
+                                        "type": "integer"
+                                    },
+                                    "enabled": {
+                                        "default": false,
+                                        "title": "Output quantisation into integers",
+                                        "type": "boolean"
+                                    },
+                                    "scale_max": {
+                                        "default": 5,
+                                        "description": "Cut off values above this treshold",
+                                        "title": "Maximum value",
+                                        "type": "number"
+                                    },
+                                    "scale_min": {
+                                        "default": -5,
+                                        "description": "Cut off values below this treshold",
+                                        "title": "Minimum value",
+                                        "type": "number"
+                                    }
+                                },
+                                "required": [
+                                    "enabled",
+                                    "bits",
+                                    "scale_min",
+                                    "scale_max"
+                                ],
+                                "title": "Output quantisation settings",
+                                "type": "object"
+                            },
+                            "stokes": {
+                                "$ref": "#/definitions/stokes",
+                                "default": "I"
+                            },
+                            "subbands_per_file": {
+                                "default": 488,
+                                "description": "The maximum number of subbands to write in each output dataproduct.",
+                                "maximum": 488,
+                                "minimum": 1,
+                                "title": "Subbands per file",
+                                "type": "integer"
+                            },
+                            "time_integration_factor": {
+                                "default": 1,
+                                "description": "The number of samples to integrate over",
+                                "maximum": 12288,
+                                "minimum": 1,
+                                "title": "Time integration",
+                                "type": "integer"
+                            }
+                        },
+                        "required": [
+                            "stokes",
+                            "time_integration_factor",
+                            "channels_per_subband"
+                        ],
+                        "type": "object"
+                    },
+                    "subband_selection": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "list": {
+                                "additionalItems": false,
+                                "default": [],
+                                "description": "If method is 'select subset', only beamform these subbands, and only if they occur in the SAP.",
+                                "items": {
+                                    "maximum": 511,
+                                    "minimum": 0,
+                                    "title": "Subband",
+                                    "type": "integer"
+                                },
+                                "minItems": 0,
+                                "title": "Subset selection",
+                                "type": "array"
+                            },
+                            "method": {
+                                "default": "copy",
+                                "description": "How to select the subbands to beam form",
+                                "enum": [
+                                    "copy",
+                                    "largest continuous subset",
+                                    "select subset"
+                                ],
+                                "title": "Method",
+                                "type": "string"
+                            }
+                        },
+                        "required": [
+                            "method"
+                        ],
+                        "title": "Subband selection",
+                        "type": "object"
+                    },
+                    "calibrator": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "autoselect": {
+                                "default": true,
+                                "description": "Auto-select calibrator based on elevation",
+                                "title": "Auto-select",
+                                "type": "boolean"
+                            },
+                            "name": {
+                                "default": "calibrator",
+                                "description": "Name of the calibrator SAP",
+                                "title": "Name",
+                                "type": "string"
+                            },
+                            "pointing": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/8#/definitions/pointing",
+                                "default": {},
+                                "description": "Manually selected calibrator",
+                                "title": "Digital pointing"
+                            }
+                        },
+                        "required": [
+                            "autoselect",
+                            "pointing",
+                            "name"
+                        ],
+                        "type": "object"
+                    },
+                    "correlator": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "channels_per_subband": {
+                                "default": 64,
+                                "description": "Number of frequency bands per subband",
+                                "enum": [
+                                    8,
+                                    16,
+                                    32,
+                                    64,
+                                    128,
+                                    256,
+                                    512,
+                                    1024
+                                ],
+                                "minimum": 8,
+                                "title": "Channels/subband",
+                                "type": "integer"
+                            },
+                            "integration_time": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/datetime/9#/definitions/timedelta",
+                                "default": 1,
+                                "description": "Desired integration period (seconds)",
+                                "minimum": 0.1,
+                                "title": "Integration time"
+                            },
+                            "storage_cluster": {
+                                "default": "CEP4",
+                                "description": "Cluster to write output to",
+                                "enum": [
+                                    "CEP4",
+                                    "DragNet"
+                                ],
+                                "title": "Storage cluster",
+                                "type": "string"
+                            },
+                            "topocentric_frequency_correction": {
+                                "default": false,
+                                "description": "Correct frequencies for the Doppler shift caused by the Earth's rotation.",
+                                "title": "Topocentric Frequency Correction",
+                                "type": "boolean"
+                            }
+                        }
+                    },
+                    "timedelta": {
+                        "default": 0,
+                        "description": "A time duration or delta expressed in seconds",
+                        "type": "number"
+                    },
+                    "timestamp": {
+                        "default": "1970-01-01T00:00:00Z",
+                        "description": "A timestamp defined in UTC",
+                        "format": "date-time",
+                        "pattern": "\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d(\\.\\d+)?Z?",
+                        "type": "string"
+                    },
+                    "timewindow": {
+                        "additionalProperties": false,
+                        "description": "A timewindow interval: [from, to)",
+                        "properties": {
+                            "from": {
+                                "$ref": "#/definitions/timestamp"
+                            },
+                            "to": {
+                                "$ref": "#/definitions/timestamp"
+                            }
+                        },
+                        "required": [
+                            "from",
+                            "to"
+                        ],
+                        "type": "object"
+                    },
+                    "lofar2antennafield": {
+                        "additionalProperties": false,
+                        "properties": {
+                            "SAPs": {
+                                "default": [
+                                    {}
+                                ],
+                                "items": {
+                                    "sap": {
+                                        "default": {},
+                                        "properties": {
+                                            "pointing": {
+                                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/9#/definitions/pointing",
+                                                "default": {}
+                                            },
+                                            "subbands": {
+                                                "default": [
+                                                    0
+                                                ],
+                                                "items": {
+                                                    "maximum": 511,
+                                                    "minimum": 0,
+                                                    "type": "number"
+                                                },
+                                                "minItems": 1,
+                                                "type": "array"
+                                            }
+                                        },
+                                        "required": [
+                                            "subbands",
+                                            "pointing"
+                                        ],
+                                        "type": "object"
+                                    }
+                                },
+                                "minItems": 1,
+                                "type": "array"
+                            },
+                            "antenna_field": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/10/#/definitions/antenna_field",
+                                "default": "HBA"
+                            },
+                            "antenna_set": {
+                                "default": "ALL",
+                                "description": "Fields & antennas to use",
+                                "enum": [
+                                    "ALL",
+                                    "INNER",
+                                    "OUTER",
+                                    "SPARSE_EVEN",
+                                    "SPARSE_ODD"
+                                ],
+                                "type": "string"
+                            },
+                            "lead_time": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/datetime/10#/definitions/timedelta",
+                                "default": 2,
+                                "description": "Number of seconds to start before the provided start time, to account for initialising the on-line signal chain, and for possibly negative geometrical delay compensation.",
+                                "minimum": 0
+                            },
+                            "filter": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/10/#/definitions/filter",
+                                "default": "HBA_110_190"
+                            },
+                            "first_beamlet": {
+                                "default": 0,
+                                "minimum": 0,
+                                "type": "number"
+                            },
+                            "observation_id": {
+                                "default": 1,
+                                "minimum": 1,
+                                "type": "number"
+                            },
+                            "start_time": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/datetime/10#/definitions/timestamp"
+                            },
+                            "stop_time": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/datetime/10#/definitions/timestamp",
+                                "default": "2100-01-01T00:00:00Z"
+                            },
+                            "HBA": {
+                                "type": "object",
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "tile_beam": {
+                                        "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/9#/definitions/pointing",
+                                        "default": {}
+                                    },
+                                    "DAB_filter": {
+                                        "type": "boolean",
+                                        "default": false,
+                                        "description": "Enable hardware filter on DAB frequencies"
+                                    },
+                                    "element_selection": {
+                                        "type": "string",
+                                        "default": "ALL",
+                                        "description": "Which element(s) to enable in each tile",
+                                        "enum": [
+                                            "ALL",
+                                            "GENERIC_201512"
+                                        ]
+                                    }
+                                }
+                            },
+                            "dithering": {
+                                "type": "object",
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "enabled": {
+                                        "type": "boolean",
+                                        "default": false
+                                    },
+                                    "power": {
+                                        "type": "number",
+                                        "description": "Power of dithering signal, in dBm",
+                                        "minimum": -25,
+                                        "maximum": -4,
+                                        "default": -4
+                                    },
+                                    "frequency": {
+                                        "type": "number",
+                                        "description": "Frequency of dithering signal, in Hz",
+                                        "default": 102000000
+                                    }
+                                }
+                            }
+                        },
+                        "required": [
+                            "observation_id",
+                            "stop_time",
+                            "antenna_field",
+                            "antenna_set",
+                            "filter",
+                            "SAPs"
+                        ],
+                        "title": "lofar2antennafield",
+                        "type": "object",
+                        "version": 2
+                    },
+                    "cluster_resources": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "description": "Which cluster resources to claim for this pipeline.",
+                        "properties": {
+                            "cores_per_task": {
+                                "default": 2,
+                                "description": "Number of cores to reserve for each process in the pipeline.",
+                                "maximum": 24,
+                                "minimum": 1,
+                                "title": "Cores/task",
+                                "type": "integer"
+                            },
+                            "parallel_tasks": {
+                                "default": 122,
+                                "description": "Maximum number of tasks to run in parallel. Determines the size of the reservation. A smaller reservation results in a longer pipeline run. A bigger reservation results in more in resource waste.",
+                                "maximum": 488,
+                                "minimum": 1,
+                                "title": "Max parallel tasks",
+                                "type": "integer"
+                            },
+                            "where": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "description": "Where to run this pipeline.",
+                                "properties": {
+                                    "cluster": {
+                                        "default": "CEP4",
+                                        "enum": [
+                                            "CEP4"
+                                        ],
+                                        "title": "Cluster",
+                                        "type": "string"
+                                    },
+                                    "partition": {
+                                        "default": "cpu",
+                                        "enum": [
+                                            "cpu",
+                                            "gpu",
+                                            "testing"
+                                        ],
+                                        "title": "Partition",
+                                        "type": "string"
+                                    }
+                                },
+                                "required": [
+                                    "cluster",
+                                    "partition"
+                                ],
+                                "title": "Where",
+                                "type": "object"
+                            }
+                        },
+                        "required": [
+                            "where",
+                            "cores_per_task",
+                            "parallel_tasks"
+                        ],
+                        "title": "Cluster resources",
+                        "type": "object"
+                    },
+                    "demix_strategy": {
+                        "default": "auto",
+                        "enum": [
+                            "auto",
+                            "yes",
+                            "no"
+                        ],
+                        "type": "string"
+                    },
+                    "software_version": {
+                        "default": "lofar-pipeline:latest",
+                        "description": "The version/tag of the pipeline that should be used",
+                        "type": "string"
+                    },
+                    "pointing": {
+                        "additionalProperties": false,
+                        "properties": {
+                            "angle1": {
+                                "default": 0.6624317181687094,
+                                "description": "First angle (e.g. RA)",
+                                "title": "Angle 1",
+                                "type": "number"
+                            },
+                            "angle2": {
+                                "default": 1.5579526427549426,
+                                "description": "Second angle (e.g. DEC)",
+                                "title": "Angle 2",
+                                "type": "number"
+                            },
+                            "direction_type": {
+                                "default": "J2000",
+                                "description": "",
+                                "enum": [
+                                    "J2000",
+                                    "AZELGEO",
+                                    "LMN",
+                                    "SUN",
+                                    "MOON",
+                                    "MERCURY",
+                                    "VENUS",
+                                    "MARS",
+                                    "JUPITER",
+                                    "SATURN",
+                                    "URANUS",
+                                    "NEPTUNE",
+                                    "PLUTO"
+                                ],
+                                "title": "Reference frame",
+                                "type": "string"
+                            },
+                            "target": {
+                                "default": "_target_name_",
+                                "description": "Description of where this beam points at",
+                                "minLength": 1,
+                                "title": "Target",
+                                "type": "string"
+                            }
+                        },
+                        "required": [
+                            "angle1",
+                            "angle2",
+                            "target"
+                        ],
+                        "type": "object"
+                    },
+                    "purpose": {
+                        "default": "target",
+                        "description": "The intended use of this pointing: calibrator, target or all sky",
+                        "enum": [
+                            "calibrator",
+                            "target",
+                            "all sky"
+                        ],
+                        "type": "string"
+                    },
+                    "QA": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "description": "Perform all Quality Assurance (QA) tasks, including file conversion and plotting.",
+                        "properties": {
+                            "file_conversion": {
+                                "$ref": "#/definitions/file_conversion",
+                                "default": {}
+                            },
+                            "inspection_plots": {
+                                "$ref": "#/definitions/inspection_plots",
+                                "default": "msplots"
+                            },
+                            "plots": {
+                                "$ref": "#/definitions/plots",
+                                "default": {}
+                            }
+                        },
+                        "required": [
+                            "file_conversion",
+                            "plots",
+                            "inspection_plots"
+                        ],
+                        "title": "QA",
+                        "type": "object"
+                    },
+                    "file_conversion": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "description": "Create a QA file for the observation",
+                        "properties": {
+                            "enabled": {
+                                "default": true,
+                                "description": "Do/Don't create a QA file for the observation",
+                                "title": "enabled",
+                                "type": "boolean"
+                            },
+                            "nr_of_subbands": {
+                                "default": -1,
+                                "description": "Keep this number of subbands from the observation in the QA file, or all if -1",
+                                "title": "#subbands",
+                                "type": "integer"
+                            },
+                            "nr_of_timestamps": {
+                                "default": 256,
+                                "description": "Extract this number of timestamps from the observation in the QA file (equidistantanly sampled, no averaging/interpolation)",
+                                "minimum": 1,
+                                "title": "#timestamps",
+                                "type": "integer"
+                            }
+                        },
+                        "required": [
+                            "enabled",
+                            "nr_of_subbands",
+                            "nr_of_timestamps"
+                        ],
+                        "title": "File Conversion",
+                        "type": "object"
+                    },
+                    "inspection_plots": {
+                        "decription": "Type of inspection plots to run",
+                        "default": "msplots",
+                        "enum": [
+                            "msplots",
+                            "dynspec",
+                            "none"
+                        ],
+                        "title": "Inspection Plots",
+                        "type": "string"
+                    },
+                    "plots": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "description": "Create dynamic spectrum plots",
+                        "properties": {
+                            "autocorrelation": {
+                                "default": true,
+                                "description": "Create autocorrelation plots for all stations",
+                                "title": "autocorrelation",
+                                "type": "boolean"
+                            },
+                            "crosscorrelation": {
+                                "default": true,
+                                "description": "Create crosscorrelation plots for all baselines",
+                                "title": "crosscorrelation",
+                                "type": "boolean"
+                            },
+                            "enabled": {
+                                "default": true,
+                                "description": "Do/Don't create plots from the QA file from the observation",
+                                "title": "enabled",
+                                "type": "boolean"
+                            }
+                        },
+                        "required": [
+                            "enabled",
+                            "autocorrelation",
+                            "crosscorrelation"
+                        ],
+                        "title": "Plots",
+                        "type": "object"
+                    },
+                    "SAPs": {
+                        "additionalItems": false,
+                        "default": [
+                            {}
+                        ],
+                        "description": "Station beams",
+                        "items": {
+                            "additionalProperties": false,
+                            "default": {},
+                            "headerTemplate": "{{ i0 }} - {{ self.name }}",
+                            "properties": {
+                                "digital_pointing": {
+                                    "$id": "#target_pointing",
+                                    "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/8#/definitions/pointing",
+                                    "default": {},
+                                    "title": "Digital pointing"
+                                },
+                                "name": {
+                                    "default": "_SAP_name_",
+                                    "description": "Identifier for this beam",
+                                    "minLength": 1,
+                                    "title": "Name",
+                                    "type": "string"
+                                },
+                                "subbands": {
+                                    "additionalItems": false,
+                                    "default": [
+                                        255
+                                    ],
+                                    "items": {
+                                        "maximum": 511,
+                                        "minimum": 0,
+                                        "title": "Subband",
+                                        "type": "integer"
+                                    },
+                                    "maxItems": 488,
+                                    "minItems": 1,
+                                    "title": "Subband list",
+                                    "type": "array"
+                                }
+                            },
+                            "required": [
+                                "name",
+                                "digital_pointing",
+                                "subbands"
+                            ],
+                            "title": "SAP",
+                            "type": "object"
+                        },
+                        "minItems": 0,
+                        "title": "SAPs",
+                        "type": "array"
+                    },
+                    "antenna_field": {
+                        "default": "HBA",
+                        "enum": [
+                            "LBA",
+                            "HBA",
+                            "HBA0",
+                            "HBA1"
+                        ],
+                        "title": "Antenna Field",
+                        "type": "string"
+                    },
+                    "antenna_set": {
+                        "default": "HBA_DUAL",
+                        "description": "Fields & antennas to use",
+                        "enum": [
+                            "HBA_DUAL",
+                            "HBA_DUAL_INNER",
+                            "HBA_ONE",
+                            "HBA_ONE_INNER",
+                            "HBA_ZERO",
+                            "HBA_ZERO_INNER",
+                            "LBA_INNER",
+                            "LBA_OUTER",
+                            "LBA_SPARSE_EVEN",
+                            "LBA_SPARSE_ODD",
+                            "LBA_ALL"
+                        ],
+                        "title": "Antenna set",
+                        "type": "string"
+                    },
+                    "antenna_type": {
+                        "default": "HBA",
+                        "enum": [
+                            "LBA",
+                            "HBA"
+                        ],
+                        "title": "Antenna Type",
+                        "type": "string"
+                    },
+                    "antennas": {
+                        "description": "Structure to describe a set of specific antennafields",
+                        "properties": {
+                            "fields": {
+                                "default": [],
+                                "items": {
+                                    "properties": {
+                                        "field": {
+                                            "default": "HBA",
+                                            "enum": [
+                                                "LBA",
+                                                "HBA",
+                                                "HBA0",
+                                                "HBA1"
+                                            ],
+                                            "title": "Field",
+                                            "type": "string"
+                                        },
+                                        "station": {
+                                            "$ref": "#/definitions/station"
+                                        },
+                                        "type": {
+                                            "default": "HBA",
+                                            "enum": [
+                                                "LBA",
+                                                "HBA"
+                                            ],
+                                            "title": "Type",
+                                            "type": "string"
+                                        }
+                                    },
+                                    "required": [
+                                        "station",
+                                        "field",
+                                        "type"
+                                    ],
+                                    "title": "Field",
+                                    "type": "object"
+                                },
+                                "title": "Fields",
+                                "type": "array"
+                            },
+                            "set": {
+                                "$ref": "#/definitions/antenna_set",
+                                "default": "HBA_DUAL"
+                            }
+                        },
+                        "required": [
+                            "fields"
+                        ],
+                        "title": "Antennas",
+                        "type": "object"
+                    },
+                    "filter": {
+                        "default": "HBA_110_190",
+                        "description": "Must match antenna type",
+                        "enum": [
+                            "LBA_10_90",
+                            "LBA_30_90",
+                            "HBA_110_190",
+                            "HBA_210_250"
+                        ],
+                        "title": "Band-pass filter",
+                        "type": "string"
+                    },
+                    "max_number_of_missing_stations": {
+                        "default": 0,
+                        "description": "Maximum number of stations that can be omitted from a group (due to maintenance for example)",
+                        "minimum": 0,
+                        "title": "Maximum number of stations to omit",
+                        "type": "integer"
+                    },
+                    "station": {
+                        "description": "These are the LOFAR stations",
+                        "enum": [
+                            "CS001",
+                            "CS002",
+                            "CS003",
+                            "CS004",
+                            "CS005",
+                            "CS006",
+                            "CS007",
+                            "CS011",
+                            "CS013",
+                            "CS017",
+                            "CS021",
+                            "CS024",
+                            "CS026",
+                            "CS028",
+                            "CS030",
+                            "CS031",
+                            "CS032",
+                            "CS101",
+                            "CS103",
+                            "CS201",
+                            "CS301",
+                            "CS302",
+                            "CS401",
+                            "CS501",
+                            "RS106",
+                            "RS205",
+                            "RS208",
+                            "RS210",
+                            "RS305",
+                            "RS306",
+                            "RS307",
+                            "RS310",
+                            "RS406",
+                            "RS407",
+                            "RS409",
+                            "RS503",
+                            "RS508",
+                            "RS509",
+                            "DE601",
+                            "DE602",
+                            "DE603",
+                            "DE604",
+                            "DE605",
+                            "FR606",
+                            "SE607",
+                            "UK608",
+                            "DE609",
+                            "PL610",
+                            "PL611",
+                            "PL612",
+                            "IE613",
+                            "LV614"
+                        ],
+                        "title": "Station",
+                        "type": "string"
+                    },
+                    "station_group": {
+                        "anyOf": [
+                            {
+                                "additionalProperties": false,
+                                "default": {
+                                    "max_nr_missing": 0,
+                                    "stations": [
+                                        "CS002",
+                                        "CS003",
+                                        "CS004",
+                                        "CS005",
+                                        "CS006",
+                                        "CS007"
+                                    ]
+                                },
+                                "description": "The group of all stations on the Superterp",
+                                "properties": {
+                                    "max_nr_missing": {
+                                        "$ref": "#/definitions/max_number_of_missing_stations"
+                                    },
+                                    "stations": {
+                                        "$ref": "#/definitions/station_list",
+                                        "enum": [
+                                            [
+                                                "CS002",
+                                                "CS003",
+                                                "CS004",
+                                                "CS005",
+                                                "CS006",
+                                                "CS007"
+                                            ]
+                                        ]
+                                    }
+                                },
+                                "required": [
+                                    "stations",
+                                    "max_nr_missing"
+                                ],
+                                "title": "Superterp",
+                                "type": "object"
+                            },
+                            {
+                                "additionalProperties": false,
+                                "default": {
+                                    "max_nr_missing": 4,
+                                    "stations": [
+                                        "CS001",
+                                        "CS002",
+                                        "CS003",
+                                        "CS004",
+                                        "CS005",
+                                        "CS006",
+                                        "CS007",
+                                        "CS011",
+                                        "CS013",
+                                        "CS017",
+                                        "CS021",
+                                        "CS024",
+                                        "CS026",
+                                        "CS028",
+                                        "CS030",
+                                        "CS031",
+                                        "CS032",
+                                        "CS101",
+                                        "CS103",
+                                        "CS201",
+                                        "CS301",
+                                        "CS302",
+                                        "CS401",
+                                        "CS501"
+                                    ]
+                                },
+                                "description": "The group of all Core stations",
+                                "properties": {
+                                    "max_nr_missing": {
+                                        "$ref": "#/definitions/max_number_of_missing_stations"
+                                    },
+                                    "stations": {
+                                        "$ref": "#/definitions/station_list",
+                                        "enum": [
+                                            [
+                                                "CS001",
+                                                "CS002",
+                                                "CS003",
+                                                "CS004",
+                                                "CS005",
+                                                "CS006",
+                                                "CS007",
+                                                "CS011",
+                                                "CS013",
+                                                "CS017",
+                                                "CS021",
+                                                "CS024",
+                                                "CS026",
+                                                "CS028",
+                                                "CS030",
+                                                "CS031",
+                                                "CS032",
+                                                "CS101",
+                                                "CS103",
+                                                "CS201",
+                                                "CS301",
+                                                "CS302",
+                                                "CS401",
+                                                "CS501"
+                                            ]
+                                        ]
+                                    }
+                                },
+                                "required": [
+                                    "stations",
+                                    "max_nr_missing"
+                                ],
+                                "title": "Core",
+                                "type": "object"
+                            },
+                            {
+                                "additionalProperties": false,
+                                "default": {
+                                    "max_nr_missing": 4,
+                                    "stations": [
+                                        "RS106",
+                                        "RS205",
+                                        "RS208",
+                                        "RS210",
+                                        "RS305",
+                                        "RS306",
+                                        "RS307",
+                                        "RS310",
+                                        "RS406",
+                                        "RS407",
+                                        "RS409",
+                                        "RS503",
+                                        "RS508",
+                                        "RS509"
+                                    ]
+                                },
+                                "description": "The group of all Dutch remote stations",
+                                "properties": {
+                                    "max_nr_missing": {
+                                        "$ref": "#/definitions/max_number_of_missing_stations"
+                                    },
+                                    "stations": {
+                                        "$ref": "#/definitions/station_list",
+                                        "enum": [
+                                            [
+                                                "RS106",
+                                                "RS205",
+                                                "RS208",
+                                                "RS210",
+                                                "RS305",
+                                                "RS306",
+                                                "RS307",
+                                                "RS310",
+                                                "RS406",
+                                                "RS407",
+                                                "RS409",
+                                                "RS503",
+                                                "RS508",
+                                                "RS509"
+                                            ]
+                                        ]
+                                    }
+                                },
+                                "required": [
+                                    "stations",
+                                    "max_nr_missing"
+                                ],
+                                "title": "Remote",
+                                "type": "object"
+                            },
+                            {
+                                "additionalProperties": false,
+                                "default": {
+                                    "max_nr_missing": 4,
+                                    "stations": [
+                                        "CS001",
+                                        "CS002",
+                                        "CS003",
+                                        "CS004",
+                                        "CS005",
+                                        "CS006",
+                                        "CS007",
+                                        "CS011",
+                                        "CS013",
+                                        "CS017",
+                                        "CS021",
+                                        "CS024",
+                                        "CS026",
+                                        "CS028",
+                                        "CS030",
+                                        "CS031",
+                                        "CS032",
+                                        "CS101",
+                                        "CS103",
+                                        "CS201",
+                                        "CS301",
+                                        "CS302",
+                                        "CS401",
+                                        "CS501",
+                                        "RS106",
+                                        "RS205",
+                                        "RS208",
+                                        "RS210",
+                                        "RS305",
+                                        "RS306",
+                                        "RS307",
+                                        "RS310",
+                                        "RS406",
+                                        "RS407",
+                                        "RS409",
+                                        "RS503",
+                                        "RS508",
+                                        "RS509"
+                                    ]
+                                },
+                                "description": "The group of all Dutch (Core + Remote) stations",
+                                "properties": {
+                                    "max_nr_missing": {
+                                        "$ref": "#/definitions/max_number_of_missing_stations"
+                                    },
+                                    "stations": {
+                                        "$ref": "#/definitions/station_list",
+                                        "enum": [
+                                            [
+                                                "CS001",
+                                                "CS002",
+                                                "CS003",
+                                                "CS004",
+                                                "CS005",
+                                                "CS006",
+                                                "CS007",
+                                                "CS011",
+                                                "CS013",
+                                                "CS017",
+                                                "CS021",
+                                                "CS024",
+                                                "CS026",
+                                                "CS028",
+                                                "CS030",
+                                                "CS031",
+                                                "CS032",
+                                                "CS101",
+                                                "CS103",
+                                                "CS201",
+                                                "CS301",
+                                                "CS302",
+                                                "CS401",
+                                                "CS501",
+                                                "RS106",
+                                                "RS205",
+                                                "RS208",
+                                                "RS210",
+                                                "RS305",
+                                                "RS306",
+                                                "RS307",
+                                                "RS310",
+                                                "RS406",
+                                                "RS407",
+                                                "RS409",
+                                                "RS503",
+                                                "RS508",
+                                                "RS509"
+                                            ]
+                                        ]
+                                    }
+                                },
+                                "required": [
+                                    "stations",
+                                    "max_nr_missing"
+                                ],
+                                "title": "Dutch",
+                                "type": "object"
+                            },
+                            {
+                                "additionalProperties": false,
+                                "default": {
+                                    "max_nr_missing": 2,
+                                    "stations": [
+                                        "DE601",
+                                        "DE602",
+                                        "DE603",
+                                        "DE604",
+                                        "DE605",
+                                        "DE609",
+                                        "FR606",
+                                        "SE607",
+                                        "UK608",
+                                        "PL610",
+                                        "PL611",
+                                        "PL612",
+                                        "IE613",
+                                        "LV614"
+                                    ]
+                                },
+                                "description": "The group of all international stations",
+                                "properties": {
+                                    "max_nr_missing": {
+                                        "$ref": "#/definitions/max_number_of_missing_stations"
+                                    },
+                                    "stations": {
+                                        "$ref": "#/definitions/station_list",
+                                        "enum": [
+                                            [
+                                                "DE601",
+                                                "DE602",
+                                                "DE603",
+                                                "DE604",
+                                                "DE605",
+                                                "DE609",
+                                                "FR606",
+                                                "SE607",
+                                                "UK608",
+                                                "PL610",
+                                                "PL611",
+                                                "PL612",
+                                                "IE613",
+                                                "LV614"
+                                            ]
+                                        ]
+                                    }
+                                },
+                                "required": [
+                                    "stations",
+                                    "max_nr_missing"
+                                ],
+                                "title": "International",
+                                "type": "object"
+                            },
+                            {
+                                "additionalProperties": false,
+                                "default": {
+                                    "max_nr_missing": 1,
+                                    "stations": [
+                                        "DE601",
+                                        "DE605"
+                                    ]
+                                },
+                                "description": "A subgroup of the international stations which are required when doing observation with international stations",
+                                "properties": {
+                                    "max_nr_missing": {
+                                        "$ref": "#/definitions/max_number_of_missing_stations"
+                                    },
+                                    "stations": {
+                                        "$ref": "#/definitions/station_list",
+                                        "enum": [
+                                            [
+                                                "DE601",
+                                                "DE605"
+                                            ]
+                                        ]
+                                    }
+                                },
+                                "required": [
+                                    "stations",
+                                    "max_nr_missing"
+                                ],
+                                "title": "International required",
+                                "type": "object"
+                            },
+                            {
+                                "additionalProperties": false,
+                                "default": {
+                                    "max_nr_missing": 6,
+                                    "stations": [
+                                        "CS001",
+                                        "CS002",
+                                        "CS003",
+                                        "CS004",
+                                        "CS005",
+                                        "CS006",
+                                        "CS007",
+                                        "CS011",
+                                        "CS013",
+                                        "CS017",
+                                        "CS021",
+                                        "CS024",
+                                        "CS026",
+                                        "CS028",
+                                        "CS030",
+                                        "CS031",
+                                        "CS032",
+                                        "CS101",
+                                        "CS103",
+                                        "CS201",
+                                        "CS301",
+                                        "CS302",
+                                        "CS401",
+                                        "CS501",
+                                        "RS106",
+                                        "RS205",
+                                        "RS208",
+                                        "RS210",
+                                        "RS305",
+                                        "RS306",
+                                        "RS307",
+                                        "RS310",
+                                        "RS406",
+                                        "RS407",
+                                        "RS409",
+                                        "RS503",
+                                        "RS508",
+                                        "RS509",
+                                        "DE601",
+                                        "DE602",
+                                        "DE603",
+                                        "DE604",
+                                        "DE605",
+                                        "DE609",
+                                        "FR606",
+                                        "SE607",
+                                        "UK608",
+                                        "PL610",
+                                        "PL611",
+                                        "PL612",
+                                        "IE613",
+                                        "LV614"
+                                    ]
+                                },
+                                "description": "The group of all (Core + Remote + International) stations",
+                                "properties": {
+                                    "max_nr_missing": {
+                                        "$ref": "#/definitions/max_number_of_missing_stations"
+                                    },
+                                    "stations": {
+                                        "$ref": "#/definitions/station_list",
+                                        "enum": [
+                                            [
+                                                "CS001",
+                                                "CS002",
+                                                "CS003",
+                                                "CS004",
+                                                "CS005",
+                                                "CS006",
+                                                "CS007",
+                                                "CS011",
+                                                "CS013",
+                                                "CS017",
+                                                "CS021",
+                                                "CS024",
+                                                "CS026",
+                                                "CS028",
+                                                "CS030",
+                                                "CS031",
+                                                "CS032",
+                                                "CS101",
+                                                "CS103",
+                                                "CS201",
+                                                "CS301",
+                                                "CS302",
+                                                "CS401",
+                                                "CS501",
+                                                "RS106",
+                                                "RS205",
+                                                "RS208",
+                                                "RS210",
+                                                "RS305",
+                                                "RS306",
+                                                "RS307",
+                                                "RS310",
+                                                "RS406",
+                                                "RS407",
+                                                "RS409",
+                                                "RS503",
+                                                "RS508",
+                                                "RS509",
+                                                "DE601",
+                                                "DE602",
+                                                "DE603",
+                                                "DE604",
+                                                "DE605",
+                                                "DE609",
+                                                "FR606",
+                                                "SE607",
+                                                "UK608",
+                                                "PL610",
+                                                "PL611",
+                                                "PL612",
+                                                "IE613",
+                                                "LV614"
+                                            ]
+                                        ]
+                                    }
+                                },
+                                "required": [
+                                    "stations",
+                                    "max_nr_missing"
+                                ],
+                                "title": "All",
+                                "type": "object"
+                            },
+                            {
+                                "additionalProperties": false,
+                                "default": {
+                                    "max_nr_missing": 0,
+                                    "stations": [
+                                        "CS001"
+                                    ]
+                                },
+                                "description": "A custom group of stations which can be defined by the user",
+                                "properties": {
+                                    "max_nr_missing": {
+                                        "$ref": "#/definitions/max_number_of_missing_stations"
+                                    },
+                                    "stations": {
+                                        "$ref": "#/definitions/station_list"
+                                    }
+                                },
+                                "required": [
+                                    "stations",
+                                    "max_nr_missing"
+                                ],
+                                "title": "Custom",
+                                "type": "object"
+                            }
+                        ],
+                        "default": {
+                            "max_nr_missing": 1,
+                            "stations": [
+                                "CS002",
+                                "CS003",
+                                "CS004",
+                                "CS005",
+                                "CS006",
+                                "CS007"
+                            ]
+                        },
+                        "description": "A set of predefined list of stations, and a constraint on how many stations are allowed to be missing (due to maintenance for example)",
+                        "title": "Station group",
+                        "type": "object"
+                    },
+                    "station_groups": {
+                        "additionalItems": false,
+                        "additionalProperties": false,
+                        "default": [
+                            {
+                                "max_nr_missing": 1,
+                                "stations": [
+                                    "CS002",
+                                    "CS003",
+                                    "CS004",
+                                    "CS005",
+                                    "CS006",
+                                    "CS007"
+                                ]
+                            }
+                        ],
+                        "description": "One or more predefined or custom groups of stations",
+                        "items": {
+                            "$ref": "#/definitions/station_group"
+                        },
+                        "minItems": 1,
+                        "title": "Station groups",
+                        "type": "array"
+                    },
+                    "station_list": {
+                        "additionalItems": false,
+                        "additionalProperties": false,
+                        "default": [],
+                        "items": {
+                            "$ref": "#/definitions/station"
+                        },
+                        "minItems": 0,
+                        "type": "array",
+                        "uniqueItems": true
+                    },
+                    "station_configuration": {
+                        "default": {},
+                        "properties": {
+                            "SAPs": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/7#/definitions/SAPs",
+                                "default": [
+                                    {}
+                                ],
+                                "minItems": 1
+                            },
+                            "antenna_set": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/7#/definitions/antenna_set",
+                                "default": "HBA_DUAL"
+                            },
+                            "filter": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/7#/definitions/filter",
+                                "default": "HBA_110_190"
+                            },
+                            "station_groups": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/stations/7#/definitions/station_groups",
+                                "default": [
+                                    {
+                                        "max_nr_missing": 4,
+                                        "stations": [
+                                            "CS001",
+                                            "CS002",
+                                            "CS003",
+                                            "CS004",
+                                            "CS005",
+                                            "CS006",
+                                            "CS007",
+                                            "CS011",
+                                            "CS013",
+                                            "CS017",
+                                            "CS021",
+                                            "CS024",
+                                            "CS026",
+                                            "CS028",
+                                            "CS030",
+                                            "CS031",
+                                            "CS032",
+                                            "CS101",
+                                            "CS103",
+                                            "CS201",
+                                            "CS301",
+                                            "CS302",
+                                            "CS401",
+                                            "CS501"
+                                        ]
+                                    }
+                                ]
+                            },
+                            "tile_beam": {
+                                "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pointing/7#/definitions/pointing",
+                                "default": {},
+                                "description": "HBA only",
+                                "title": "Tile beam"
+                            }
+                        },
+                        "required": [
+                            "station_groups",
+                            "antenna_set",
+                            "filter",
+                            "SAPs"
+                        ],
+                        "title": "station_configuration",
+                        "type": "object"
+                    },
+                    "task_connector": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "description": "A task connector describes what a task can take as input and produces as output.",
+                        "properties": {
+                            "dataformat": {
+                                "description": "The data type of a task connector describes in which format the data is produced/consumed.",
+                                "enum": [
+                                    "MeasurementSet",
+                                    "Beamformed",
+                                    "QA_HDF5",
+                                    "QA_Plots",
+                                    "pulp summary",
+                                    "pulp analysis"
+                                ],
+                                "title": "Data Format",
+                                "type": "string"
+                            },
+                            "datatype": {
+                                "description": "The data type of a task connector describes its what kind of data is produced/consumed.",
+                                "enum": [
+                                    "visibilities",
+                                    "time series",
+                                    "instrument model",
+                                    "image",
+                                    "quality",
+                                    "pulsar profile"
+                                ],
+                                "title": "Data Type",
+                                "type": "string"
+                            },
+                            "role": {
+                                "description": "The role of a task connector describes its intended use.",
+                                "enum": [
+                                    "correlator",
+                                    "beamformer",
+                                    "inspection plots",
+                                    "calibrator",
+                                    "target",
+                                    "any"
+                                ],
+                                "title": "Role",
+                                "type": "string"
+                            }
+                        },
+                        "required": [
+                            "role",
+                            "datatype",
+                            "dataformat"
+                        ],
+                        "type": "object"
+                    }
+                },
+                "properties": {
+                    "cluster_resources": {
+                        "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pipeline/7#/definitions/cluster_resources",
+                        "default": {}
+                    },
+                    "dspsr": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "digifil": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "description": "Processes single pulses in CV data if single-pulse search is enabled",
+                                "properties": {
+                                    "channels_per_part": {
+                                        "default": 512,
+                                        "description": "Number of frequency channels per part (multiple of subbands per part).",
+                                        "maximum": 512,
+                                        "minimum": 1,
+                                        "title": "Nr of Frequency Channels",
+                                        "type": "integer"
+                                    },
+                                    "coherent_dedispersion": {
+                                        "default": true,
+                                        "title": "Coherent Dedispersion",
+                                        "type": "boolean"
+                                    },
+                                    "dm": {
+                                        "default": -1,
+                                        "desciption": "Dispersion Measure (-1 for none)",
+                                        "minimum": -1,
+                                        "title": "DM",
+                                        "type": "number"
+                                    },
+                                    "integration_time_factor": {
+                                        "default": 4,
+                                        "minimum": 1,
+                                        "title": "Integration time",
+                                        "type": "integer"
+                                    }
+                                },
+                                "title": "Digifil",
+                                "type": "object"
+                            },
+                            "enabled": {
+                                "default": true,
+                                "title": "Enabled",
+                                "type": "boolean"
+                            },
+                            "filterbank": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "channels_per_part": {
+                                        "default": 120,
+                                        "description": "Number of frequency channels per part (multiple of subbands per part).",
+                                        "maximum": 512,
+                                        "minimum": 1,
+                                        "title": "Nr of Frequency Channels",
+                                        "type": "integer"
+                                    },
+                                    "coherent_dedispersion": {
+                                        "default": true,
+                                        "title": "Coherent Dedispersion",
+                                        "type": "boolean"
+                                    },
+                                    "enabled": {
+                                        "default": false,
+                                        "title": "Enabled",
+                                        "type": "boolean"
+                                    }
+                                },
+                                "title": "Create extra channels",
+                                "type": "object"
+                            },
+                            "optimise_period_dm": {
+                                "default": true,
+                                "title": "Optimise period & DM",
+                                "type": "boolean"
+                            },
+                            "rfi_excision": {
+                                "default": true,
+                                "description": "Excise/clean/remove detected RFI",
+                                "title": "RFI excision",
+                                "type": "boolean"
+                            },
+                            "single_pulse_subintegration": {
+                                "default": false,
+                                "description": "Create single-pulse subintegrations with inter-channel dispersion delays removed.",
+                                "title": "Single pulse subintegration",
+                                "type": "boolean"
+                            },
+                            "subintegration_length": {
+                                "default": -1,
+                                "minimum": -1,
+                                "title": "Subintegration length",
+                                "type": "integer"
+                            },
+                            "number_of_bins": {
+                                "minimum": 2,
+                                "title": "Number of bins",
+                                "type": "integer"
+                            }
+                        },
+                        "title": "DSPSR",
+                        "type": "object",
+                        "required": [
+                            "enabled"
+                        ]
+                    },
+                    "output": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "dynamic_spectrum": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "enabled": {
+                                        "default": false,
+                                        "title": "Enabled",
+                                        "type": "boolean"
+                                    },
+                                    "time_average": {
+                                        "default": 0.5,
+                                        "description": "Time averaging, in seconds.",
+                                        "minimum": 0.01,
+                                        "title": "Time average",
+                                        "type": "number"
+                                    }
+                                },
+                                "title": "Dynamic Spectrum",
+                                "type": "object"
+                            },
+                            "quantisation": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "description": "Quantise output into 8-bit samples",
+                                "properties": {
+                                    "enabled": {
+                                        "default": false,
+                                        "title": "Enabled",
+                                        "type": "boolean"
+                                    },
+                                    "scale": {
+                                        "default": 5,
+                                        "description": "Conversion sigma to use when converting to 8-bit samples",
+                                        "minimum": 1,
+                                        "title": "Conversion sigma",
+                                        "type": "number"
+                                    }
+                                },
+                                "title": "Quantisation",
+                                "type": "object"
+                            }
+                        },
+                        "title": "Output",
+                        "type": "object"
+                    },
+                    "presto": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "fold_profile": {
+                                "default": true,
+                                "description": "Fold the pulsar profile",
+                                "title": "Fold",
+                                "type": "boolean"
+                            },
+                            "input": {
+                                "additionalProperties": false,
+                                "properties": {
+                                    "decode_sigma": {
+                                        "default": 3,
+                                        "description": "Sigma threshold for decoding",
+                                        "minimum": 1,
+                                        "title": "Decode sigma",
+                                        "type": "number"
+                                    },
+                                    "nr_blocks": {
+                                        "default": 100,
+                                        "description": "Number of blocks to read at a time",
+                                        "minimum": 1,
+                                        "title": "Nr of blocks",
+                                        "type": "integer"
+                                    },
+                                    "samples_per_block": {
+                                        "default": 8192,
+                                        "minimum": 16,
+                                        "title": "Block size (samples)",
+                                        "type": "integer"
+                                    }
+                                },
+                                "title": "Input",
+                                "type": "object"
+                            },
+                            "prepdata": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "dm": {
+                                        "default": -1,
+                                        "desciption": "Dispersion Measure (-1 for none)",
+                                        "minimum": -1,
+                                        "title": "DM",
+                                        "type": "number"
+                                    }
+                                },
+                                "title": "prepdata",
+                                "type": "object"
+                            },
+                            "prepfold": {
+                                "default": true,
+                                "title": "Enable prepfold",
+                                "type": "boolean"
+                            },
+                            "rfifind": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "blocks": {
+                                        "default": 16,
+                                        "minimum": 1,
+                                        "title": "blocks",
+                                        "type": "integer"
+                                    }
+                                },
+                                "title": "rfifind",
+                                "type": "object"
+                            },
+                            "rrats": {
+                                "additionalProperties": false,
+                                "default": {},
+                                "properties": {
+                                    "dm_range": {
+                                        "default": 5,
+                                        "minimum": 0,
+                                        "title": "DM range",
+                                        "type": "number"
+                                    },
+                                    "enabled": {
+                                        "default": false,
+                                        "title": "Enabled",
+                                        "type": "boolean"
+                                    }
+                                },
+                                "title": "RRATs analysis",
+                                "type": "object"
+                            }
+                        },
+                        "title": "PRESTO",
+                        "type": "object"
+                    },
+                    "pulsar": {
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "name": {
+                                "default": "",
+                                "description": "Name of the pulsar to fold, if strategy=manual",
+                                "title": "Name",
+                                "type": "string"
+                            },
+                            "strategy": {
+                                "default": "manual",
+                                "description": "How to look up the pulsar to fold",
+                                "enum": [
+                                    "manual",
+                                    "meta",
+                                    "sapfind",
+                                    "sapfind3",
+                                    "tabfind",
+                                    "tabfind+"
+                                ],
+                                "enum_titles": [
+                                    "Pulsar name specified here",
+                                    "SAP target is pulsar name",
+                                    "Brightest known pulsar in SAP",
+                                    "Brightest 3 known pulsars in SAP",
+                                    "Brightest known pulsar in TAB",
+                                    "Brightest 3 known pulsars in TAB"
+                                ],
+                                "title": "Strategy",
+                                "type": "string"
+                            }
+                        },
+                        "title": "Pulsar to fold",
+                        "type": "object"
+                    },
+                    "single_pulse_search": {
+                        "default": false,
+                        "description": "Instructs PRESTO to process single pulses, and enables Digifil for CV data",
+                        "title": "Single-pulse search",
+                        "type": "boolean"
+                    },
+                    "software_version": {
+                        "$ref": "https://tmss.lofar.eu/api/schemas/commonschematemplate/pipeline/9#/definitions/software_version",
+                        "default": "lofar-pulp:tmss"
+                    }
+                }
+            },
+            "type": "http://localhost:3000/api/task_type/pipeline",
+            "type_value": "pipeline"
         }
     ]
 }
\ No newline at end of file
diff --git a/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/helpers/toolbar/filters.helper.test.js b/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/helpers/toolbar/filters.helper.test.js
index f89eeb225ac..8238465b1c2 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/helpers/toolbar/filters.helper.test.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/routes/Timeline/helpers/toolbar/filters.helper.test.js
@@ -209,6 +209,7 @@ describe("getTimelineItem", () => {
             desc: "test blueprint",
             title: "",
             project: "bugs",
+            project_task_group: "bugs#2023-07-06#tasks",
             project_group: "bugs#2023-07-06",
             name: "the_fix_1",
             name_group:"the_fix_1#2023-07-06",
@@ -265,6 +266,7 @@ describe("getTimelineItem", () => {
             duration: "1.00Hrs",
             priority_queue: "A",
              priority_queue_group: "A#2023-07-06",
+             project_task_group: "bugs#2023-07-06#tasks",
             on_sky_duration: "2.00Hrs",
             start_time: moment("2023-07-06 10:00:00Z"),
             end_time: moment("2023-07-06 12:00:00Z"),
@@ -312,6 +314,8 @@ describe('getReservationItem', () => {
         end_time: moment('2023-08-08 12:00:00'),
         real_end_time: "2023-08-08 12:00:00",
         group: "32: Aug 08 - Tue",
+        groupingSuffix: "#2023-08-08",
+        project_task_group: "123#2023-08-08",
         project_group: "123#2023-08-08",
         name: 'green grass',
         name_group: "green grass#2023-08-08",
@@ -327,7 +331,14 @@ describe('getReservationItem', () => {
         stations: '-',
         reservationId:'1',
         reason:'mowing',
-        planned: 'yes'
+        planned: 'yes',
+        specified_stations: undefined,
+        reservation_start_time: moment('2023-08-08 10:00:00'),
+        stationsgroups:  {
+                 CS: 0,
+                 IS: 0,
+                 RS: 0,
+               },
     };
 
 
@@ -342,9 +353,20 @@ describe('getReservationItem', () => {
 
 
     it('should return the correct reservation item (with stations)', () => {
-        reservation.specifications_doc.resources = { specified_stations: ['CS001', 'CS002', 'CS003'] }
+        reservation.specifications_doc.resources = { stations: ['CS001', 'CS002' ,'CS003'] }
 
-        expectedItem.stations = 'CS001,CS002,CS003'
+        expectedItem.stations = 'CS001,CS002,CS003';
+        expectedItem.specified_stations =  [
+                 "CS001",
+                 "CS002",
+                 "CS003",
+               ];
+
+               expectedItem.stationsgroups=  {
+                CS: 3,
+                IS: 0,
+                RS: 0,
+              };
 
         const result = getReservationItem(reservation, 0, displayDate);
 
@@ -383,7 +405,7 @@ describe('getReservationTypeColorIndex', () => {
 
     it('should return the correct color for not fixed time and not dynamic schedulability', () => {
         const schedulability = { fixed_time: false, dynamic: false };
-        const expectedColor = { bgColor: 'black', color: 'white' };
+        const expectedColor = { bgColor: '#212121', color: 'white' };
 
         const result = getReservationTypeColorIndex(schedulability);
 
@@ -392,7 +414,7 @@ describe('getReservationTypeColorIndex', () => {
 
     it('should return the correct color for undefined schedulability', () => {
         const schedulability = {};
-        const expectedColor = { bgColor: 'black', color: 'white' };
+        const expectedColor = { bgColor: '#212121', color: 'white' };
 
         const result = getReservationTypeColorIndex(schedulability);
 
-- 
GitLab