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

[DOCS] Add more detail to the license expiration documentation #125702

Open
mbarretta opened this issue Feb 15, 2022 · 18 comments · Fixed by #131474
Open

[DOCS] Add more detail to the license expiration documentation #125702

mbarretta opened this issue Feb 15, 2022 · 18 comments · Fixed by #131474

Comments

@mbarretta
Copy link

mbarretta commented Feb 15, 2022

The current License Expiration documentation has very few details on the consequences of expiration to the product security features.

In the case of Transforms, it's not clear if the documentation is correct: it says no new transforms can be created, but transforms are listed as a Basic feature.

I think the docs should explain the impact to each of the gold+ features. This is the list of product security features:

  • Kibana sub-feature privileges
  • Prelogin access agreement
  • Elasticsearch audit logging
  • Kibana audit logging
  • IP filtering
  • LDAP, PKI3, Active Directory authentication
  • Elasticsearch Token Service
  • Single sign-on (SAML, OpenID Connect, Kerberos)
  • Attribute-based access control
  • Field- and document-level security
  • Custom authentication & authorization realms
  • Encryption at rest support
  • FIPS 140-2 mode

One example of improved detail is around [DF]LS. A brief conversation with @bytebilly confirmed that roles w/ [DF]LS settings will be disabled upon expiration. I'd also expect you wouldn't be able to create new roles with those settings. But could you modify those roles to remove the [DF]LS settings?

Impact of license expiration is a common customer ask.

@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-docs (Team:Docs)

@jportner
Copy link
Contributor

jportner commented Feb 15, 2022

Related: we have an open issue to research the impact of license expiration and ensure that Kibana Security features behave "as expected" (#74646).

Some of the things you've outlined are Elasticsearch Security features that might be accessed through Kibana (such as "Field- and document-level security" and "FIPS 140-2 mode"), do you think those should be covered in the Kibana documentation?
FWIW, it looks like the ES docs link back to the Kibana docs page for license expiration, but I don't really like that: https://www.elastic.co/guide/en/elasticsearch/reference/current/update-license.html

@mbarretta
Copy link
Author

do you think those should be covered in the Kibana documentation?

Yeah, it seemed that the Kibana docs were the most comprehensive; didn't know the ES ones explicitly linked to them. We don't really have "platform" documentation that deals with these pan-product issues, so figure we should at least make this page more complete.

And thanks for linking that other expiration issue!

@jrodewig
Copy link
Contributor

We don't really have "platform" documentation that deals with these pan-product issues, so figure we should at least make this page more complete.

In the long term, we want to create these type of docs. In the meantime, would there be any issues with moving this documentation to the Elasticsearch Guide and using that page as a "one-stop shop" for license management?

I think there are a few compelling reasons for this:

  • We're using the Elasticsearch Guide to host more pan-documentation. For example, Secure the Elastic Stack.
  • The Elasticsearch Guide tends to rank higher from an SEO perspective.
  • Most other information regarding license management are in the Elasticsearch Guide.

Regardless of where we host it, I think keeping this information for every Elastic product on a single page provides the best experience for users.

I'm unlikely to have the bandwidth to handle this work right now, but I can work with @gchaps and other tech writers to migrate and update these docs at a later point.

@mbarretta
Copy link
Author

In the meantime, would there be any issues with moving this documentation to the Elasticsearch Guide and using that page as a "one-stop shop" for license management?

Not to me, but certainly not my decision. Maybe @sajjadwahmed and/or @VijayDoshi or PMs from their team?

@bytebilly
Copy link
Contributor

Impact of license expiration is a common customer ask.

I'm curious about the reason to make license expiration behavior a common ask. I would expect customers to renew their license in time, or to revert permanently to Basic in case they don't want to renew.

"Temporary" expiration sounds like something that should not happen often. Is that a way to leverage previously paid features, leveraging the lenient approach we had in the past? Is there another reason?

I'm not opposed to documentation, I'm just trying to figure out which problem are we addressing.

@mbarretta
Copy link
Author

mbarretta commented Feb 17, 2022

There are a few reasons why prospects/customers would want to know what happens when a license expires. The two most common I see are:

  1. As general due diligence to understand what level of "lock-in" there might be should they decide the subscription is ultimately not in their interest. Are indices from Transforms or Alerts deleted? Are users/roles deleted and the cluster left open? If it reverts to Basic, what specifically happens to each higher licensed feature so I know what I'd need to do to prepare should I stop my subscription.
  2. Procurement isn't always timely, and licenses can expire even when the users don't want it to. It often happens in government (and might in commercial too, though I don't know) where the folks who pay the bills are a different organization than the ones using it. Due either to oversight (renewal paperwork was missed), unclear responsibilities (is this something I pay or they pay?), budgeting battles (is this still approved? Is there a cheaper alternative?), or any other myriad of reasons, a renewal is delayed. Sometimes for months.

Is that a way to leverage previously paid features, leveraging the lenient approach we had in the past? Is there another reason?

I'm not sure what this means. When the license expires, there are code-level implications that bypass any attempt at leniency.

The problem this solves is two-fold:

  • lack of an accurate description of system behavior that impacts hundreds (more?) of features in the stack
  • uncertainty in field teams and product teams as to the specifics, which are necessary when talking with users per at least two reasons I listed above

@mbarretta
Copy link
Author

@mbarretta mbarretta changed the title [DOCS] Add more detail to the license expiration documentation for product security features [DOCS] Add more detail to the license expiration documentation Mar 9, 2022
@stacydrumm
Copy link

When negotiating renewals, customers often come right up to the deadline and sometimes over it. Being able to warn customer that a feature they use will shut down upon license expiration is powerful incentive to renew on time. Recently a customer's license expired. 2 days later they let us know that ILM had stopped working and their indices had ballooned. Halt of ILM upon license expiration wasn't documented. If it had been, it would have been very powerful incentive for them to renew on time.

@woodywalton
Copy link

+1-ing on the need for clearer docs around license fallback. Had a prospect (whom we are positioning for Enterprise and Searchable Snapshots due to their multi-year retention needs) ask yesterday what happens to our data if we don't/can't renew the subscription. It took some internal investigations to find out that the Searchable Snaphots essentially unmount and become plain old unsearchable snapshots.

debadair added a commit that referenced this issue May 4, 2022
As of elastic/elasticsearch#79671, Elasticsearch does a more stringent license check
rather than operating in a semi-degraded mode.

Closes #127845
Closes #125702
debadair added a commit that referenced this issue May 20, 2022
* [DOCS] Remove obsolete license expiration info

As of elastic/elasticsearch#79671, Elasticsearch does a more stringent license check
rather than operating in a semi-degraded mode.

Closes #127845
Closes #125702

* Update docs/management/managing-licenses.asciidoc

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
kibanamachine pushed a commit that referenced this issue May 20, 2022
* [DOCS] Remove obsolete license expiration info

As of elastic/elasticsearch#79671, Elasticsearch does a more stringent license check
rather than operating in a semi-degraded mode.

Closes #127845
Closes #125702

* Update docs/management/managing-licenses.asciidoc

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit 791ebfa)
kibanamachine added a commit that referenced this issue May 20, 2022
* [DOCS] Remove obsolete license expiration info

As of elastic/elasticsearch#79671, Elasticsearch does a more stringent license check
rather than operating in a semi-degraded mode.

Closes #127845
Closes #125702

* Update docs/management/managing-licenses.asciidoc

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

Co-authored-by: debadair <debadair@elastic.co>
@mbarretta
Copy link
Author

mbarretta commented May 20, 2022

I'm going to reopen this as I don't see anything in #131474 or elastic/elasticsearch#79671 that describes what happens when a license expires: what features are disabled and what state those features (e.g. document level security) are left in as a result

@mbarretta mbarretta reopened this May 20, 2022
klacabane added a commit to klacabane/kibana that referenced this issue May 23, 2022
commit bdb4966
Author: Angela Chuang <6295984+angorayc@users.noreply.github.com>
Date:   Mon May 23 13:13:23 2022 +0100

    styling (elastic#132539)

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit a807c90
Author: Esteban Beltran <academo@users.noreply.github.com>
Date:   Mon May 23 13:36:00 2022 +0200

    [Cases] Add a key to userActionMarkdown to prevent stale state (elastic#132681)

commit ba84602
Author: Tomasz Ciecierski <ciecierskitomek@gmail.com>
Date:   Mon May 23 13:33:20 2022 +0200

    [Osquery] Change prebuilt saved queries to include prebuilt flag (elastic#132651)

commit 6b846af
Author: Faisal Kanout <faisal.kanout@elastic.co>
Date:   Mon May 23 14:11:04 2022 +0300

    [Actionable Observability] Update the Rule details design and clean up (elastic#132616)

    * Add rule status in the rule summary

    * Match design

    * Remove unused imports

    * code review

commit c993ff2
Author: Byron Hulcher <byron.hulcher@elastic.co>
Date:   Mon May 23 06:25:17 2022 -0400

    [Workplace Search] Add categories to source data for internal connectors (elastic#132671)

commit b59fb97
Author: Pablo Machado <pablo.nevesmachado@elastic.co>
Date:   Mon May 23 12:02:43 2022 +0200

    [Security Solution] Update use_url_state to work with new side nav (elastic#132518)

    * Fix landing pages browser tab title

    * Fix new navigation url state

    * Fix unit tests

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit 693b3e8
Author: Tomasz Ciecierski <ciecierskitomek@gmail.com>
Date:   Mon May 23 11:54:29 2022 +0200

    [Osquery] Add Osquery to Alert context menu (elastic#131790)

commit 2cddced
Author: Jordan <51442161+JordanSh@users.noreply.github.com>
Date:   Mon May 23 12:50:55 2022 +0300

    [Cloud Posture] Trendline query changes (elastic#132680)

commit 7591fb6
Author: Giorgos Bamparopoulos <georgios.bamparopoulos@elastic.co>
Date:   Mon May 23 10:37:03 2022 +0100

    Fix agent config indicator when applied through fleet integration (elastic#131820)

    * Fix agent config indicator when applied through fleet integration

    * Add synthrace scenario

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit 37d40d7
Author: Dominique Clarke <dominique.clarke@elastic.co>
Date:   Mon May 23 04:56:34 2022 -0400

    [Synthetics] fix browser type as default in monitor management (elastic#132572)

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit ae8b6c8
Author: Lucas F. da Costa <lucas.costa@elastic.co>
Date:   Mon May 23 09:29:11 2022 +0100

    [Uptime] Fix bug causing all monitors to be saved to all locations [solves elastic#132314] (elastic#132325)

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit e0944d1
Author: Nodir Latipov <nodir.latypov@gmail.com>
Date:   Mon May 23 13:27:24 2022 +0500

    [Unified search] Use the DataViews service (elastic#130008)

    * feat: cleanup deprecated service and type

    * fix: rollback test

    * refact: replace deprecated type

    * refact: changed deprecation type

    * feat: added comments to deprecated imports that can't be cleaned up in this PR

    * refact: rollback query_string_input.test file

commit a3646eb
Author: Pablo Machado <machadoum@gmail.com>
Date:   Mon May 23 10:17:12 2022 +0200

    [Security Solutions] Refactor breadcrumbs to support new menu structure (elastic#131624)

    * Refactor breadcrumbs to support new structure

    * Fix code style

    * Fix more code style

    * Fix unit test

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit 9649307
Author: István Zoltán Szabó <istvan.szabo@elastic.co>
Date:   Mon May 23 10:12:54 2022 +0200

    [DOCS] Updates alerting authorization docs with info on retaining API keys (elastic#132402)

    Co-authored-by: Lisa Cawley <lcawley@elastic.co>

commit 40df1f3
Author: Tomasz Ciecierski <ciecierskitomek@gmail.com>
Date:   Mon May 23 08:45:50 2022 +0200

    [Osquery] Add labels, move osquery schema link (elastic#132584)

commit fbaf058
Author: Jiawei Wu <74562234+JiaweiWu@users.noreply.github.com>
Date:   Sun May 22 17:14:23 2022 -0700

    [RAM] Add shareable rules list (elastic#132437)

    * Shareable rules list

    * Hide snooze panel in rules list

    * Address comments and added tests

    * Fix tests

    * Fix tests

    * Fix lint

    * Address design comments and fix tests

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit 383239e
Author: Kfir Peled <61654899+kfirpeled@users.noreply.github.com>
Date:   Sun May 22 13:18:42 2022 +0300

    [Cloud Posture] Findings - Group by resource - Fixed bug not showing results (elastic#132529)

commit fb1eeb0
Author: Georgii Gorbachev <georgii.gorbachev@elastic.co>
Date:   Sat May 21 00:21:53 2022 +0200

    [Security Solution][Detections] Add new fields to the rule model: Related Integrations, Required Fields, and Setup (elastic#132409)

    **Addresses partially:** elastic/security-team#2083, elastic/security-team#558, elastic/security-team#2856, elastic/security-team#1801 (internal tickets)

    ## Summary

    **TL;DR:** With this PR, it's now possible to specify `related_integrations`, `required_fields`, and `setup` fields in prebuilt rules in https://github.com/elastic/detection-rules. They are returned within rules in the API responses.

    This PR:

    - Adds 3 new fields to the model of Security detection rules. These fields are common to all of the rule types we have.
      - **Related Integrations**. It's a list of Fleet integrations associated with a given rule. It's assumed that if the user installs them, the rule might start to work properly because it will start receiving source events potentially matching the rule's query.
      - **Required Fields**. It's a list of event fields that must be present in the source indices of a given rule.
      - **Setup Guide**. It's any instructions for the user for setting up their environment in order to start receiving source events for a given rule. It's a text. Markdown is supported. It's similar to the Investigation Guide that we show on the Details page.
    - Adjusts API endpoints accordingly:
      - These fields are for prebuilt rules only and are supposed to be read-only in the UI.
      - Specifying these fields in the request parameters of the create/update/patch rule API endpoints is not supported.
      - These fields are returned in all responses that contain rules. If they are missing in a rule, default values are returned (empty array, empty string).
      - When duplicating a prebuilt rule, these fields are being reset to their default value (empty array, empty string).
      - Export/Import is supported. Edge case / supported hack: it's possible to specify these fields manually in a ndjson doc and import with a rule.
      - The fields are being copied to `kibana.alert.rule.parameters` field of an alert document, which is mapped as a flattened field type. No special handling for the new fields was needed there.
    - Adjusts tests accordingly.

    ## Related Integrations

    Example (part of a rule returned from the API):

    ```json
    {
      "related_integrations": [
        {
          "package": "windows",
          "version": "1.5.x"
        },
        {
          "package": "azure",
          "integration": "activitylogs",
          "version": "~1.1.6"
        }
      ],
    }
    ```

    Schema:

    ```ts
    /**
     * Related integration is a potential dependency of a rule. It's assumed that if the user installs
     * one of the related integrations of a rule, the rule might start to work properly because it will
     * have source events (generated by this integration) potentially matching the rule's query.
     *
     *   NOTE: Proper work is not guaranteed, because a related integration, if installed, can be
     *   configured differently or generate data that is not necessarily relevant for this rule.
     *
     * Related integration is a combination of a Fleet package and (optionally) one of the
     * package's "integrations" that this package contains. It is represented by 3 properties:
     *
     *   - `package`: name of the package (required, unique id)
     *   - `version`: version of the package (required, semver-compatible)
     *   - `integration`: name of the integration of this package (optional, id within the package)
     *
     * There are Fleet packages like `windows` that contain only one integration; in this case,
     * `integration` should be unspecified. There are also packages like `aws` and `azure` that contain
     * several integrations; in this case, `integration` should be specified.
     *
     * @example
     * const x: RelatedIntegration = {
     *   package: 'windows',
     *   version: '1.5.x',
     * };
     *
     * @example
     * const x: RelatedIntegration = {
     *   package: 'azure',
     *   version: '~1.1.6',
     *   integration: 'activitylogs',
     * };
     */
    export type RelatedIntegration = t.TypeOf<typeof RelatedIntegration>;
    export const RelatedIntegration = t.exact(
      t.intersection([
        t.type({
          package: NonEmptyString,
          version: NonEmptyString,
        }),
        t.partial({
          integration: NonEmptyString,
        }),
      ])
    );
    ```

    ## Required Fields

    Example (part of a rule returned from the API):

    ```json
    {
      "required_fields": [
        {
          "name": "event.action",
          "type": "keyword",
          "ecs": true
        },
        {
          "name": "event.code",
          "type": "keyword",
          "ecs": true
        },
        {
          "name": "winlog.event_data.AttributeLDAPDisplayName",
          "type": "keyword",
          "ecs": false
        }
      ],
    }
    ```

    Schema:

    ```ts
    /**
     * Almost all types of Security rules check source event documents for a match to some kind of
     * query or filter. If a document has certain field with certain values, then it's a match and
     * the rule will generate an alert.
     *
     * Required field is an event field that must be present in the source indices of a given rule.
     *
     * @example
     * const standardEcsField: RequiredField = {
     *   name: 'event.action',
     *   type: 'keyword',
     *   ecs: true,
     * };
     *
     * @example
     * const nonEcsField: RequiredField = {
     *   name: 'winlog.event_data.AttributeLDAPDisplayName',
     *   type: 'keyword',
     *   ecs: false,
     * };
     */
    export type RequiredField = t.TypeOf<typeof RequiredField>;
    export const RequiredField = t.exact(
      t.type({
        name: NonEmptyString,
        type: NonEmptyString,
        ecs: t.boolean,
      })
    );
    ```

    ## Setup Guide

    Example (part of a rule returned from the API):

    ```json
    {
      "setup": "## Config\n\nThe 'PowerShell Script Block Logging' logging policy must be enabled.\nSteps to implement the logging policy with with Advanced Audit Configuration:\n\n```\nComputer Configuration > \nAdministrative Templates > \nWindows PowerShell > \nTurn on PowerShell Script Block Logging (Enable)\n```\n\nSteps to implement the logging policy via registry:\n\n```\nreg add \"hklm\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ScriptBlockLogging\" /v EnableScriptBlockLogging /t REG_DWORD /d 1\n```\n",
    }
    ```

    Schema:

    ```ts
    /**
     * Any instructions for the user for setting up their environment in order to start receiving
     * source events for a given rule.
     *
     * It's a multiline text. Markdown is supported.
     */
    export type SetupGuide = t.TypeOf<typeof SetupGuide>;
    export const SetupGuide = t.string;
    ```

    ## Details on the schema

    This PR adjusts all the 6 rule schemas we have:

    1. Alerting Framework rule `params` schema:
        - `security_solution/server/lib/detection_engine/schemas/rule_schemas.ts`
        - `security_solution/server/lib/detection_engine/schemas/rule_converters.ts`
    2. HTTP API main old schema:
        - `security_solution/common/detection_engine/schemas/response/rules_schema.ts`
    3. HTTP API main new schema:
        - `security_solution/common/detection_engine/schemas/request/rule_schemas.ts`
    4. Prebuilt rule schema:
        - `security_solution/common/detection_engine/schemas/request/add_prepackaged_rules_schema.ts`
    5. Import rule schema:
        - `security_solution/common/detection_engine/schemas/request/import_rules_schema.ts`
    6. Rule schema used on the frontend side:
        - `security_solution/public/detections/containers/detection_engine/rules/types.ts`

    Names of the fields on the HTTP API level:

    - `related_integrations`
    - `required_fields`
    - `setup`

    Names of the fields on the Alerting Framework level:

    - `params.relatedIntegrations`
    - `params.requiredFields`
    - `params.setup`

    ## Next steps

    - Create a new endpoint for returning installed Fleet integrations (gonna be a separate PR).
    - Rebase elastic#131475 on top of this PR after merge.
    - Cover the new fields with dedicated tests (gonna be a separate PR).
    - Update API docs (gonna be a separate PR).
    - Address the tech debt of having 6 different schemas (gonna create a ticket for that).

    ### Checklist

    - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials
    - [ ] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios

commit 788dd2e
Author: Andrew Goldstein <andrew-goldstein@users.noreply.github.com>
Date:   Fri May 20 16:02:05 2022 -0600

    [Security Solution] Fixes sorting and tooltips on columns for non-ECS fields that are only one level deep (elastic#132570)

    ## [Security Solution] Fixes sorting and tooltips on columns for non-ECS fields that are only one level deep

    This PR fixes <elastic#132490>, an issue where Timeline columns for non-ECS fields that are only one level deep couldn't be sorted, and displayed incomplete metadata in the column's tooltip.

    ### Before

    ![test_field_1_actual_tooltip](https://user-images.githubusercontent.com/4459398/169208299-51d9296a-15e1-4eb0-bc31-a0df6a63f0c5.png)

    _Before: The column is **not** sortable, and the tooltip displays incomplete metadata_

    ### After

    ![after](https://user-images.githubusercontent.com/4459398/169414767-7274a795-015f-4805-8c3f-b233ead994ea.png)

    _After: The column is sortable, and the tooltip displays the expected metadata_

    ### Desk testing

    See the _Steps to reproduce_ section of <elastic#132490> for testing details.

commit 51ae020
Author: Constance <constancecchen@users.noreply.github.com>
Date:   Fri May 20 14:30:36 2022 -0700

    Upgrade EUI to v55.1.3 (elastic#132451)

    * Upgrade EUI to 55.1.3 backport

    * [Deprecation] Remove `watchedItemProps` from EuiContextMenu usage - should no longer be necessary

    * Update snapshots with new data-popover attr

    * Fix failing FTR test

    - Now that EuiContextMenu focus is restored correctly, there is a tooltip around the popover toggle that's blocking an above item that the test wants to click

    - swapping the order so that the tooltip does not block the clicked item should work

    * Fix 2nd maps FTR test with blocking tooltip

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit 642290b
Author: Nathan Reese <reese.nathan@elastic.co>
Date:   Fri May 20 15:11:15 2022 -0600

    [maps] convert ESPewPewSource to typescript (elastic#132656)

    * [maps] convert ESPewPewSource to typescript

    * move @ts-expect-error moved by fix

commit eb6a061
Author: Brian Seeders <brian.seeders@elastic.co>
Date:   Fri May 20 16:57:49 2022 -0400

    [docs] Add 'yarn dev-docs' for managing and starting dev docs (elastic#132647)

commit e0ea600
Author: Hannah Mudge <Heenawter@users.noreply.github.com>
Date:   Fri May 20 14:55:31 2022 -0600

    Add group 6 to FTR config (elastic#132655)

commit 41635e2
Author: Karl Godard <karl.godard@elastic.co>
Date:   Fri May 20 13:35:30 2022 -0700

    fixed search highlighting. was only showing highlighted text w/o context (elastic#132650)

    Co-authored-by: mitodrummer <karlgodard@elastic.co>

commit 791ebfa
Author: debadair <debadair@elastic.co>
Date:   Fri May 20 13:34:04 2022 -0700

    [DOCS] Remove obsolete license expiration info (elastic#131474)

    * [DOCS] Remove obsolete license expiration info

    As of elastic/elasticsearch#79671, Elasticsearch does a more stringent license check
    rather than operating in a semi-degraded mode.

    Closes elastic#127845
    Closes elastic#125702

    * Update docs/management/managing-licenses.asciidoc

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit e55bf40
Author: Nathan Reese <reese.nathan@elastic.co>
Date:   Fri May 20 14:15:00 2022 -0600

    [Maps] create MVT_VECTOR when using choropleth wizard (elastic#132648)

commit 46cd729
Author: Jan Monschke <jan.monschke@elastic.co>
Date:   Fri May 20 22:02:00 2022 +0200

    [SecuritySolution] Disable agent status filters and timeline interaction (elastic#132586)

    * fix: disable drag-ability and hover actions for agent statuses

    The agent fields cannot be queried with ECS and therefore should not provide Filter In/Out functionality nor should users be able to add their representative fields to timeline investigations. Therefore users should not be able to add them to a timeline query by dragging them.

    * chore: make code more readable

commit e857b30
Author: Vadim Kibana <82822460+vadimkibana@users.noreply.github.com>
Date:   Fri May 20 20:36:59 2022 +0200

    remove human-readable automatic slug generation (elastic#132593)

    * remove human-readable automatic slug generation

    * make change non-breaking

    * [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix'

    * remove test

    Co-authored-by: streamich <streamich@gmail.com>
    Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>

commit 6fc2fff
Author: Lisa Cawley <lcawley@elastic.co>
Date:   Fri May 20 10:48:15 2022 -0700

    [ML] Minor edits in prebuilt job descriptions (elastic#132633)

commit ecca231
Author: Felix Stürmer <weltenwort@users.noreply.github.com>
Date:   Fri May 20 19:37:03 2022 +0200

    [Stack Monitoring] Convert setup routes to TypeScript (elastic#131265)

commit 065ea3e
Author: Byron Hulcher <byron.hulcher@elastic.co>
Date:   Fri May 20 13:12:49 2022 -0400

    [Workplace Search] Remove Custom API Source Integration tile (elastic#132538)

commit 583d2b7
Author: Byron Hulcher <byron.hulcher@elastic.co>
Date:   Fri May 20 13:12:32 2022 -0400

    [Workplace Search] Add documentation links for v8.3.0 connectors (elastic#132547)

commit c244883
Author: Nathan Reese <reese.nathan@elastic.co>
Date:   Fri May 20 10:35:00 2022 -0600

    [maps] show marker size in legend (elastic#132549)

    * [Maps] size legend

    * clean-up

    * refine spacing

    * clean up

    * more cleanup

    * use euiTheme for colors

    * fix jest test

    * do not show marker sizes for icons

    * remove lodash

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit d70ae0f
Author: Quynh Nguyen <43350163+qn895@users.noreply.github.com>
Date:   Fri May 20 11:34:35 2022 -0500

    [ILM] Add warnings for managed system policies  (elastic#132269)

    * Add warnings to system/managed policies

    * Fix translations, policies

    * Add jest tests

    * Add jest tests to assert new toggle behavior

    * Add jest tests for edit policy callout

    * Fix snapshot

    * [ML] Update jest tests with helper, rename helper for clarity

    * [ML] Add hook for local storage to remember toggle setting

    * [ML] Fix naming

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit f70b4af
Author: Nicolas Chaulet <nicolas.chaulet@elastic.co>
Date:   Fri May 20 12:22:08 2022 -0400

    [Fleet] Fix rolling upgrade CANCEL and UI fixes (elastic#132625)

commit d9f141a
Author: Kevin Logan <56395104+kevinlog@users.noreply.github.com>
Date:   Fri May 20 11:37:35 2022 -0400

    [Security Solution] Telemetry for Event Filters counts on both user and global entries (elastic#132542)

commit 1b4ac7d
Author: Yaroslav Kuznietsov <kuznetsov.yaroslav.yk@gmail.com>
Date:   Fri May 20 17:54:13 2022 +0300

    [XY] Reference lines overlay fix. (elastic#132607)

commit 759f13f
Author: Nicolas Chaulet <nicolas.chaulet@elastic.co>
Date:   Fri May 20 10:39:09 2022 -0400

    [Fleet] Remove reference to non removable package feature (elastic#132458)

commit 7e15097
Author: Lisa Cawley <lcawley@elastic.co>
Date:   Fri May 20 07:32:27 2022 -0700

    [ML] Adds placeholder text for testing NLP models (elastic#132486)

commit bc31053
Author: Dmitry Tomashevich <39378793+Dmitriynj@users.noreply.github.com>
Date:   Fri May 20 17:09:20 2022 +0300

    [Discover][Alerting] Implement editing of dataView, query & filters (elastic#131688)

    * [Discover] introduce params editing using unified search

    * [Discover] fix unit tests

    * [Discover] fix functional tests

    * [Discover] fix unit tests

    * [Discover] return test subject name

    * [Discover] fix alert functional test

    * Update x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression_form.tsx

    Co-authored-by: Julia Rechkunova <julia.rechkunova@gmail.com>

    * Update x-pack/plugins/stack_alerts/public/alert_types/es_query/expression/search_source_expression_form.tsx

    Co-authored-by: Matthias Wilhelm <ankertal@gmail.com>

    * [Discover] hide filter panel options

    * [Discover] improve functional test

    * [Discover] apply suggestions

    * [Discover] change data view selector

    * [Discover] fix tests

    * [Discover] apply suggestions, fix lang mode toggler

    * [Discover] mote interface to types file, clean up diff

    * [Discover] fix saved query issue

    * Update x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type.ts

    Co-authored-by: Matthias Wilhelm <ankertal@gmail.com>

    * [Discover] remove zIndex

    * [Discover] omit null searchType from esQuery completely, add isEsQueryAlert check for useSavedObjectReferences hook

    * [Discover] set searchType to esQuery when needed

    * [Discover] fix unit tests

    * Update x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type_params.ts

    Co-authored-by: Matthias Wilhelm <ankertal@gmail.com>

    * Update x-pack/plugins/stack_alerts/server/alert_types/es_query/alert_type.ts

    Co-authored-by: Matthias Wilhelm <ankertal@gmail.com>

    Co-authored-by: Julia Rechkunova <julia.rechkunova@gmail.com>
    Co-authored-by: Matthias Wilhelm <ankertal@gmail.com>

commit d344088
Author: Nathan Reese <reese.nathan@elastic.co>
Date:   Fri May 20 08:06:25 2022 -0600

    [maps] Use label features from ES vector tile search API to fix multiple labels (elastic#132080)

    * [maps] mvt labels

    * eslint

    * only request labels when needed

    * update vector tile integration tests for hasLabels parameter

    * [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix'

    * fix tests

    * fix test

    * only add _mvt_label_position filter when vector tiles are from ES vector tile search API

    * review feedback

    * include hasLabels in source data

    * fix jest test

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit 1d8bc7e
Author: Shivindera Singh <shivindera@gmail.com>
Date:   Fri May 20 15:53:00 2022 +0200

    hasData service - hit search api in case of an error with resolve api (elastic#132618)

commit 7c37eda
Author: Tomasz Ciecierski <ciecierskitomek@gmail.com>
Date:   Fri May 20 15:42:28 2022 +0200

    [Osquery] Fix pagination issue on Alert's Osquery Flyout (elastic#132611)

commit 2e51140
Author: Katerina Patticha <aikaterini.patticha@elastic.co>
Date:   Fri May 20 15:34:29 2022 +0200

    Show service group icon only when there are service groups (elastic#131138)

    * Show service group icon when there are service groups

    * Fix fix errors

    * Remove additional request and display  icon only for the service groups

    * Revert "Remove additional request and display  icon only for the service groups"

    This reverts commit 7ff2bc9.

    * Add dependencies

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit 24cbb32
Author: Yaroslav Kuznietsov <kuznetsov.yaroslav.yk@gmail.com>
Date:   Fri May 20 16:27:14 2022 +0300

    [XY] `pointsRadius`, `showPoints` and `lineWidth`. (elastic#130391)

    * Added pointsRadius, showPoints and lineWidth.

    * Added tests.

    Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>

commit 1c2eb9f
Author: Sergi Massaneda <sergi.massaneda@elastic.co>
Date:   Fri May 20 13:59:56 2022 +0100

    [Security Solution] New Side nav integrating links config  (elastic#132210)

    * Update navigation landing pages to use appLinks config

    * align app links changes

    * link configs refactor to use updater$

    * navigation panel categories

    * test and type fixes

    * [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix'

    * types changes

    * shared style change moved to a separate PR

    * use old deep links

    * minor changes after ux meeting

    * add links filtering

    * remove duplicated categories

    * temporary increase of plugin size limit

    * swap management links order

    * improve performance closing nav panel

    * test updated

    * host isolation page filterd and some improvements

    * remove async from plugin start

    * move links register from start to mount

    * restore size limits

    * Fix use_show_timeline unit tests

    Co-authored-by: Pablo Neves Machado <pablo.nevesmachado@elastic.co>
    Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>

commit 92ac7f9
Author: Katrin Freihofner <katrin.freihofner@elastic.co>
Date:   Fri May 20 13:51:51 2022 +0200

    adds small styling updates to header panels (elastic#132596)
emilioalvap pushed a commit to emilioalvap/kibana that referenced this issue May 23, 2022
* [DOCS] Remove obsolete license expiration info

As of elastic/elasticsearch#79671, Elasticsearch does a more stringent license check
rather than operating in a semi-degraded mode.

Closes elastic#127845
Closes elastic#125702

* Update docs/management/managing-licenses.asciidoc

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
j-bennet pushed a commit to j-bennet/kibana that referenced this issue Jun 2, 2022
* [DOCS] Remove obsolete license expiration info

As of elastic/elasticsearch#79671, Elasticsearch does a more stringent license check
rather than operating in a semi-degraded mode.

Closes elastic#127845
Closes elastic#125702

* Update docs/management/managing-licenses.asciidoc

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
@smgduncan
Copy link

smgduncan commented Aug 1, 2022

Would like to upvote this one - the ANZ Sales Team has asked for some clarity around this, as an incentive to encourage customers to renew promptly.

I note as of 8.2 the information on the documentation has been reduced even further.
8.1: https://www.elastic.co/guide/en/kibana/8.1/managing-licenses.html#license-expiration provided some breakdown (albeit it did not look complete) - 8.2 and later simply states :

License expiration

Licenses are valid for a specific time period. 30 days before the license expiration date, Elasticsearch starts logging expiration warnings. If monitoring is enabled, expiration warnings are displayed prominently in Kibana.

If your license expires, your subscription level reverts to Basic and you will no longer be able to use Platinum or Enterprise features.

https://www.elastic.co/guide/en/kibana/8.2/managing-licenses.html#license-expiration

In addition to the security features Mike has listed above, I've been unable to find any documentation around what happens to features such as Searchable Snapshot / Frozen and CCR?

Also a bit concerned about @stacydrumm comment above that ILM stopped working - the Subscriptions page lists ILM as basic - perhaps that policy included use of searchable snapshots or similar?

So I'd definitely like to 'upvote' getting the docs improved in this area!

@tris325
Copy link

tris325 commented Aug 2, 2022

Just wanted to mention that we have heard this request from the federal agencies I support as well, something simple but clear cut that spells out exactly what happens when license expires.

@lukeelmers
Copy link
Member

I agree it would be helpful to clearly spell out the impact of an expired license. However, getting a comprehensive list together is going to involve a bit of coordination across teams.

From a customer perspective, there's not always a clear difference between a Kibana feature and an Elasticsearch feature -- the end result is that something is broken in the Kibana UI. But on the Kibana side, the distinction between the two is important.

For subscription features that are in Kibana, we'd need to go around to each team that owns those features to assess the impact of an expired license. In most cases, my guess would be that these features stop working entirely as soon as Elasticsearch marks a license as no longer active. The licensing service that plugins use to check the license status is pretty much pulling this info directly from ES. So as soon as a status changes to invalid or expired, I’d expect the majority of features to stop working or disappear.

For subscription features that are in Elasticsearch but accessed through Kibana, we'd similarly need to work our way through each team that owns a plugin depending on those features. However, I'm less confident that teams are proactively performing license checks for these features on the Kibana side, meaning it's quite likely that an Elasticsearch feature could start failing but not be handled gracefully by Kibana.

Overall, I expect this would require an audit by each team contributing to Kibana (similar to what Platform Security is doing in #74646) in order to have confidence that the expected behavior is fully documented.

cc @VijayDoshi @rayafratkina for awareness

@rayafratkina
Copy link
Contributor

Definitely ++ to thinking holistically of what users will experience once the license expires.
Reading through the comments, I think we need to primarily clarify what happens with data and access on license expiration. For all other features, I think "they will stop working" is a good enough answer.

Since #74646 already addresses the access questions, ++ @sajjadwahmed @cjcenizal to look into what happens to data and data administration capabilities.

@mbarretta
Copy link
Author

I encourage an expansive take on this. As an example, w.r.t. Transforms: does "stop working" mean:

  • existing jobs stop running? if so, are they stopped automatically first or somehow disabled behind the scenes?
  • existing jobs cannot be modified (stopped, etc)
  • existing jobs cannot be deleted
  • new jobs cannot be created

These are the detailed questions we see from our users, and a broad "it just stops working" doesn't provide the necessary detail to answer.

@smgduncan
Copy link

To echo Mike's point - similarly around the SSO / Security aspects. The docs say 'it stops working' but I've heard rumours (from our Sales reps) that we don't immediately block cluster access on license expiry - e.g. SSO will continue to work. So far I've not been able to find a clear statement around this, either internal or external. This aligns with the comment by @rayafratkina above, but even from reading #74646 I'm not 100% clear on whether access stops working, or you just get a warning in Kibana?

@mbarretta
Copy link
Author

The docs have removed details vs adding them. As of 8.9, the full text is:

If your license expires, your subscription level reverts to Basic and you will no longer be able to use Platinum or Enterprise features.

What does it mean to "no longer be able to use"? To restate points from above:

  • Can users no longer login if authn/z was using a SAML provider? Or can everyone login?
  • If using Basic RBAC with DLS, would DLS still be enforced or could anyone see everything?
  • Would ML jobs continue to run or would all jobs be stopped?
  • Would fully/partially mounted indices automatically unmount? Would fully mounted (i.e. cold) indices be queryable at all or just default to a zero replica index?
  • Do ILM policies become disabled or just no longer able to be created/modified?
  • etc etc

The "cost" of ending a subscription is part of the analysis before starting one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.