adds createdAt and updatedAt fields to alerting#53793
adds createdAt and updatedAt fields to alerting#53793gmmorris merged 16 commits intoelastic:masterfrom
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 |
mikecote
left a comment
There was a problem hiding this comment.
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.
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:
There was a problem hiding this comment.
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)
pmuellr
left a comment
There was a problem hiding this comment.
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.
| "interval": "10s", | ||
| }, | ||
| "scheduledTaskId": "task-123", | ||
| "updatedAt": null, |
There was a problem hiding this comment.
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 :-)
| bar: true, | ||
| }, | ||
| createdAt: new Date(), | ||
| updatedAt: null, |
There was a problem hiding this comment.
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.
| createdBy: string | null; | ||
| updatedBy: string | null; | ||
| createdAt: Date; | ||
| updatedAt: Date | null; |
There was a problem hiding this comment.
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.
| createdAt: response.body.createdAt, | ||
| updatedAt: response.body.updatedAt, | ||
| }); | ||
| expect(Date.parse(response.body.createdAt)).to.be.greaterThan(0); |
There was a problem hiding this comment.
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));
gmmorris
left a comment
There was a problem hiding this comment.
I'm curious about the cases where
updatedAtcan 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 handlebars@4.5.3 (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)
pmuellr
left a comment
There was a problem hiding this comment.
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