{"action":"created","issue":{"url":"https://api.github.com/repos/elastic/elasticsearch/issues/31372","repository_url":"https://api.github.com/repos/elastic/elasticsearch","labels_url":"https://api.github.com/repos/elastic/elasticsearch/issues/31372/labels{/name}","comments_url":"https://api.github.com/repos/elastic/elasticsearch/issues/31372/comments","events_url":"https://api.github.com/repos/elastic/elasticsearch/issues/31372/events","html_url":"https://github.com/elastic/elasticsearch/issues/31372","id":332901274,"node_id":"MDU6SXNzdWUzMzI5MDEyNzQ=","number":31372,"title":"Field aliases implementation tracking","user":{"login":"jtibshirani","id":7461306,"node_id":"MDQ6VXNlcjc0NjEzMDY=","avatar_url":"https://avatars3.githubusercontent.com/u/7461306?v=4","gravatar_id":"","url":"https://api.github.com/users/jtibshirani","html_url":"https://github.com/jtibshirani","followers_url":"https://api.github.com/users/jtibshirani/followers","following_url":"https://api.github.com/users/jtibshirani/following{/other_user}","gists_url":"https://api.github.com/users/jtibshirani/gists{/gist_id}","starred_url":"https://api.github.com/users/jtibshirani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtibshirani/subscriptions","organizations_url":"https://api.github.com/users/jtibshirani/orgs","repos_url":"https://api.github.com/users/jtibshirani/repos","events_url":"https://api.github.com/users/jtibshirani/events{/privacy}","received_events_url":"https://api.github.com/users/jtibshirani/received_events","type":"User","site_admin":false},"labels":[{"id":141145460,"node_id":"MDU6TGFiZWwxNDExNDU0NjA=","url":"https://api.github.com/repos/elastic/elasticsearch/labels/:Search/Mapping","name":":Search/Mapping","color":"0e8a16","default":false}],"state":"open","locked":false,"assignee":{"login":"jtibshirani","id":7461306,"node_id":"MDQ6VXNlcjc0NjEzMDY=","avatar_url":"https://avatars3.githubusercontent.com/u/7461306?v=4","gravatar_id":"","url":"https://api.github.com/users/jtibshirani","html_url":"https://github.com/jtibshirani","followers_url":"https://api.github.com/users/jtibshirani/followers","following_url":"https://api.github.com/users/jtibshirani/following{/other_user}","gists_url":"https://api.github.com/users/jtibshirani/gists{/gist_id}","starred_url":"https://api.github.com/users/jtibshirani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtibshirani/subscriptions","organizations_url":"https://api.github.com/users/jtibshirani/orgs","repos_url":"https://api.github.com/users/jtibshirani/repos","events_url":"https://api.github.com/users/jtibshirani/events{/privacy}","received_events_url":"https://api.github.com/users/jtibshirani/received_events","type":"User","site_admin":false},"assignees":[{"login":"jtibshirani","id":7461306,"node_id":"MDQ6VXNlcjc0NjEzMDY=","avatar_url":"https://avatars3.githubusercontent.com/u/7461306?v=4","gravatar_id":"","url":"https://api.github.com/users/jtibshirani","html_url":"https://github.com/jtibshirani","followers_url":"https://api.github.com/users/jtibshirani/followers","following_url":"https://api.github.com/users/jtibshirani/following{/other_user}","gists_url":"https://api.github.com/users/jtibshirani/gists{/gist_id}","starred_url":"https://api.github.com/users/jtibshirani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtibshirani/subscriptions","organizations_url":"https://api.github.com/users/jtibshirani/orgs","repos_url":"https://api.github.com/users/jtibshirani/repos","events_url":"https://api.github.com/users/jtibshirani/events{/privacy}","received_events_url":"https://api.github.com/users/jtibshirani/received_events","type":"User","site_admin":false}],"milestone":null,"comments":8,"created_at":"2018-06-15T20:15:19Z","updated_at":"2018-07-03T15:28:38Z","closed_at":null,"author_association":"MEMBER","body":"Main issue: https://github.com/elastic/elasticsearch/issues/23714\r\nFeature branch: `field-aliases`\r\n\r\nGeneral approach: \r\n- Create a new top-level `Mapper` type called `FieldAliasMapper`. Note that this new type does not inherit from `FieldMapper`.\r\n- Make sure to keep track of aliases in `MapperService` so that when field aliases are supplied to `MapperService#fullName`, the correct concrete field type is returned. The bulk of this logic resides in `FieldTypeLookup`.\r\n\r\nDetails of what will be supported:\r\n- All relevant parts of the search request accept field aliases. In particular, aliases can be used in queries, aggregations, and sort fields, as well as when requesting `docvalue_fields`, `stored_fields`, suggestions, and highlights.\r\n- Field aliases can be used in the capabilities API.\r\n- If field names are provided as wildcards, field aliases will be matched in addition to concrete fields.\r\n- If a concrete field type is updated, any aliases that refer to it will always refer to the latest version.\r\n- Attempts to write to a field alias will cause document parsing to fail.\r\n\r\nTODO:\r\n- [x] Merge initial PR to add basic support. #31287\r\n- [x] Perform validation on the field alias mapping. In particular, it should not reference an object field or another alias field. In addition, the alias and its concrete field should have the same nested scope. #31518\r\n- [x] Ensure that field aliases can be used when loading `stored_fields`. #31411 \r\n- [x] Make sure field aliases can be accessed from a script. #31417\r\n- [x] Add documentation. Clearly document when aliases are supported vs. not (e.g. when filtering `_source` or invalidating the indices cache for a field). #31538\r\n- [ ] Add comprehensive unit tests for the different query and aggregation types. #31565\r\n- [x] Make sure field alias mappings can be retrieved from the 'get field mappings' API. Note that we will return the original mapping for the alias, and not try to resolve the alias. #31671\r\n- [ ] Verify that field aliases interact correctly with field-level security.\r\n- [ ] Resolve technical debt before merging: remove deprecated calls to `DocumentFieldMappers#getFieldMapper`."},"comment":{"url":"https://api.github.com/repos/elastic/elasticsearch/issues/comments/402197577","html_url":"https://github.com/elastic/elasticsearch/issues/31372#issuecomment-402197577","issue_url":"https://api.github.com/repos/elastic/elasticsearch/issues/31372","id":402197577,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMjE5NzU3Nw==","user":{"login":"jaymode","id":4339958,"node_id":"MDQ6VXNlcjQzMzk5NTg=","avatar_url":"https://avatars1.githubusercontent.com/u/4339958?v=4","gravatar_id":"","url":"https://api.github.com/users/jaymode","html_url":"https://github.com/jaymode","followers_url":"https://api.github.com/users/jaymode/followers","following_url":"https://api.github.com/users/jaymode/following{/other_user}","gists_url":"https://api.github.com/users/jaymode/gists{/gist_id}","starred_url":"https://api.github.com/users/jaymode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaymode/subscriptions","organizations_url":"https://api.github.com/users/jaymode/orgs","repos_url":"https://api.github.com/users/jaymode/repos","events_url":"https://api.github.com/users/jaymode/events{/privacy}","received_events_url":"https://api.github.com/users/jaymode/received_events","type":"User","site_admin":false},"created_at":"2018-07-03T15:28:38Z","updated_at":"2018-07-03T15:28:38Z","author_association":"MEMBER","body":"@jtibshirani You're understanding is correct.\r\n\r\n> It'd be useful to know for context: is the existence of a field considered sensitive information? If not, is its mapping/ schema information sensitive, or is the field mappings filter mostly for better user experience?\r\n\r\nThe best thing would be to not allow the knowledge of the existence of a field to exist and if that isn't possible not knowing the mapping would be better than nothing. Ultimately we want our FLS implementation to prevent the user from knowing that a given field exists in a document. The field mappings filter is a relatively new thing and prior to that users with access to certain APIs could still find out about fields that they did not have access to, so it is not the end of the world if this is not a problem that can be solved."}}
{"actor":{"display_login":"jaymode"}}