Skip to content
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

ingest: raise visibility of ingest plugin documentation #35048

Merged
44 changes: 44 additions & 0 deletions docs/reference/ingest/ingest-node.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -2414,6 +2414,43 @@ its value will be replaced with the provided one.
--------------------------------------------------
// NOTCONSOLE


[[ingest-node-set-security-user-processor]]
=== Set Security User Processor
Sets user-related details (such as `username`, `roles`, `email`, `full_name`
and `metadata` ) from the current
authenticated user to the current document by pre-processing the ingest.

IMPORTANT: Requires an authenticated user for the index request.

[[set-security-user-options]]
.Set Security User Options
[options="header"]
|======
| Name | Required | Default | Description
| `field` | yes | - | The field to store the user information into.
| `properties` | no | [`username`, `roles`, `email`, `full_name`, `metadata`] | Controls what user related properties are added to the `field`.
|======
//TODO: ensure common options are included once PR 35091 is merged.

The following example adds all user details for the current authenticated user
to the `user` field for all documents that are processed by this pipeline:

[source,js]
--------------------------------------------------
{
"processors" : [
{
"set_security_user": {
"field": "user"
}
}
]
}
--------------------------------------------------
// NOTCONSOLE


[[split-processor]]
=== Split Processor
Splits a field into an array using a separator character. Only works on string fields.
Expand Down Expand Up @@ -2541,3 +2578,10 @@ URL-decodes a string
}
--------------------------------------------------
// NOTCONSOLE

[[plugin-processors]]
== Plugin Processors

Ingest processors may be installed as an Elasticsearch {plugins}/intro.html[plugin].

Ingest plugins documentation can be found {plugins}/ingest.html[here].
43 changes: 4 additions & 39 deletions x-pack/docs/en/security/authorization/set-security-user.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,53 +9,18 @@ To guarantee that a user reads only their own documents, it makes sense to set u
document level security. In this scenario, each document must have the username
or role name associated with it, so that this information can be used by the
role query for document level security. This is a situation where the
`set_security_user` ingest processor can help.
{ref}/ingest-node-set-security-user-processor.html[Set Security User Processor] ingest processor can help.

NOTE: Document level security doesn't apply to write APIs. You must use unique
ids for each user that uses the same index, otherwise they might overwrite other
users' documents. The ingest processor just adds properties for the current
authenticated user to the documents that are being indexed.

The `set_security_user` processor attaches user-related details (such as
{ref}/ingest-node-set-security-user-processor.html[Set Security User Processor] processor attaches user-related details (such as
jakelandis marked this conversation as resolved.
Show resolved Hide resolved
`username`, `roles`, `email`, `full_name` and `metadata` ) from the current
authenticated user to the current document by pre-processing the ingest. When
you index data with an ingest pipeline, user details are automatically attached
to the document. For example:
to the document.

[source,js]
--------------------------------------------------
PUT shared-logs/log/1?pipeline=my_pipeline_id
{
...
}
--------------------------------------------------
// NOTCONSOLE
For more information see {ref}/ingest.html[ingest node] and {ref}/ingest-node-set-security-user-processor.html[Set Security User Processor].
jakelandis marked this conversation as resolved.
Show resolved Hide resolved

For more information about setting up a pipeline and other processors, see
{ref}/ingest.html[ingest node].

[[set-security-user-options]]
.Set Security User Options
[options="header"]
|======
| Name | Required | Default | Description
| `field` | yes | - | The field to store the user information into.
| `properties` | no | [`username`, `roles`, `email`, `full_name`, `metadata`] | Controls what user related properties are added to the `field`.
|======

The following example adds all user details for the current authenticated user
to the `user` field for all documents that are processed by this pipeline:

[source,js]
--------------------------------------------------
{
"processors" : [
{
"set_security_user": {
"field": "user"
}
}
]
}
--------------------------------------------------
// NOTCONSOLE