Skip to content

[Getting Started] Adding a prominent CTA button#12003

Merged
ycombinator merged 1 commit intoelastic:masterfrom
ycombinator:getting-started/tweaks
May 25, 2017
Merged

[Getting Started] Adding a prominent CTA button#12003
ycombinator merged 1 commit intoelastic:masterfrom
ycombinator:getting-started/tweaks

Conversation

@ycombinator
Copy link
Contributor

This PR:

  • Adds a "Got it, take me to Kibana" button at bottom center.
  • Removes the "I'm a pro, ..." link from top right.
  • De-emphasizes the demo site.

Resolves #11809.

Before this PR

screen shot 2017-05-25 at 9 25 17 am

After this PR

screen shot 2017-05-25 at 9 24 56 am

- Removing "I'm a pro" link from top right.
- Adding "Got it, take me to Kibana" button at bottom center.
- De-emphasizing demo site.
Copy link
Contributor

@chrisronline chrisronline left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just one question

>
<span class="kuiButton__inner">
<span>View the demo site</span>
<span>Got it, take me to Kibana</span>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do these not need to be localized?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, they should be! Rather than increase the scope of this PR, I'll do the localization in a new PR. I've created #12004 to track it. Thanks!

Copy link
Contributor

@BigFunger BigFunger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ycombinator ycombinator merged commit aa3fa06 into elastic:master May 25, 2017
ycombinator added a commit that referenced this pull request May 25, 2017
- Removing "I'm a pro" link from top right.
- Adding "Got it, take me to Kibana" button at bottom center.
- De-emphasizing demo site.
@ycombinator
Copy link
Contributor Author

Backported to:

snide pushed a commit to snide/kibana that referenced this pull request May 30, 2017
- Removing "I'm a pro" link from top right.
- Adding "Got it, take me to Kibana" button at bottom center.
- De-emphasizing demo site.
ycombinator added a commit to ycombinator/kibana that referenced this pull request Jun 3, 2017
ycombinator added a commit that referenced this pull request Jun 5, 2017
* Revert "When on an embedded page, bypass Getting Started gate check (#12040)"

This reverts commit 05293f1.

* Revert "Making tweaks. (#12003)"

This reverts commit aa3fa06.

* Revert "Functional tests for the Getting Started page (#11850)"

This reverts commit 099178a.

* Revert "Prevent flicker on Getting Started page (#11826)"

This reverts commit c4b3ade.

* Revert "Getting Started page (#11805)"

This reverts commit 32eff37.

* Remove check for Getting Started page from navigateToApp
ycombinator added a commit that referenced this pull request Jun 5, 2017
* Revert "When on an embedded page, bypass Getting Started gate check (#12040)"

This reverts commit 05293f1.

* Revert "Making tweaks. (#12003)"

This reverts commit aa3fa06.

* Revert "Functional tests for the Getting Started page (#11850)"

This reverts commit 099178a.

* Revert "Prevent flicker on Getting Started page (#11826)"

This reverts commit c4b3ade.

* Revert "Getting Started page (#11805)"

This reverts commit 32eff37.

* Remove check for Getting Started page from navigateToApp
PopradiArpad pushed a commit to PopradiArpad/kibana that referenced this pull request Jun 6, 2017
* Revert "When on an embedded page, bypass Getting Started gate check (elastic#12040)"

This reverts commit 05293f1.

* Revert "Making tweaks. (elastic#12003)"

This reverts commit aa3fa06.

* Revert "Functional tests for the Getting Started page (elastic#11850)"

This reverts commit 099178a.

* Revert "Prevent flicker on Getting Started page (elastic#11826)"

This reverts commit c4b3ade.

* Revert "Getting Started page (elastic#11805)"

This reverts commit 32eff37.

* Remove check for Getting Started page from navigateToApp
e40pud added a commit to e40pud/kibana that referenced this pull request Apr 1, 2025
e40pud added a commit that referenced this pull request Apr 10, 2025
…ement (#12003) (#216656)

## Summary

Main ticket ([Internal
link](elastic/security-team#12003))

To allow users to schedule Attack Discovery generations, we will use
either [Alerting
Framework](https://www.elastic.co/guide/en/kibana/current/alerting-getting-started.html).
These changes add functionality to manage new alerts type - Attack
Discovery Schedule.

### Introduced endpoints

- **Create** AD scheduling rule route: `POST
/internal/elastic_assistant/attack_discovery/schedules`
- **Read/Get** AD scheduling rule by id route: `GET
/internal/elastic_assistant/attack_discovery/schedules/{id}`
- **Update** AD scheduling rule by id route: `PUT
/internal/elastic_assistant/attack_discovery/schedules/{id}`
- **Delete** AD scheduling rule by id route: `DELETE
/internal/elastic_assistant/attack_discovery/schedules/{id}`
- **Enable** AD scheduling rule by id route: `POST
/internal/elastic_assistant/attack_discovery/schedules/{id}/_enable`
- **Disable** AD scheduling rule by id route: `POST
/internal/elastic_assistant/attack_discovery/schedules/{id}/_disable`
- **Find** all existing AD scheduling rules route: `GET
/internal/elastic_assistant/attack_discovery/schedules/_find`

## NOTES

The feature is hidden behind the feature flag:

> xpack.securitySolution.enableExperimental:
['assistantAttackDiscoverySchedulingEnabled']

## cURL examples

<details>
  <summary>Create AD scheduling rule route</summary>

```curl
curl --location 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution' \
--header 'Content-Type: application/json' \
--data '{
    "name": "Test Schedule",
    "schedule": {
        "interval": "10m"
    },
    "params": {
        "alertsIndexPattern": ".alerts-security.alerts-default",
        "apiConfig": {
            "connectorId": "gpt-4o",
            "actionTypeId": ".gen-ai"
        },
        "end": "now",
        "size": 100,
        "start": "now-24h"
    }
}'
```

</details>

<details>
  <summary>Read/Get AD scheduling rule by id route</summary>

```curl
curl --location 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution'
```

</details>

<details>
  <summary>Update AD scheduling rule by id route</summary>

```curl
curl --location --request PUT 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution' \
--header 'Content-Type: application/json' \
--data '{
    "name": "Test Schedule - Updated",
    "schedule": {
        "interval": "123m"
    },
    "params": {
        "alertsIndexPattern": ".alerts-security.alerts-default",
        "apiConfig": {
            "connectorId": "gpt-4o",
            "actionTypeId": ".gen-ai"
        },
        "end": "now",
        "size": 35,
        "start": "now-24h"
    },
    "actions": []
}'
```

</details>

<details>
  <summary>Delete AD scheduling rule by id route</summary>

```curl
curl --location --request DELETE 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution'
```

</details>

<details>
  <summary>Enable AD scheduling rule by id route</summary>

```curl
curl --location --request POST 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}/_enable' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution'
```

</details>

<details>
  <summary>Disable AD scheduling rule by id route</summary>

```curl
curl --location --request POST 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}/_disable' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution'
```

</details>

<details>
  <summary>Find all existing AD scheduling rules route</summary>

```curl
curl --location 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/_find' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution'
```

</details>

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
e40pud added a commit to e40pud/kibana that referenced this pull request Apr 10, 2025
…ement (elastic#12003) (elastic#216656)

## Summary

Main ticket ([Internal
link](elastic/security-team#12003))

To allow users to schedule Attack Discovery generations, we will use
either [Alerting
Framework](https://www.elastic.co/guide/en/kibana/current/alerting-getting-started.html).
These changes add functionality to manage new alerts type - Attack
Discovery Schedule.

### Introduced endpoints

- **Create** AD scheduling rule route: `POST
/internal/elastic_assistant/attack_discovery/schedules`
- **Read/Get** AD scheduling rule by id route: `GET
/internal/elastic_assistant/attack_discovery/schedules/{id}`
- **Update** AD scheduling rule by id route: `PUT
/internal/elastic_assistant/attack_discovery/schedules/{id}`
- **Delete** AD scheduling rule by id route: `DELETE
/internal/elastic_assistant/attack_discovery/schedules/{id}`
- **Enable** AD scheduling rule by id route: `POST
/internal/elastic_assistant/attack_discovery/schedules/{id}/_enable`
- **Disable** AD scheduling rule by id route: `POST
/internal/elastic_assistant/attack_discovery/schedules/{id}/_disable`
- **Find** all existing AD scheduling rules route: `GET
/internal/elastic_assistant/attack_discovery/schedules/_find`

## NOTES

The feature is hidden behind the feature flag:

> xpack.securitySolution.enableExperimental:
['assistantAttackDiscoverySchedulingEnabled']

## cURL examples

<details>
  <summary>Create AD scheduling rule route</summary>

```curl
curl --location 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution' \
--header 'Content-Type: application/json' \
--data '{
    "name": "Test Schedule",
    "schedule": {
        "interval": "10m"
    },
    "params": {
        "alertsIndexPattern": ".alerts-security.alerts-default",
        "apiConfig": {
            "connectorId": "gpt-4o",
            "actionTypeId": ".gen-ai"
        },
        "end": "now",
        "size": 100,
        "start": "now-24h"
    }
}'
```

</details>

<details>
  <summary>Read/Get AD scheduling rule by id route</summary>

```curl
curl --location 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution'
```

</details>

<details>
  <summary>Update AD scheduling rule by id route</summary>

```curl
curl --location --request PUT 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution' \
--header 'Content-Type: application/json' \
--data '{
    "name": "Test Schedule - Updated",
    "schedule": {
        "interval": "123m"
    },
    "params": {
        "alertsIndexPattern": ".alerts-security.alerts-default",
        "apiConfig": {
            "connectorId": "gpt-4o",
            "actionTypeId": ".gen-ai"
        },
        "end": "now",
        "size": 35,
        "start": "now-24h"
    },
    "actions": []
}'
```

</details>

<details>
  <summary>Delete AD scheduling rule by id route</summary>

```curl
curl --location --request DELETE 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution'
```

</details>

<details>
  <summary>Enable AD scheduling rule by id route</summary>

```curl
curl --location --request POST 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}/_enable' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution'
```

</details>

<details>
  <summary>Disable AD scheduling rule by id route</summary>

```curl
curl --location --request POST 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}/_disable' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution'
```

</details>

<details>
  <summary>Find all existing AD scheduling rules route</summary>

```curl
curl --location 'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/_find' \
--header 'kbn-xsrf: true' \
--header 'elastic-api-version: 1' \
--header 'x-elastic-internal-origin: security-solution'
```

</details>

---------

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit fc11ca9)

# Conflicts:
#	x-pack/solutions/security/plugins/elastic_assistant/server/types.ts
e40pud added a commit that referenced this pull request Apr 10, 2025
… management (#12003) (#216656) (#217794)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[Attack Discovery][Scheduling] Attack Discovery scheduling rule
management (#12003)
(#216656)](#216656)

<!--- Backport version: 9.6.6 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Ievgen
Sorokopud","email":"ievgen.sorokopud@elastic.co"},"sourceCommit":{"committedDate":"2025-04-10T09:03:04Z","message":"[Attack
Discovery][Scheduling] Attack Discovery scheduling rule management
(#12003) (#216656)\n\n## Summary\n\nMain ticket
([Internal\nlink](https://github.com/elastic/security-team/issues/12003))\n\nTo
allow users to schedule Attack Discovery generations, we will
use\neither
[Alerting\nFramework](https://www.elastic.co/guide/en/kibana/current/alerting-getting-started.html).\nThese
changes add functionality to manage new alerts type - Attack\nDiscovery
Schedule.\n\n### Introduced endpoints\n\n- **Create** AD scheduling rule
route: `POST\n/internal/elastic_assistant/attack_discovery/schedules`\n-
**Read/Get** AD scheduling rule by id route:
`GET\n/internal/elastic_assistant/attack_discovery/schedules/{id}`\n-
**Update** AD scheduling rule by id route:
`PUT\n/internal/elastic_assistant/attack_discovery/schedules/{id}`\n-
**Delete** AD scheduling rule by id route:
`DELETE\n/internal/elastic_assistant/attack_discovery/schedules/{id}`\n-
**Enable** AD scheduling rule by id route:
`POST\n/internal/elastic_assistant/attack_discovery/schedules/{id}/_enable`\n-
**Disable** AD scheduling rule by id route:
`POST\n/internal/elastic_assistant/attack_discovery/schedules/{id}/_disable`\n-
**Find** all existing AD scheduling rules route:
`GET\n/internal/elastic_assistant/attack_discovery/schedules/_find`\n\n##
NOTES\n\nThe feature is hidden behind the feature flag:\n\n>
xpack.securitySolution.enableExperimental:\n['assistantAttackDiscoverySchedulingEnabled']\n\n##
cURL examples\n\n<details>\n <summary>Create AD scheduling rule
route</summary>\n\n```curl\ncurl --location
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin: security-solution' \\\n--header
'Content-Type: application/json' \\\n--data '{\n \"name\": \"Test
Schedule\",\n \"schedule\": {\n \"interval\": \"10m\"\n },\n \"params\":
{\n \"alertsIndexPattern\": \".alerts-security.alerts-default\",\n
\"apiConfig\": {\n \"connectorId\": \"gpt-4o\",\n \"actionTypeId\":
\".gen-ai\"\n },\n \"end\": \"now\",\n \"size\": 100,\n \"start\":
\"now-24h\"\n }\n}'\n```\n\n</details>\n\n<details>\n <summary>Read/Get
AD scheduling rule by id route</summary>\n\n```curl\ncurl --location
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Update AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request PUT
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin: security-solution' \\\n--header
'Content-Type: application/json' \\\n--data '{\n \"name\": \"Test
Schedule - Updated\",\n \"schedule\": {\n \"interval\": \"123m\"\n },\n
\"params\": {\n \"alertsIndexPattern\":
\".alerts-security.alerts-default\",\n \"apiConfig\": {\n
\"connectorId\": \"gpt-4o\",\n \"actionTypeId\": \".gen-ai\"\n },\n
\"end\": \"now\",\n \"size\": 35,\n \"start\": \"now-24h\"\n },\n
\"actions\": []\n}'\n```\n\n</details>\n\n<details>\n <summary>Delete AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request DELETE
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Enable AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request POST
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}/_enable'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Disable AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request POST
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}/_disable'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Find all
existing AD scheduling rules route</summary>\n\n```curl\ncurl --location
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/_find'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"fc11ca94f58c62a9accfa47019b539826c9afa1b","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:
SecuritySolution","Team:Security Generative
AI","backport:version","v9.1.0","v8.19.0"],"title":"[Attack
Discovery][Scheduling] Attack Discovery scheduling rule management
(#12003)","number":216656,"url":"https://github.com/elastic/kibana/pull/216656","mergeCommit":{"message":"[Attack
Discovery][Scheduling] Attack Discovery scheduling rule management
(#12003) (#216656)\n\n## Summary\n\nMain ticket
([Internal\nlink](https://github.com/elastic/security-team/issues/12003))\n\nTo
allow users to schedule Attack Discovery generations, we will
use\neither
[Alerting\nFramework](https://www.elastic.co/guide/en/kibana/current/alerting-getting-started.html).\nThese
changes add functionality to manage new alerts type - Attack\nDiscovery
Schedule.\n\n### Introduced endpoints\n\n- **Create** AD scheduling rule
route: `POST\n/internal/elastic_assistant/attack_discovery/schedules`\n-
**Read/Get** AD scheduling rule by id route:
`GET\n/internal/elastic_assistant/attack_discovery/schedules/{id}`\n-
**Update** AD scheduling rule by id route:
`PUT\n/internal/elastic_assistant/attack_discovery/schedules/{id}`\n-
**Delete** AD scheduling rule by id route:
`DELETE\n/internal/elastic_assistant/attack_discovery/schedules/{id}`\n-
**Enable** AD scheduling rule by id route:
`POST\n/internal/elastic_assistant/attack_discovery/schedules/{id}/_enable`\n-
**Disable** AD scheduling rule by id route:
`POST\n/internal/elastic_assistant/attack_discovery/schedules/{id}/_disable`\n-
**Find** all existing AD scheduling rules route:
`GET\n/internal/elastic_assistant/attack_discovery/schedules/_find`\n\n##
NOTES\n\nThe feature is hidden behind the feature flag:\n\n>
xpack.securitySolution.enableExperimental:\n['assistantAttackDiscoverySchedulingEnabled']\n\n##
cURL examples\n\n<details>\n <summary>Create AD scheduling rule
route</summary>\n\n```curl\ncurl --location
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin: security-solution' \\\n--header
'Content-Type: application/json' \\\n--data '{\n \"name\": \"Test
Schedule\",\n \"schedule\": {\n \"interval\": \"10m\"\n },\n \"params\":
{\n \"alertsIndexPattern\": \".alerts-security.alerts-default\",\n
\"apiConfig\": {\n \"connectorId\": \"gpt-4o\",\n \"actionTypeId\":
\".gen-ai\"\n },\n \"end\": \"now\",\n \"size\": 100,\n \"start\":
\"now-24h\"\n }\n}'\n```\n\n</details>\n\n<details>\n <summary>Read/Get
AD scheduling rule by id route</summary>\n\n```curl\ncurl --location
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Update AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request PUT
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin: security-solution' \\\n--header
'Content-Type: application/json' \\\n--data '{\n \"name\": \"Test
Schedule - Updated\",\n \"schedule\": {\n \"interval\": \"123m\"\n },\n
\"params\": {\n \"alertsIndexPattern\":
\".alerts-security.alerts-default\",\n \"apiConfig\": {\n
\"connectorId\": \"gpt-4o\",\n \"actionTypeId\": \".gen-ai\"\n },\n
\"end\": \"now\",\n \"size\": 35,\n \"start\": \"now-24h\"\n },\n
\"actions\": []\n}'\n```\n\n</details>\n\n<details>\n <summary>Delete AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request DELETE
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Enable AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request POST
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}/_enable'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Disable AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request POST
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}/_disable'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Find all
existing AD scheduling rules route</summary>\n\n```curl\ncurl --location
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/_find'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"fc11ca94f58c62a9accfa47019b539826c9afa1b"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/216656","number":216656,"mergeCommit":{"message":"[Attack
Discovery][Scheduling] Attack Discovery scheduling rule management
(#12003) (#216656)\n\n## Summary\n\nMain ticket
([Internal\nlink](https://github.com/elastic/security-team/issues/12003))\n\nTo
allow users to schedule Attack Discovery generations, we will
use\neither
[Alerting\nFramework](https://www.elastic.co/guide/en/kibana/current/alerting-getting-started.html).\nThese
changes add functionality to manage new alerts type - Attack\nDiscovery
Schedule.\n\n### Introduced endpoints\n\n- **Create** AD scheduling rule
route: `POST\n/internal/elastic_assistant/attack_discovery/schedules`\n-
**Read/Get** AD scheduling rule by id route:
`GET\n/internal/elastic_assistant/attack_discovery/schedules/{id}`\n-
**Update** AD scheduling rule by id route:
`PUT\n/internal/elastic_assistant/attack_discovery/schedules/{id}`\n-
**Delete** AD scheduling rule by id route:
`DELETE\n/internal/elastic_assistant/attack_discovery/schedules/{id}`\n-
**Enable** AD scheduling rule by id route:
`POST\n/internal/elastic_assistant/attack_discovery/schedules/{id}/_enable`\n-
**Disable** AD scheduling rule by id route:
`POST\n/internal/elastic_assistant/attack_discovery/schedules/{id}/_disable`\n-
**Find** all existing AD scheduling rules route:
`GET\n/internal/elastic_assistant/attack_discovery/schedules/_find`\n\n##
NOTES\n\nThe feature is hidden behind the feature flag:\n\n>
xpack.securitySolution.enableExperimental:\n['assistantAttackDiscoverySchedulingEnabled']\n\n##
cURL examples\n\n<details>\n <summary>Create AD scheduling rule
route</summary>\n\n```curl\ncurl --location
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin: security-solution' \\\n--header
'Content-Type: application/json' \\\n--data '{\n \"name\": \"Test
Schedule\",\n \"schedule\": {\n \"interval\": \"10m\"\n },\n \"params\":
{\n \"alertsIndexPattern\": \".alerts-security.alerts-default\",\n
\"apiConfig\": {\n \"connectorId\": \"gpt-4o\",\n \"actionTypeId\":
\".gen-ai\"\n },\n \"end\": \"now\",\n \"size\": 100,\n \"start\":
\"now-24h\"\n }\n}'\n```\n\n</details>\n\n<details>\n <summary>Read/Get
AD scheduling rule by id route</summary>\n\n```curl\ncurl --location
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Update AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request PUT
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin: security-solution' \\\n--header
'Content-Type: application/json' \\\n--data '{\n \"name\": \"Test
Schedule - Updated\",\n \"schedule\": {\n \"interval\": \"123m\"\n },\n
\"params\": {\n \"alertsIndexPattern\":
\".alerts-security.alerts-default\",\n \"apiConfig\": {\n
\"connectorId\": \"gpt-4o\",\n \"actionTypeId\": \".gen-ai\"\n },\n
\"end\": \"now\",\n \"size\": 35,\n \"start\": \"now-24h\"\n },\n
\"actions\": []\n}'\n```\n\n</details>\n\n<details>\n <summary>Delete AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request DELETE
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Enable AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request POST
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}/_enable'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Disable AD
scheduling rule by id route</summary>\n\n```curl\ncurl --location
--request POST
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/{id}/_disable'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n<details>\n <summary>Find all
existing AD scheduling rules route</summary>\n\n```curl\ncurl --location
'http://localhost:5601/internal/elastic_assistant/attack_discovery/schedules/_find'
\\\n--header 'kbn-xsrf: true' \\\n--header 'elastic-api-version: 1'
\\\n--header 'x-elastic-internal-origin:
security-solution'\n```\n\n</details>\n\n---------\n\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"fc11ca94f58c62a9accfa47019b539826c9afa1b"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants