[Synthetics] Multi space monitors !! (#221568)

## Summary

Multi space monitors !!

Fixes https://github.com/elastic/kibana/issues/164294

User will be able to choose in which space monitors will be available !!

<img width="1728" alt="image"
src="https://github.com/user-attachments/assets/f01ac226-ed54-4e96-b6f4-27f0134a9be5"
/>


### Technical 
This is being done by registering another saved object type and for
existing monitors it will continue to work as right now but for newly
created monitors user will have ability to specify spaces or choose
multiple spaces or all.

### Testing

1. Create few monitors before this PR in multiple spaces
2. Create multiple monitors in multiple spaces after this PR
3. Make sure filtering, editing and deleting, creating works as expected
on both set of monitors

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
Shahzad 2025-06-25 10:47:47 +02:00 committed by GitHub
parent b2d91b43f3
commit f317cec25b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
139 changed files with 3470 additions and 1275 deletions

View file

@ -1159,6 +1159,34 @@
"type",
"urls"
],
"synthetics-monitor-multi-space": [
"alert",
"alert.status",
"alert.status.enabled",
"alert.tls",
"alert.tls.enabled",
"config_id",
"custom_heartbeat_id",
"enabled",
"hash",
"hosts",
"id",
"journey_id",
"locations",
"locations.id",
"locations.label",
"maintenance_windows",
"name",
"origin",
"project_id",
"schedule",
"schedule.number",
"tags",
"throttling",
"throttling.label",
"type",
"urls"
],
"synthetics-param": [],
"synthetics-private-location": [],
"synthetics-privates-locations": [],

View file

@ -3832,6 +3832,136 @@
}
}
},
"synthetics-monitor-multi-space": {
"dynamic": false,
"properties": {
"alert": {
"properties": {
"status": {
"properties": {
"enabled": {
"type": "boolean"
}
}
},
"tls": {
"properties": {
"enabled": {
"type": "boolean"
}
}
}
}
},
"config_id": {
"type": "keyword"
},
"custom_heartbeat_id": {
"type": "keyword"
},
"enabled": {
"type": "boolean"
},
"hash": {
"type": "keyword"
},
"hosts": {
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
},
"type": "text"
},
"id": {
"type": "keyword"
},
"journey_id": {
"type": "keyword"
},
"locations": {
"properties": {
"id": {
"fields": {
"text": {
"type": "text"
}
},
"ignore_above": 256,
"type": "keyword"
},
"label": {
"type": "text"
}
}
},
"maintenance_windows": {
"type": "keyword"
},
"name": {
"fields": {
"keyword": {
"ignore_above": 256,
"normalizer": "lowercase",
"type": "keyword"
}
},
"type": "text"
},
"origin": {
"type": "keyword"
},
"project_id": {
"fields": {
"text": {
"type": "text"
}
},
"type": "keyword"
},
"schedule": {
"properties": {
"number": {
"type": "integer"
}
}
},
"tags": {
"fields": {
"text": {
"type": "text"
}
},
"type": "keyword"
},
"throttling": {
"properties": {
"label": {
"type": "keyword"
}
}
},
"type": {
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
},
"type": "text"
},
"urls": {
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
},
"type": "text"
}
}
},
"synthetics-param": {
"dynamic": false,
"properties": {}