-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for GeoIP processor databases in Ingest Pipelines #190830
Conversation
/ci |
/ci |
6 similar comments
/ci |
/ci |
/ci |
/ci |
/ci |
/ci |
💔 Build Failed
Failed CI StepsMetrics [docs]Module Count
Async chunks
Page load bundle
History
To update your PR or re-run it, just comment with: |
/ci |
💚 Build Succeeded
Metrics [docs]Module Count
Async chunks
Page load bundle
History
|
@elasticmachine run docs-build |
Starting backport for target branches: 8.x https://github.com/elastic/kibana/actions/runs/11351709960 |
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
…c#190830) Fixes elastic#190818 Elasticsearch has added support for GeoIP, enabling the use of paid GeoIP databases from MaxMind/IPInfo for more accurate and granular geolocation data. As such we should add support to ingest pipelines UI for making this available to the user. * If the user doesn't have enough privileges, the "Manage Pipelines" link and UI won't show. * Users can add two types of databases through the UI: MaxMind and IPinfo. Database names are predefined by ES, and the user cannot enter their own. * Certain types of databases (local and web) can be configured through ES, and these will appear in the UI, but they cannot be deleted as they are read-only. * When configuring a `IP location` processor, the database field will display a list of available and configured databases that the user can select. It also allows for free-text input if the user wants to configure a database that does not yet exist. * The new IP location processor is essentially a clone of the GeoIP processor, which we are moving away from due to copyright issues. However, it was decided that GeoIP will remain as is for backward compatibility, and all new work will only be added to IP location going forward. * I left a few mocks in the `server/routes/api/geoip_database/list.ts ` to try `local/web` types The Ingest Pipelines app now supports adding and managing databases for the GeoIP processor. Additionally, the pipeline creation flow now includes support for the IP Location processor. <details> <summary>Screenshots</summary> ![Screenshot 2024-10-07 at 09 36 31](https://github.com/user-attachments/assets/60d438cc-6658-4475-bd27-036c7d13d496) ![Screenshot 2024-10-07 at 09 38 58](https://github.com/user-attachments/assets/7c08e94f-b35c-4e78-a204-1fb456d88181) ![Screenshot 2024-10-07 at 09 47 08](https://github.com/user-attachments/assets/2baca0bd-811d-4dd5-9eb6-9b3f41579249) ![Screenshot 2024-10-07 at 09 47 20](https://github.com/user-attachments/assets/74d8664c-8c73-41f3-8cd5-e0670f3ada77) ![Screenshot 2024-10-07 at 09 48 19](https://github.com/user-attachments/assets/9fb4c186-6224-404c-a8d6-5c44c14da951) ![Screenshot 2024-10-07 at 09 48 25](https://github.com/user-attachments/assets/07e4909d-2613-45aa-918b-11a189e14f6f) </details> --------- Co-authored-by: kibanamachine <[email protected]> Co-authored-by: Elastic Machine <[email protected]> Co-authored-by: Ignacio Rivas <[email protected]> Co-authored-by: Elena Stoeva <[email protected]> Co-authored-by: Elena Stoeva <[email protected]> Co-authored-by: Matthew Kime <[email protected]> (cherry picked from commit 302ac0d)
…190830) (#196420) # Backport This will backport the following commits from `main` to `8.x`: - [Add support for GeoIP processor databases in Ingest Pipelines (#190830)](#190830) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Yulia Čech","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-10-15T17:58:43Z","message":"Add support for GeoIP processor databases in Ingest Pipelines (#190830)\n\nFixes https://github.com/elastic/kibana/issues/190818\r\n\r\n## Summary\r\n\r\nElasticsearch has added support for GeoIP, enabling the use of paid\r\nGeoIP databases from MaxMind/IPInfo for more accurate and granular\r\ngeolocation data. As such we should add support to ingest pipelines UI\r\nfor making this available to the user.\r\n\r\n\r\n* If the user doesn't have enough privileges, the \"Manage Pipelines\"\r\nlink and UI won't show.\r\n* Users can add two types of databases through the UI: MaxMind and\r\nIPinfo. Database names are predefined by ES, and the user cannot enter\r\ntheir own.\r\n* Certain types of databases (local and web) can be configured through\r\nES, and these will appear in the UI, but they cannot be deleted as they\r\nare read-only.\r\n* When configuring a `IP location` processor, the database field will\r\ndisplay a list of available and configured databases that the user can\r\nselect. It also allows for free-text input if the user wants to\r\nconfigure a database that does not yet exist.\r\n* The new IP location processor is essentially a clone of the GeoIP\r\nprocessor, which we are moving away from due to copyright issues.\r\nHowever, it was decided that GeoIP will remain as is for backward\r\ncompatibility, and all new work will only be added to IP location going\r\nforward.\r\n* I left a few mocks in the `server/routes/api/geoip_database/list.ts `\r\nto try `local/web` types\r\n\r\n## Release note\r\nThe Ingest Pipelines app now supports adding and managing databases for\r\nthe GeoIP processor. Additionally, the pipeline creation flow now\r\nincludes support for the IP Location processor.\r\n\r\n<details>\r\n<summary>Screenshots</summary>\r\n\r\n![Screenshot 2024-10-07 at 09 36\r\n31](https://github.com/user-attachments/assets/60d438cc-6658-4475-bd27-036c7d13d496)\r\n![Screenshot 2024-10-07 at 09 38\r\n58](https://github.com/user-attachments/assets/7c08e94f-b35c-4e78-a204-1fb456d88181)\r\n![Screenshot 2024-10-07 at 09 47\r\n08](https://github.com/user-attachments/assets/2baca0bd-811d-4dd5-9eb6-9b3f41579249)\r\n![Screenshot 2024-10-07 at 09 47\r\n20](https://github.com/user-attachments/assets/74d8664c-8c73-41f3-8cd5-e0670f3ada77)\r\n![Screenshot 2024-10-07 at 09 48\r\n19](https://github.com/user-attachments/assets/9fb4c186-6224-404c-a8d6-5c44c14da951)\r\n![Screenshot 2024-10-07 at 09 48\r\n25](https://github.com/user-attachments/assets/07e4909d-2613-45aa-918b-11a189e14f6f)\r\n\r\n\r\n</details>\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <[email protected]>\r\nCo-authored-by: Elastic Machine <[email protected]>\r\nCo-authored-by: Ignacio Rivas <[email protected]>\r\nCo-authored-by: Elena Stoeva <[email protected]>\r\nCo-authored-by: Elena Stoeva <[email protected]>\r\nCo-authored-by: Matthew Kime <[email protected]>","sha":"302ac0d336feb861522c9ca3f3c271e172b86ae9","branchLabelMapping":{"^v9.0.0$":"main","^v8.16.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Kibana Management","v9.0.0","Feature:Ingest Node Pipelines","release_note:feature","backport:prev-minor","ci:cloud-deploy"],"title":"Add support for GeoIP processor databases in Ingest Pipelines","number":190830,"url":"https://github.com/elastic/kibana/pull/190830","mergeCommit":{"message":"Add support for GeoIP processor databases in Ingest Pipelines (#190830)\n\nFixes https://github.com/elastic/kibana/issues/190818\r\n\r\n## Summary\r\n\r\nElasticsearch has added support for GeoIP, enabling the use of paid\r\nGeoIP databases from MaxMind/IPInfo for more accurate and granular\r\ngeolocation data. As such we should add support to ingest pipelines UI\r\nfor making this available to the user.\r\n\r\n\r\n* If the user doesn't have enough privileges, the \"Manage Pipelines\"\r\nlink and UI won't show.\r\n* Users can add two types of databases through the UI: MaxMind and\r\nIPinfo. Database names are predefined by ES, and the user cannot enter\r\ntheir own.\r\n* Certain types of databases (local and web) can be configured through\r\nES, and these will appear in the UI, but they cannot be deleted as they\r\nare read-only.\r\n* When configuring a `IP location` processor, the database field will\r\ndisplay a list of available and configured databases that the user can\r\nselect. It also allows for free-text input if the user wants to\r\nconfigure a database that does not yet exist.\r\n* The new IP location processor is essentially a clone of the GeoIP\r\nprocessor, which we are moving away from due to copyright issues.\r\nHowever, it was decided that GeoIP will remain as is for backward\r\ncompatibility, and all new work will only be added to IP location going\r\nforward.\r\n* I left a few mocks in the `server/routes/api/geoip_database/list.ts `\r\nto try `local/web` types\r\n\r\n## Release note\r\nThe Ingest Pipelines app now supports adding and managing databases for\r\nthe GeoIP processor. Additionally, the pipeline creation flow now\r\nincludes support for the IP Location processor.\r\n\r\n<details>\r\n<summary>Screenshots</summary>\r\n\r\n![Screenshot 2024-10-07 at 09 36\r\n31](https://github.com/user-attachments/assets/60d438cc-6658-4475-bd27-036c7d13d496)\r\n![Screenshot 2024-10-07 at 09 38\r\n58](https://github.com/user-attachments/assets/7c08e94f-b35c-4e78-a204-1fb456d88181)\r\n![Screenshot 2024-10-07 at 09 47\r\n08](https://github.com/user-attachments/assets/2baca0bd-811d-4dd5-9eb6-9b3f41579249)\r\n![Screenshot 2024-10-07 at 09 47\r\n20](https://github.com/user-attachments/assets/74d8664c-8c73-41f3-8cd5-e0670f3ada77)\r\n![Screenshot 2024-10-07 at 09 48\r\n19](https://github.com/user-attachments/assets/9fb4c186-6224-404c-a8d6-5c44c14da951)\r\n![Screenshot 2024-10-07 at 09 48\r\n25](https://github.com/user-attachments/assets/07e4909d-2613-45aa-918b-11a189e14f6f)\r\n\r\n\r\n</details>\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <[email protected]>\r\nCo-authored-by: Elastic Machine <[email protected]>\r\nCo-authored-by: Ignacio Rivas <[email protected]>\r\nCo-authored-by: Elena Stoeva <[email protected]>\r\nCo-authored-by: Elena Stoeva <[email protected]>\r\nCo-authored-by: Matthew Kime <[email protected]>","sha":"302ac0d336feb861522c9ca3f3c271e172b86ae9"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/190830","number":190830,"mergeCommit":{"message":"Add support for GeoIP processor databases in Ingest Pipelines (#190830)\n\nFixes https://github.com/elastic/kibana/issues/190818\r\n\r\n## Summary\r\n\r\nElasticsearch has added support for GeoIP, enabling the use of paid\r\nGeoIP databases from MaxMind/IPInfo for more accurate and granular\r\ngeolocation data. As such we should add support to ingest pipelines UI\r\nfor making this available to the user.\r\n\r\n\r\n* If the user doesn't have enough privileges, the \"Manage Pipelines\"\r\nlink and UI won't show.\r\n* Users can add two types of databases through the UI: MaxMind and\r\nIPinfo. Database names are predefined by ES, and the user cannot enter\r\ntheir own.\r\n* Certain types of databases (local and web) can be configured through\r\nES, and these will appear in the UI, but they cannot be deleted as they\r\nare read-only.\r\n* When configuring a `IP location` processor, the database field will\r\ndisplay a list of available and configured databases that the user can\r\nselect. It also allows for free-text input if the user wants to\r\nconfigure a database that does not yet exist.\r\n* The new IP location processor is essentially a clone of the GeoIP\r\nprocessor, which we are moving away from due to copyright issues.\r\nHowever, it was decided that GeoIP will remain as is for backward\r\ncompatibility, and all new work will only be added to IP location going\r\nforward.\r\n* I left a few mocks in the `server/routes/api/geoip_database/list.ts `\r\nto try `local/web` types\r\n\r\n## Release note\r\nThe Ingest Pipelines app now supports adding and managing databases for\r\nthe GeoIP processor. Additionally, the pipeline creation flow now\r\nincludes support for the IP Location processor.\r\n\r\n<details>\r\n<summary>Screenshots</summary>\r\n\r\n![Screenshot 2024-10-07 at 09 36\r\n31](https://github.com/user-attachments/assets/60d438cc-6658-4475-bd27-036c7d13d496)\r\n![Screenshot 2024-10-07 at 09 38\r\n58](https://github.com/user-attachments/assets/7c08e94f-b35c-4e78-a204-1fb456d88181)\r\n![Screenshot 2024-10-07 at 09 47\r\n08](https://github.com/user-attachments/assets/2baca0bd-811d-4dd5-9eb6-9b3f41579249)\r\n![Screenshot 2024-10-07 at 09 47\r\n20](https://github.com/user-attachments/assets/74d8664c-8c73-41f3-8cd5-e0670f3ada77)\r\n![Screenshot 2024-10-07 at 09 48\r\n19](https://github.com/user-attachments/assets/9fb4c186-6224-404c-a8d6-5c44c14da951)\r\n![Screenshot 2024-10-07 at 09 48\r\n25](https://github.com/user-attachments/assets/07e4909d-2613-45aa-918b-11a189e14f6f)\r\n\r\n\r\n</details>\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <[email protected]>\r\nCo-authored-by: Elastic Machine <[email protected]>\r\nCo-authored-by: Ignacio Rivas <[email protected]>\r\nCo-authored-by: Elena Stoeva <[email protected]>\r\nCo-authored-by: Elena Stoeva <[email protected]>\r\nCo-authored-by: Matthew Kime <[email protected]>","sha":"302ac0d336feb861522c9ca3f3c271e172b86ae9"}}]}] BACKPORT--> Co-authored-by: Elena Stoeva <[email protected]>
Follow-up to elastic#190830 ## Summary I noticed that the api integration tests that have been added with elastic#190830 were not actually included to run as part of the Management test suite. This PR adds them and it also adds some test cases for the `ipinfo` database type. (cherry picked from commit 727c19a)
Follow-up to elastic#190830 ## Summary I noticed that the api integration tests that have been added with elastic#190830 were not actually included to run as part of the Management test suite. This PR adds them and it also adds some test cases for the `ipinfo` database type. (cherry picked from commit 727c19a)
…96749) # Backport This will backport the following commits from `main` to `8.16`: - [[Ingest Pipelines] Improve api integration tests (#196718)](#196718) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Elena Stoeva","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-10-17T17:40:21Z","message":"[Ingest Pipelines] Improve api integration tests (#196718)\n\nFollow-up to https://github.com/elastic/kibana/pull/190830\r\n\r\n## Summary\r\n\r\nI noticed that the api integration tests that have been added with\r\nhttps://github.com//pull/190830 were not actually included\r\nto run as part of the Management test suite. This PR adds them and it\r\nalso adds some test cases for the `ipinfo` database type.","sha":"727c19a78bf7831da150e84ffb06abf6db6878bc","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Kibana Management","release_note:skip","test-api-integration","v9.0.0","Feature:Ingest Node Pipelines","backport:prev-minor","v8.16.0","v8.17.0"],"title":"[Ingest Pipelines] Improve api integration tests","number":196718,"url":"https://github.com/elastic/kibana/pull/196718","mergeCommit":{"message":"[Ingest Pipelines] Improve api integration tests (#196718)\n\nFollow-up to https://github.com/elastic/kibana/pull/190830\r\n\r\n## Summary\r\n\r\nI noticed that the api integration tests that have been added with\r\nhttps://github.com//pull/190830 were not actually included\r\nto run as part of the Management test suite. This PR adds them and it\r\nalso adds some test cases for the `ipinfo` database type.","sha":"727c19a78bf7831da150e84ffb06abf6db6878bc"}},"sourceBranch":"main","suggestedTargetBranches":["8.16","8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/196718","number":196718,"mergeCommit":{"message":"[Ingest Pipelines] Improve api integration tests (#196718)\n\nFollow-up to https://github.com/elastic/kibana/pull/190830\r\n\r\n## Summary\r\n\r\nI noticed that the api integration tests that have been added with\r\nhttps://github.com//pull/190830 were not actually included\r\nto run as part of the Management test suite. This PR adds them and it\r\nalso adds some test cases for the `ipinfo` database type.","sha":"727c19a78bf7831da150e84ffb06abf6db6878bc"}},{"branch":"8.16","label":"v8.16.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.x","label":"v8.17.0","branchLabelMappingKey":"^v8.17.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Elena Stoeva <[email protected]>
…6750) # Backport This will backport the following commits from `main` to `8.x`: - [[Ingest Pipelines] Improve api integration tests (#196718)](#196718) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Elena Stoeva","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-10-17T17:40:21Z","message":"[Ingest Pipelines] Improve api integration tests (#196718)\n\nFollow-up to https://github.com/elastic/kibana/pull/190830\r\n\r\n## Summary\r\n\r\nI noticed that the api integration tests that have been added with\r\nhttps://github.com//pull/190830 were not actually included\r\nto run as part of the Management test suite. This PR adds them and it\r\nalso adds some test cases for the `ipinfo` database type.","sha":"727c19a78bf7831da150e84ffb06abf6db6878bc","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Team:Kibana Management","release_note:skip","test-api-integration","v9.0.0","Feature:Ingest Node Pipelines","backport:prev-minor","v8.16.0","v8.17.0"],"title":"[Ingest Pipelines] Improve api integration tests","number":196718,"url":"https://github.com/elastic/kibana/pull/196718","mergeCommit":{"message":"[Ingest Pipelines] Improve api integration tests (#196718)\n\nFollow-up to https://github.com/elastic/kibana/pull/190830\r\n\r\n## Summary\r\n\r\nI noticed that the api integration tests that have been added with\r\nhttps://github.com//pull/190830 were not actually included\r\nto run as part of the Management test suite. This PR adds them and it\r\nalso adds some test cases for the `ipinfo` database type.","sha":"727c19a78bf7831da150e84ffb06abf6db6878bc"}},"sourceBranch":"main","suggestedTargetBranches":["8.16","8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/196718","number":196718,"mergeCommit":{"message":"[Ingest Pipelines] Improve api integration tests (#196718)\n\nFollow-up to https://github.com/elastic/kibana/pull/190830\r\n\r\n## Summary\r\n\r\nI noticed that the api integration tests that have been added with\r\nhttps://github.com//pull/190830 were not actually included\r\nto run as part of the Management test suite. This PR adds them and it\r\nalso adds some test cases for the `ipinfo` database type.","sha":"727c19a78bf7831da150e84ffb06abf6db6878bc"}},{"branch":"8.16","label":"v8.16.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"8.x","label":"v8.17.0","branchLabelMappingKey":"^v8.17.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Elena Stoeva <[email protected]>
Follow-up to #190830 ## Summary This PR fixes the functional tests for GeoIP databases. Before, the tests were failing because a value could not be selected in the Type field and the Name field in the add database modal (these fields use EuiSelect for `testsubjects.setValue` did not work). This is fixed by assigning a data-test-subj to every option in the dropdown and clicking on the field and then on the corresponding option. Flaky test runner: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7165
…196544) Follow-up to elastic#190830 ## Summary This PR fixes the functional tests for GeoIP databases. Before, the tests were failing because a value could not be selected in the Type field and the Name field in the add database modal (these fields use EuiSelect for `testsubjects.setValue` did not work). This is fixed by assigning a data-test-subj to every option in the dropdown and clicking on the field and then on the corresponding option. Flaky test runner: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7165 (cherry picked from commit 37b57a3)
…196544) Follow-up to elastic#190830 ## Summary This PR fixes the functional tests for GeoIP databases. Before, the tests were failing because a value could not be selected in the Type field and the Name field in the add database modal (these fields use EuiSelect for `testsubjects.setValue` did not work). This is fixed by assigning a data-test-subj to every option in the dropdown and clicking on the field and then on the corresponding option. Flaky test runner: https://buildkite.com/elastic/kibana-flaky-test-suite-runner/builds/7165 (cherry picked from commit 37b57a3)
Fixes #190818
Summary
Elasticsearch has added support for GeoIP, enabling the use of paid GeoIP databases from MaxMind/IPInfo for more accurate and granular geolocation data. As such we should add support to ingest pipelines UI for making this available to the user.
IP location
processor, the database field will display a list of available and configured databases that the user can select. It also allows for free-text input if the user wants to configure a database that does not yet exist.server/routes/api/geoip_database/list.ts
to trylocal/web
typesRelease note
The Ingest Pipelines app now supports adding and managing databases for the GeoIP processor. Additionally, the pipeline creation flow now includes support for the IP Location processor.
Screenshots