-
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
adds createdAt and updatedAt fields to alerting #53793
adds createdAt and updatedAt fields to alerting #53793
Conversation
Pinging @elastic/kibana-alerting-services (Team:Alerting Services) |
💔 Build FailedTo update your PR or re-run it, just comment with: |
💚 Build SucceededTo update your PR or re-run it, just comment with: |
* master: Possibility to filter when testing scripted fields (elastic#35379) (elastic#44220) Update maps telemetry mappings to account for recent updates (elastic#53803) [Maps] Only show legend when layer is visible (elastic#53781) remove use of experimental fs.promises api (elastic#53346) [APM] Add log statements for flaky test (elastic#53775)
💚 Build SucceededTo update your PR or re-run it, just comment with: |
@elasticmachine merge upstream |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly side notes and a comment but LGTM!
return this.getAlertFromRaw( | ||
createdAlert.id, | ||
createdAlert.attributes, | ||
createdAlert.updated_at, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One thing worth noting in regards to comment #52738 (comment): This won't allow users to sort on the last time the alert was updated.
I'm not sure if this is a requirement but if ever it becomes, a separate PR to add updated_at
to the following file is all we'd have to do:
const TOP_LEVEL_FIELDS = ['_id', '_score']; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, that's an interesting point.
Thank's for pointing it out.
x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/create.ts
Show resolved
Hide resolved
…ris/kibana into alerting/created_at-and-updated_at * 'alerting/created_at-and-updated_at' of github.com:gmmorris/kibana: Allow chromeless applications to render via non-/app routes (elastic#51527) Add server rendering service to enable standalone route rendering (elastic#52161)
* master: Bump year in NOTICE.txt Add kibanamachine support to Github PR comments (elastic#53852) Add tests to ensure AAD isn't broken after performing a change on an alert / action (elastic#53333) Skip failing test suite [Vega] Sample [Flights] Airport Connections (Hover Over Airport) visualization not working (elastic#53799) Do not remount applications between page navigations (elastic#53851) [Canvas] Refactor Canvas to no longer use componentWillReceiveProps (elastic#52129) [Canvas] Migrate usage collector to NP plugin (elastic#53303)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm curious about the cases where updatedAt
can be null, because it doesn't seem like that would happen in real life. Also, I think the update functional tests could test a bit more (eg that update date > create date).
Other than that LGTM.
@@ -415,6 +421,7 @@ describe('create()', () => { | |||
"interval": "10s", | |||
}, | |||
"scheduledTaskId": "task-123", | |||
"updatedAt": null, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
strange seeing all the "updatedAt": null
lines, where createdAt
is not null, but I thinks that's because the updated_at
value in the saved objects mock is null. Could happen IRL, so not a bad test! But weird :-)
@@ -17,6 +17,8 @@ const mockedAlert = { | |||
params: { | |||
bar: true, | |||
}, | |||
createdAt: new Date(), | |||
updatedAt: null, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would think the normal case would be that updatedAt
would never be null, so seems like it should be set to a non-null value here.
@@ -76,6 +76,8 @@ export interface Alert { | |||
scheduledTaskId?: string; | |||
createdBy: string | null; | |||
updatedBy: string | null; | |||
createdAt: Date; | |||
updatedAt: Date | null; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmmm ... now I'm really wondering about when updatedAt
can be null, and createdAt
can't be null. That doesn't seem right. Upon creation, I'd think createdAt
and updatedAt
would be the same value, and then updatedAt
will get updated from then on. So, updatedAt
can't really ever be null, seems like.
}); | ||
expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think for the update tests, we should check that the create/update dates:
- aren't the same
- update > create
Can probably just make this one test, something like:
expect(Date.parse(response.body.updatedAt)).to.be.greaterThan(Date.parse(response.body.createdAt));
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm curious about the cases where
updatedAt
can be null, because it doesn't seem like that would happen in real life. Also, I think the update functional tests could test a bit more (eg that update date > create date).Other than that LGTM.
@pmuellr
The reason updatedAd
can be null
is that we do not set it's value, it's provided by SavedObjects client, and there it's Date | undefined
.
We talked in the past about enforcing null
in our concrete types, hence the undefined
=> null
, but as we do not set the value, it didn't feel right to suddenly set it.
We could use the value of createdAt
on updatedAt
if SavedObjects fails to provide it for some reason.
Thoughts?
The above is also why I didn't test that createdAt
< updatedAt
, as we don't set the value of updatedAt
, but I can add that assertion in the functional test, which I guess could catch some underlying breakage I guess, except it'll fail if we then use the value of createdAt
in updatedAt
, in which case it could become a <=
. 🤷♂
x-pack/test/alerting_api_integration/security_and_spaces/tests/alerting/create.ts
Show resolved
Hide resolved
@elasticmachine merge upstream |
…ris/kibana into alerting/created_at-and-updated_at * 'alerting/created_at-and-updated_at' of github.com:gmmorris/kibana: Rename `/api/security/oidc` to `/api/security/oidc/callback`. (elastic#53886) Updating transitive dependencies to use [email protected] (elastic#53899) [Reporting/Tests] consolidate functional test configs (elastic#52671) [Reporting] Correct the docvalue_fields params in the search query Download CSV from Dashboard Panel (elastic#52833) [Test/Newsfeed] Re-enable test and add news item to be filtered (elastic#53905) cleanup server-log action (elastic#53326) [Uptime] Delete uptime eslint rule skip (elastic#50912) [skip-ci] Expression Lifecycle Docs (elastic#51494) [Endpoint] add react router to endpoint app (elastic#53808) [SIEM][Detection Engine] Silence 409 errors on signal creation (elastic#53859) [Maps] get max_result_window and max_inner_result_window from index settings (elastic#53500) [ML] New Platform server shim: update analytics routes to use new platform router (elastic#53521) fixes typo on engine detection page (elastic#53877) [Maps] push mapbox value extraction from VectorStyle and into DynamicStyleProperty (elastic#53806) Fix suggested value for time_zone in range query (elastic#53841) Clean up generic hooks, use react-use instead (elastic#53822)
* master: Move index patterns: src/legacy/core_plugins/data 👉 src/plugins/data (elastic#53794) moved Task Manager server code under "server" directory (elastic#53777)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with the new tests comparing created/updated times in the functional tests
💚 Build SucceededHistory
To update your PR or re-run it, just comment with: |
When users are writing UI's they need to see when an alert was created and when it was last updated, to this end we've added these two fields on the alert type.
* master: [kbn/pm] add caching to bootstrap (elastic#53622) adds createdAt and updatedAt fields to alerting (elastic#53793)
* master: increase delay to make sure license refetched (elastic#53882) Allow custom NP plugin paths in production (elastic#53562) [Maps] show custom color ramps in legend (elastic#53780) [Lens] Expression type on document can be null (elastic#53883) [SIEM] [Detection engine] Add user permission to detection engine (elastic#53778) Update dependency @elastic/charts to v16.0.2 (elastic#52619) Set consistent EOL symbol in core API docs (elastic#53815) [Logs UI] Refactor query bar state to hooks (elastic#52656) [Maps] pass getFieldFormatter to DynamicTextProperty (elastic#53937) Invalidate alert API Key when generating a new one (elastic#53732) [Logs UI] HTTP API for log entries (elastic#53798) [kbn/pm] add caching to bootstrap (elastic#53622) adds createdAt and updatedAt fields to alerting (elastic#53793)
* master: increase delay to make sure license refetched (elastic#53882) Allow custom NP plugin paths in production (elastic#53562) [Maps] show custom color ramps in legend (elastic#53780) [Lens] Expression type on document can be null (elastic#53883) [SIEM] [Detection engine] Add user permission to detection engine (elastic#53778) Update dependency @elastic/charts to v16.0.2 (elastic#52619) Set consistent EOL symbol in core API docs (elastic#53815) [Logs UI] Refactor query bar state to hooks (elastic#52656) [Maps] pass getFieldFormatter to DynamicTextProperty (elastic#53937) Invalidate alert API Key when generating a new one (elastic#53732) [Logs UI] HTTP API for log entries (elastic#53798) [kbn/pm] add caching to bootstrap (elastic#53622) adds createdAt and updatedAt fields to alerting (elastic#53793) [SR] Enable component integration tests (elastic#53893)
…nsole-dependencies * 'master' of github.com:elastic/kibana: (33 commits) adds strict types to Alerting Client (elastic#53821) [Dashboard] Empty screen redesign (elastic#53681) Migrate config deprecations and `ShieldUser` functionality to the New Platform (elastic#53768) increase delay to make sure license refetched (elastic#53882) Allow custom NP plugin paths in production (elastic#53562) [Maps] show custom color ramps in legend (elastic#53780) [Lens] Expression type on document can be null (elastic#53883) [SIEM] [Detection engine] Add user permission to detection engine (elastic#53778) Update dependency @elastic/charts to v16.0.2 (elastic#52619) Set consistent EOL symbol in core API docs (elastic#53815) [Logs UI] Refactor query bar state to hooks (elastic#52656) [Maps] pass getFieldFormatter to DynamicTextProperty (elastic#53937) Invalidate alert API Key when generating a new one (elastic#53732) [Logs UI] HTTP API for log entries (elastic#53798) [kbn/pm] add caching to bootstrap (elastic#53622) adds createdAt and updatedAt fields to alerting (elastic#53793) [SR] Enable component integration tests (elastic#53893) Move index patterns: src/legacy/core_plugins/data 👉 src/plugins/data (elastic#53794) moved Task Manager server code under "server" directory (elastic#53777) Rename `/api/security/oidc` to `/api/security/oidc/callback`. (elastic#53886) ... # Conflicts: # yarn.lock
Summary
When users are writing UI's they need to see when an alert was created and when it was last updated, to this end we've added these two fields on the alert type.
closes #52738
Checklist
Use
strikethroughsto remove checklist items you don't feel are applicable to this PR.For maintainers