giseldo/neodataset huggingface dataset:
Ingestion of events from multiple catalogs.

Visualize the earthquake from different files being in the same S3 bucket:
- output/geoweb/events_usgs.csv
- output/geoweb/events_knmi.csv
- output/geoweb/events_emsc.csv (not sure it will be there)

Make sure the files are visualized with different symbols and that legends are shown with matching symbols.

Story points: 8.0
Additional datalayers for BES Dashboard

In https://gitlab.com/opengeoweb/geoweb-assets/-/issues/1739/ and initial preset is described. This issue will add additional datalayers to view 1.

Default not visible. Data from ECMWF(KNMI)WMS.

1. 10 m wind gust (interval 6 hour)
1. total precipitation (interval 0 hour)
1. lightning flash density past 6 uur
1. 2m temperature

Story points: 2.0
FE: Taf fix blue background of textfield

Sometimes some textfields (Prob & Change in screenshot) get a blue background color. Should be removed:

- Don't mess with default browser behavior
- See if we can make the blue only visible on the textfield itself 

Timeboxed: 4h


![Screenshot_2022-03-24_at_11.01.06](/uploads/ad890fc5208b5f206df68fead183ba5e/Screenshot_2022-03-24_at_11.01.06.png)

Story points: 4.0
FE: Taf responsive layout

Should be responsive. Mobile first! Make sure all main components scale well on small layouts (320 min). No custom code needed, MUI should needs some extra props. Only fix the main layout blocks in this ticket (main nav, loc nav etc)

- Also fix right aligned view fields

 ![Screenshot_2022-03-28_at_09.26.33](/uploads/f801016504f487f6358fb78516db68be/Screenshot_2022-03-28_at_09.26.33.png)

Story points: 8.0
FE: Taf align Taf (view) form

On large screens always left aligned, but the content should be right aligned. Maybe a max-width on view = "disabled" will fix this. Only for view=disabled

![Screenshot_2022-03-24_at_09.43.43](/uploads/1526385dfcd5051fc81b74782259fb98/Screenshot_2022-03-24_at_09.43.43.png)

Story points: 2.0
FE: TafLayout icons

The Icons of the taflayout don't reflect the correct status. Easy way of testing, is opening these two stories: `http://localhost:4500/?path=/story/components-taf-layout--taf-layout-dark-theme` and `http://localhost:4500/?path=/story/demo--taf-dialog-demo` and compare the status with the icons



OR the buttons are not correct: 

Old:
![Screenshot_2022-03-23_at_16.34.05](/uploads/4ba00233eb0a532b2f1accf920d00291/Screenshot_2022-03-23_at_16.34.05.png)

New:

![Screenshot_2022-03-23_at_16.22.48](/uploads/51a7f81d81815e6152d1c0f0b61931fd/Screenshot_2022-03-23_at_16.22.48.png)

Story points: 2.0
ADAGUC: Add the option to configure a fake time dimension for a layer

The seismic data for BES does not have a timestamp, but still we want to update the geoweb client automatically. 

Add a configuration option to adaguc-server to configure a fake time dimension for a layer. The start and end time can be the current time rounded to the specified time resolution. In case of PT1M (1 minute time interval) it will become:
`2022-03-21T13:52:00Z/2022-03-21T13:52:00Z/PT1M`

The client will update the layer in the map if this is updated every minute.

To demonstrate that this works: configure this option for the BES SEISMIC earthquakes layer.

Story points: 8.0
FE: Update theme succes color and use it in StatusIcon

Update the color with the new value, and use it in Taf StatusIcon. Create a new color key `functional` for it, succes and succesOutlined

![Screenshot_2022-03-22_at_12.34.55](/uploads/43b0091f60f8a8af054c6e2a7bbf9c56/Screenshot_2022-03-22_at_12.34.55.png)

Story points: 1.0
FE: TAF form snapshots are failing sometimes

see https://gitlab.com/opengeoweb/opengeoweb/-/jobs/2215789446

its story `Edit Taf Form With Multiple Same Start Dates (takeSnapshot)`

probably the focus should be disabled for the snapshots, if you look at the diff its the cursor that makes the difference

https://gitlab.com/opengeoweb/opengeoweb/-/jobs/2215789446/artifacts/file/libs/taf/src/lib/storyshots/__image_snapshots__/__diff_output__/storyshots-spec-ts-storyshots-components-taf-form-edit-taf-form-with-multiple-same-start-dates-take-snapshot-1-diff.png

Story points: 1.0
Add TAF form row actions: clear row and add row above

The new TAF design includes 2 new actions for TAF form rows:
- Insert 1 row above
- Clear row

Note that the first row has different actions than the changegroup rows (first row cannot be deleted and you cannot add a row above)

https://app.zeplin.io/project/5ecf84a3c6ae1047a368f393/screen/61f2bfb9270cdcb4ca52f48f

![image](/uploads/067663494713419c82b913abeecf3e6e/image.png)

Story points: 2.0
Scrolling TAF in TAC overview

In the new TAF GUI, the TAFs present in the TAC Overview should be sorted in the following way:
- TAFs follow the TAF location list as in the tab (top -> down) in TAF Edit mode.
- When clicking one location in TAF Edit mode, this action should trigger an anchor that scrolls the TAC Overview bringing on the top the TAFs related to that specific location. (The order stays still the same as described in the previous point). If TAFs are enough in number to be displayed all in the TAC Overview, then clicking one location in TAF Edit mode will not trigger any action in the TAC Overview
- In Current & Expired the order is: before current TAF and then expired TAF.

### Test criteria

The TAFs in TAC Overview are sorted as in the description.


### Extra information
Design: https://www.sketch.com/s/b9f3c04f-82de-4c6c-a7df-7ad79a04dda2/a/l1JYP4x/play
In this user story is not included the highlight of the text shown in the design.

Watch out for Safari!

Story points: 8.0
Create new TAF layout in storybook

Create top tab bar, locations navigation and edit form and empty space for the TAC overview in storybook.
Add basic theming (white/black squares).

See https://app.zeplin.io/project/5ecf84a3c6ae1047a368f393/screen/61f2bfb7c86d02b398b51a68 for the grid structure.

Story points: 2.0
Add stations and fault lines to WMS overlays

RDSA will deliver two datasets, one for earthquake sensor point data and one for fault line data.
These have to be converted to GeoJson for ADAGUC (probably with GDAL/ogr2ogr) copied into the right spot (adaguc-datasets/resources/Overlays or a subdirectory thereof) and configured as two overlays in the OVL.xml overlay configuration for ADAGUC.

Static files for stations and fault lines overlays:
- fault lines: https://gitlab.com/KNMI/RDSA/aws/bes-dashboard/-/blob/develop/config/adaguc/adaguc-autowms/faultlines.geojson
- stations:
    - config: https://gitlab.com/KNMI/RDSA/aws/bes-dashboard/-/blob/develop/config/adaguc/datasets/stations.xml
    - data: http://rdsa.knmi.nl/fdsnws/station/1/query?format=text&network=NA

Story points: 4.0
BES dashboard preset

This issue is on implementing a preset in GeoWeb that enables the user to quickly see relevant information for the BES islands.

- the preset has 3 map views (see screenshot for layout), focusing on the BES islands. 
- no syncing between individual views for area 
- no timeslider for view 2- when GOES16 data is available:
- GOES16 data will be the leading layer in view 3 and view 3 has autoupdate switched on
- view 3 and view 1 will be synced in time (view 3 will be leading)
- All views needs auto-update switched on

1) wind and waves data
- user can visualize forecast data for wind and waveheight in one of the maps in the BES preset.
- data used will be EC model data currently available via the EC WMS KNMI WMS service, see detailed information in the designs uploaded.

2) seismological event data
- user can select two overlays for plotting on the map, fault lines and stations
- overlays will be available in the `overlays` WMS service in GeoWeb 
- user can see seismological events in the last 30 days plotted on a map in the BES preset   
- seismological events will be styled for age and magnitude
- data will be updated every minute

3) satellite data
- user can visualize satellite data
- total precipitation rate of EC model will be added to the satellite view, see detailed information in design uploaded.

-preset can be named `BES Dashboard` and can replace Caribbean (Ecwf)

Story points: 4.0
Add GOES-16 data to ADAGUC

GOES-16 data should be available for ADAGUC for Geoweb.
CloudFormation geoweb-adaguc-server should define a SNS subscription to the NOAA GOES-16 public data bucket, so that a lambda gets called (through SQS) each time a new GOES-16 file arrives in the bucket.
The lambda has to select the files that GeoWeb needs (probably ) and copy those to ADAGUC's input bucket.
ADAGUC needs a layer configuration for at least one of the GOES-16 channels (analogue to IR108 for MeteoSat), with the same style as IR108 on Meteosat

Story points: 8.0
Discussion about refreshing/cleaning of earthquake data

How to handle earthquake data without a timestamp, but refreshing every minute.

Determine if cleaning is needed for the earthquake data.

The requirements are for a layer without a time slider, showing only the latest data.
If the data is overwritten each minute, cleaning will not be necessary.

Possible outcome is that the FE needs to be adapted to handle this rapidly changing data so a ticket should be made.

Story points: 6.0
Prepare for tech meeting 2 March

- set up voting for eslint rule
- explain container queries, how to use, what it solves, do's and dont's.


https://docs.google.com/presentation/d/1vITZnoGcoLR85QJnJu9gIyPurlW_rdNjcuLO4VmfDWE/edit#slide=id.g1b9350364fa_0_1

local branch: techmeeting

Story points: 3.0
FE: sigmet/airmet snake_case custom geojson properties

geojson property has inconsitent key names, see https://gitlab.com/opengeoweb/opengeoweb/-/blob/eeca681eac75458492a5e63af8c46d8c7d20e294/libs/sigmet-airmet/src/lib/utils/config/geojsonProperties.schema.json. Make them snake_case just like the rest

Story points: 2.0
FE: sigmet/airmet rename useProductSettings

`useProductSettings` implies it's using a hook, but it's just a method that is used on some places. In https://gitlab.com/opengeoweb/opengeoweb/-/issues/3289 some properties have been removed, leaving only the `allowedUnits`. Combine with `getAllowedUnits` so you call that one with the productConfig passed in and it extracts the requested allowed units for your form-field directly. 

~~Regarding `useProductSettings` as a hook idea, it would be nice to have 1 file that has all values calculated so we don't do it too much, but doing this would make a new provider needed. All Field components now have the productConfig prop, with a provider prop drilling would not be needed. This involves a lot of file and test changes. Currently a lot of methods do a simple thing, and I think that's the way to go for now. If in the end we still want this hook idea, we could do it easier as we have all small methods ready to use in 1 go.~~

Story points: 2.0
FE: BUG: data.fmi.fi layers missing TIME parameter after v4.11.0

When adding a Layer from a FMI server (see Bug report description https://gitlab.com/opengeoweb/geoweb-assets/-/issues/2496), an error occurs. The layer does not show.

This happened after the React18 rewrite of WMJSMap.

It seems that at first no default value for a dimension is given, causing the WMS GetMap request to fail.

Story points: 1.0
FE: fix flaky tests


Ticket to gather flaky FE tests to be fixed. If a new one occurs add it to the list.

**sigmet-airmet**
- https://gitlab.com/opengeoweb/opengeoweb/-/jobs/3800644833 ProductFormDialog › should save a draft sigmet after making changes, closing the form and choosing to save
- https://gitlab.com/opengeoweb/opengeoweb/-/jobs/3822237944 ProductFormDialogContent › should not save a SIGMET with only phenomenon as draft when pressing BACK and choosing Discard and Close
- locally sigmet/airmet: Following test is failing locally pretty often:
```
 FAIL  src/lib/components/ProductForms/ProductFormDialogContent.spec.tsx (57.57 s)
  ● components/SigmetForm/ProductFormDialogContent › should be able to save a SIGMET as draft with only phenomenon as value
```

**core snapshots**
- https://gitlab.com/opengeoweb/opengeoweb/-/jobs/3807223627 Layer Info Dialog Dark (takeSnapshot)
- https://gitlab.com/opengeoweb/opengeoweb/-/jobs/3837674528  Layer Info Dialog Light (takeSnapshot)

Story points: 2.0
FE: update cypress to latest version

- update the cypress packages to the latest version: 
  - `cypress`
  - `@testing-library/cypress`
  - `@types/testing-library__cypress`
- fix breaking changes
- remove `cy.findByTestId('customDialog-close').click();` from e2e (this was closing the browser issue dialog that pops up for old browsers, this will now no longer show)

Story points: 3.0
FE: sigmet/airmet make aviaton config work with gitlab credentials

Currently the config of sigmet/airmet is not loaded correctly for gitlab users. The `createApi` is making an instance with a baseUrl, and will try to fetch the `knmi.sigmet/airmet.config` via gitlab. 

For now make sure we every createApi inside sigmet/airmet always serves te local url. In future these configs will probably come from the backend, so no need to store it in gitlab.

To show the correct error try this as gitlab user:
- remove the following keys from `config.json`:
```
  "GW_GITLAB_PRESETS_BASE_URL": "https://gitlab.com/api/v4/projects",
  "GW_GITLAB_PRESETS_API_PATH": "/{project_id}/repository/files/{presets_path}{preset_filename}/raw?ref={branch}",
  "GW_GITLAB_PROJECT_ID": "24089222",
  "GW_GITLAB_PRESETS_PATH": "env%2Flocal%2Fpresets%2F",
```
- if you now open sigmet/airmet an error of a failing backend will appear, which is expected
- now open `knmi.sigmet/airmetConfig.json` and remove a prop
- reload, open sigmet or airmet and a validation error should appear

Story points: 3.0
BE: Make ACC and PRD cognito userpools

Make ACC and PRD cognito userpools in https://gitlab.com/KNMI/geoweb/backend-services/cognito-userpool 

Start February Friday morning 17th during coding challenge.

Extra information: These are the notes we discussed 14-02-2023:

- Make a list of email adresses of current users (ACC and PRD) (Jan wil do)
- Make ACC and PRD cognito userpools in https://gitlab.com/KNMI/geoweb/backend-services/cognito-userpool (Start February Friday morning 17th)
- In de week starting 20 February: announce ACC that their accounts are about to change. Inform users that they can re-use the same username/password
- Keep in mind that the pentest is taking place till March 3rd
- Configure new ACC and PRD userpools in geoweb-serverless. Deploy new userpool when pentest is done in ACC, probably March 10th.
- When ACC seems to be OK, announce users in PRD that their account is to change. The PRD userpool can be deployed at normal PRD release (21th of March)


For going to TST:
- [x] connect presets backend (this will also make smoketest and serverless BE pass)
    - [x] update presets BE repo readme https://gitlab.com/opengeoweb/backend-services/presets-backend/-/merge_requests/64
    - [x] create new tag for presets BE repo
    - [x] update deployment BE repo for new tag & merge https://gitlab.com/KNMI/geoweb/backend-services/deploy-presets-backend/-/merge_requests/63
    - [x] make new release to TST in BE repo
- [x] make sure smoketest in serverless BE passes, get MR merged https://gitlab.com/KNMI/geoweb/geoweb-serverless-backend/-/merge_requests/433
- [x] contact Jan Koerts for proceeding going to ACC and PRD (MRs for the cognito user manager repo have been prepared and linked as well)

Story points: 3.0
FE: DockedLayerManager size small not working correctly in map for sigmet-airmet

When opening the docked layer manager (it opens in small by default) or when resizing the docked layer manager to small it doesn't work correctly. It gets too big on the right side but the drag handles are somehow displayed in the correct location.

Investigate: CSS related, forwarding properties to subcompenents? > Something with source, try to reproduce this first in sigmet storybook

Story points: 2.0
BE: Make clear whether you work in TST, ACC or PROD

In the Geoweb Serverless BE, edit the value of GW_FEATURE_APP_TITLE (https://dev.opengeoweb.com/assets/config.json) so that:
- in TST the application name is Geoweb TST
- in ACC it is equal to Geoweb ACC. No changes for PRD

Story points: 2.0
BE: Removable system presets in presets BE

For the pentest, we need system presets that can be removed by a malicious user. This issue is on implementing 5 Workspace presets that are named Pentest01 upto Pentest05. Content of these presets can be a copy of existing presets.


Prepare an alembic migration to update the database with 5 presets. This is for ACC only (pentest is done on ACC). Make sure that the presets are available in ACC by doing a release before the pentest starts (before / on friday 17th)


-----
TO DO:
- [x] create alembic migration (see https://gitlab.com/opengeoweb/opengeoweb/-/issues/3266)
- [x] (deploy test version in deploy-presets-backend repo https://gitlab.com/KNMI/geoweb/backend-services/deploy-presets-backend/-/merge_requests/61 - this one does not have to be merged)
- [x] make a release to ACC by:
   - [x] creating a new tag in presets be
   - [x] use new tag & merge into deploy-presets-be master: https://gitlab.com/opengeoweb/opengeoweb/-/issues/3269
   - [x] create new tag in deploy-presets-be & deploy to ACC

Story points: 3.0
FE: TAFedit interface too small; update snapshots

Update snapshots after update of the TAF interface. Snapshots required of every screen size in the design, one with columns at the top, one without. Only if there are changes in different sizes, it would be good to have that snapshot (to not end up with too many snapshots)

Link to new design: https://zpl.io/wqQnxLj

Story points: 3.0
FE: TAFedit interface too small; remove input title of text field to column header

The current TAF edit interface is to small. Link to new design: https://zpl.io/wqQnxLj

Implement the design in steps. Third step is to remove the input title of the text field to a column header


Container query important here. Depending on screen size, show the column header and hide the field label. For smaller screens, see how a single row is splitted into two (or more) rows to fit on the screen

Story points: 3.0
FE: TAFedit interface too small; Increase font size

The current TAF edit interface is to small. Link to new design: https://zpl.io/wqQnxLj


Implement the design in steps. Second step in this ticket: increase the font sizes according to the design. Double check the container query specification to see if this font size is supported (also by next Firefox for example).


First update the mobile screen (or layout before?) and work to increasingly bigger screens. We can try also first to use font size 12 on all screens, see if it works.

Story points: 5.0
BE: fix version smoketest

TST Smoketest failes: https://gitlab.com/KNMI/geoweb/geoweb-serverless-backend/-/jobs/3748803086

Due to this change: https://gitlab.com/KNMI/geoweb/geoweb-serverless-backend/-/commit/33b96958d781270fee564f979f5ec1a3d457df19#587d266bb27a4dc3022bbed44dfa19849df3044c_1964_2026

Try to come up with a solution to:
- fix the smoketest by editing the value of the version

Story points: 2.0
FE: taf autocomplete should validate

Autocomplete does not trigger validate. To reproduce:
- make a field error in visibility
- blur out of the field, make the error is visible
- now go back to the field and select all text
- press `C` and observe `CAVOK` is displayed with error

When pressing C, it should also validate as the value is valid. Solution:
Inside `onKeyDown` in `TafFormTextField` add `shouldValidate: true` as param in the `setValue`:

```
 setValue(name, foundValue.value, {
            shouldDirty: true,
            shouldValidate: true,
          });
```

Story points: 2.0
FE master pipeline failed

Master failed on https://gitlab.com/opengeoweb/opengeoweb/-/jobs/3728961475

Created [a hotfix](https://gitlab.com/opengeoweb/opengeoweb/-/merge_requests/2230) but not sure this is the way. 

Strange thing was if running the failed test separately, it does work. Would be nice to revert the hotfix and fix the failing test at test level, instead of in the code

Story points: 2.0
BE: update cypress version to latest

- Update the cypress package used in serverless-be to the latest (12.5.1). 
- Update the image tag used in the pipeline to match the cypress version: `cypress/included:12.5.1`

This includes an updated version of Chrome (v109), which supports container queries. That way we don't have to update the smoketest when we use the latest FE release that includes a dialog for old versions.

Story points: 2.0
BE: sigmet/airmet add 2 keys to config

The sigmet/airmet expects a custom configuration. In order to do this, we have in the frontend 2 new config files which can be set per environment. Since the the configurations will change, they will remain inside the FE. These keys need to be added to the places where a `config.json` is defined. Add the 2 following keys + values. They need to be the same as https://gitlab.com/opengeoweb/opengeoweb/-/merge_requests/2211/diffs#8f40f629b08b79a5d0ee35da56b46aa62af17c62_52_52

Add the following:
```
"GW_FEATURE_MODULE_AIRMET_CONFIGURATION": "knmi.airmetConfig.json",
"GW_FEATURE_MODULE_SIGMET_CONFIGURATION": "knmi.sigmetConfig.json",
```

Story points: 3.0
BE: DynamoDB backup cleanup

* Think of a suitable retention time for backups of deleted tables
* Reduce number of backups of deleted tables related to dev-branches on AWS
* Make sure that recovery of data in PRD/ACC/TST is still possible

It would be nice to clean up these backups and investigate whether (a) a retention time of these backups exists and can be shortened, or (b) a retention time can be set up. Since data in the dev-branches usually does not have to be recovered, it seems unnecessary to keep these backups around indefinitely.

Could be done via cloudformation settings?

Story points: 3.0
BE: spaceweather publish notification issue

Not able to issue spaceweather notification for Geomagnetic Sudden Impulse after saving as draft first. Reproduced in v2.7.1.

### Steps to reproduce

* open spaceweather module
* click ISSUE A KNMI NOTIFICATION
* choose Category: Geomagnetic
* choose Category detail: Geomagnetic Sudden Impulse
* fill in Source, impulse time and Magnetometer deflection
* click POPULATE
* click SAVE AS DRAFT
* now open the notification you just saved from the list and click ISSUE

Findings after short investigation:
* After first save the FE sends the magnetometer deflection field as a number
* The BE then returns a string when you re-open the form. 
* When the FE tries to re-send to issue this field is sent as a string which the BE rejects as the specification states it can only accepts numbers

This also likely happens for other number fields.

Add unit test in BE to ensure no data types are modified

Story points: 3.0
FE: User is signed out after period of API call inactivity

* After a period of inactivity, a user should not be signed out
* after connection is lost, user should be notified actively. Check every 5 minutes. Keep information on screen; just add e.g. red alert in top bar to notify user.
* if connection is restored, notification should be pleite.

Use refresh token call to sustain connection - if connection is lost add the red alert containing text: "Connection has been lost, please fix your network connection and press continue"

* Try to keep most of the code inside of the auth lib

![image](/uploads/2bbaae20ff651b118c185f6ed60f5bf4/image.png)

Display the alert bar below the header, above the workspace. 
- "Continue" button that retries the token call when pressed. If connection still lost, keep alert otherwise hide.
- No close option inside of the alert

Ensure for open apps such as staging and demo are not affected.

**NOTE if you can reach the token endpoint when at KNMI WITHOUT being on connect we need to find another solution**

Story points: 5.0