I just did ... right this minute 
Elastic 8.17.4
Fortinet FortiGate Firewall Logs 1.31.0
This is my ingest pipeline
GET _ingest/pipeline/logs-fortinet_fortigate.log@custom
{
"logs-fortinet_fortigate.log@custom": {
"processors": [
{
"set": {
"field": "data_stream.namespace",
"value": "newnamespace"
}
},
{
"reroute": {}
}
]
}
}
Before / After
Before Pipeline
{
"_index": ".ds-logs-fortinet_fortigate.log-default-2025.04.16-000001",
"_id": "VTBpQJYBRkty1fMz3h7y",
"_version": 1,
"_source": {
"agent": {
"name": "stephenb-logginig-test",
"id": "438a8475-1a44-4006-81e0-ea28f9b1e8a1",
"type": "filebeat",
"ephemeral_id": "27a11684-2ce9-4429-8d38-47dd85ed38c5",
"version": "8.17.4"
},
"log": {
"file": {
"path": "/home/azureuser/fortigate/fortigage.log"
},
....
"related": {
"ip": [
"10.1.100.66",
"89.160.20.128",
"172.16.200.11"
]
},
"data_stream": {
"namespace": "default",
"type": "logs",
"dataset": "fortinet_fortigate.log"
},
After
{
"_index": ".ds-logs-fortinet_fortigate.log-newnamespace-2025.04.16-000001",
"_id": "NRxsQJYBq5b1-O15mZd_",
"_version": 1,
"_source": {
"agent": {
"name": "stephenb-logginig-test",
"id": "438a8475-1a44-4006-81e0-ea28f9b1e8a1",
"ephemeral_id": "27a11684-2ce9-4429-8d38-47dd85ed38c5",
"type": "filebeat",
"version": "8.17.4"
},
"log": {
"file": {
"path": "/home/azureuser/fortigate/fortigage1.log"
},
"offset": 24446,
.....
]
},
"data_stream": {
"namespace": "newnamespace",
"type": "logs",
"dataset": "fortinet_fortigate.log"
},

Now the routing would need to be more specific...
Like I said I think this is actually API Key based
So now if there are some fields we can key on we can route to namespace...