Commit Graph
432 Commits
Author SHA1 Message Date
Priya Patel 1780077068 Replace time element with Hds::Time component (#3112)
* refactor: 💡 use Hds::Time component

* refactor: 💡 fix data test selector

* refactor: 💡 standardardized date/time format

* refactor: 💡 fix tests and remove date helpers

* fix: 🐛 fixed helper test import
2026-02-02 18:52:19 -06:00
Lisbet Alvarez 3ba93927fe Update copyright headers (#3146)
* empty commit

* Add missing copyright headers

* chore: 🤖 update copywrite config file with correct year

* Add missing copyright headers

* empty commit (gh action merge checks are stuck)
2026-01-28 17:09:06 -08:00
55e1e68f30 [COMPLIANCE] Update Copyright and License Headers (#3099)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Dharini <dharini@hashicorp.com>
2026-01-20 11:35:10 -05:00
Lisbet Alvarez 773c1596e5 fix: 🐛 Update worker_filter label for AWS DHC w/ static creds (#3114)
* fix: 🐛 Update worker_filter label for AWS DHC w/ static creds

* test: 💍 add test case

* test: 💍 fix serializer tests
2026-01-08 14:45:16 -08:00
hashicc f1ffb80b80 Revert "chore: 🤖 bump ember-can (#3093)" (#3107)
This reverts commit b5d33948dc.
2025-12-08 18:20:55 -05:00
hashicc b5d33948dc chore: 🤖 bump ember-can (#3093)
* chore: 🤖 bump ember-can

* chore: 🤖 rename "can" service (deprecated) to abilities

See https://github.com/minutebase/ember-can/pull/152

* chore: 🤖 bump to ember-can@^8

* chore: 🤖 extend resolver for ember-can v7 breaking change

https://github.com/minutebase/ember-can/pull/186
2025-12-08 10:41:38 -05:00
Lisbet Alvarez accf9faf60 refactor: 💡 update credential-library form for password type (#3060)
* refactor: 💡 update credential-library form for password type

* style: 💄 fix display issue

* test: 💍 add test cases
2025-11-18 11:20:49 -08:00
Zhihe Li 92f5a65c00 feat: 🎸 Add ability to search other resources as well (#3021)
This commit adds the ability to search across multiple tables with joins which unlocks a better search experience in the case of tables that source their data from multiple tables.
2025-11-05 17:57:45 -05:00
Zhihe Li fda1f56ad1 feat: 🎸 Add support for joins with filters (#3010)
This commit adds support for being able to join to other tables when filtering.
Support was also added for being able to find null values.
2025-11-03 17:28:11 -05:00
Zhihe Li fa18bfff01 feat: 🎸 Refactor session recording filters (#2981)
This commit has a few notable changes:

1. A simple attempt at establishing a pattern for using SELECT statements. This will be useful in the future for joins/subquery support.
2. Expanded usage of searching to be able to pass instead of just a string, an object that lets a consumer choose which columns to search on.
3. Decouple our session recording filters from being loaded from the route model hook which is a departure from our convention. This has the benefit of actually letting the page first load and having the filters load async so the page doesn't wait for the filters to finish. This is also much faster to query for each individual filter option from SQLite rather than returning all data to filter in application code.
2025-10-31 16:58:05 -04:00
Priya Patel b4f3741979 fix: 🐛 Update vault-ldap cred library (#3000)
* fix: 🐛 remove UPD cred type from vault-ldap

* fix: 🐛 failing tests

* fix: 🐛 remove log
2025-10-02 12:08:25 -05:00
Lisbet Alvarez d0924f7e6d fix: 🐛 max depth error for active sessions filter in targets (#3004)
* fix: 🐛 max depth error for active sessions filter in targets

* refactor: 💡 revert route and convert operators in parser

* refactor: 💡 add expr limit

* refactor: 💡 add parameters to IN/NOT IN conditions

* test: 💍 fix tests

* docs: ✏️ add comment
2025-09-17 15:32:39 -07:00
Priya Patel 3b7873302b feat: 🎸 vault ldap cred 2025-09-03 16:08:00 -07:00
Dharini Jeeva d2d351c9f7 chore: 🤖 add rdp target type 2025-09-03 16:00:12 -07:00
Dharini Jeeva e1696e9a4d feat: 🎸 add support for upd credential 2025-09-03 15:59:29 -07:00
Zhihe Li 9e263379a7 refactor: 💡 Remove usage of indexed DB (#2979)
* refactor: 💡 Remove usage of indexed DB
2025-09-03 11:41:43 -04:00
Zhihe Li c2b0f321de feat: 🎸 Add sqlite support for auth methods (#2969)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17418
2025-09-03 11:41:42 -04:00
Zhihe Li 9e612cf83d feat: 🎸 Add sqlite support for credential stores (#2967)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17416
2025-09-03 11:41:42 -04:00
Lisbet AlvarezandZhihe Li d414df4ca4 feat: 🎸 Add custom sort support to sql parser (#2959)
* feat: 🎸 Add custom sort support to sql parser

* test: 💍 fix column numner

* refactor: 💡 apply pr feedback

* fix: 🐛 use every method for checking attrs

* refactor: 💡 PR feedback + ensure default sort

* refactor: 💡 Consolidate attributes field when sorting

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17441

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-09-03 11:41:41 -04:00
Zhihe Li a4bf02b21b refactor: 💡 Change variable name for peeking db (#2954) 2025-09-03 11:41:41 -04:00
Zhihe Li e0982da744 feat: 🎸 Add sqlite handler and parser (#2933)
* feat: 🎸 Add sqlite handler and parser

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-17410
2025-09-03 11:41:41 -04:00
Zhihe Li a9a6518b23 feat: 🎸 Allow building and bundling of web workers in ember (#2923)
* feat: 🎸 Allow building and bundling of web workers in ember

* refactor: 💡 Cleanup code and add comments
2025-09-03 11:41:40 -04:00
Carlos Alcaide Corvo 389c635030 Modify string sorting to benefit upperCase (#2924)
* Modify the string sorting to benefit uppercase over lowercase at comparison
2025-07-11 10:08:39 -07:00
Lisbet Alvarez 738fa1f15f refactor: 💡 add custom sort to resources (#2860)
* refactor: 💡 add custom sort

* test: 💍 fix tests

* test: 💍 fix more tests

* refactor: 💡 use reusable sort function for name

* refactor: 💡 use sort util in all resources w/ optional name

* Add missing copyright headers

* test: 💍 fix broken tests & add tests for new util

* refactor: 💡 add name custom sort to users

* test: 💍 fix import in tests

* refactor: 💡 add custom name sort to scopes

* test: 💍 pr feedback on util test cases

* refactor: 💡 move sort function into object (pr feedback)
2025-06-05 11:00:25 -07:00
Carlos Alcaide Corvo b0d26fe1e6 Add sorting foundation as util and using it within indexed-db-handler (#2773) 2025-05-13 16:18:04 -04:00
Cameron Perera 40ec4493ea fix: 🐛 credential library serializer for SSH certificate (#2790)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16880
2025-04-25 10:23:51 -05:00
hashicc de83d59bde Add additional indexeddb-handler tests (#2786) 2025-04-24 11:05:44 -04:00
hashicc 6585fa8e41 Add tests for indexed db handler (#2759) 2025-04-09 14:52:02 -04:00
Cameron Perera f35382a4e0 refactor: 💡 update adapter when transforming filter error (#2702)
* refactor: 💡 update adapter when transforming filter error

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16580

* style: 💄 add comment about adapter changes for translated field

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16580

* style: 💄 move comment to adapter

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16580

* style: 💄 update old comment about model fragments

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16580

* refactor: 💡 use extractErrors in serializers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16580
2025-03-03 09:58:45 -06:00
Lauren e8cc22879f [ICU-15403] Trim whitespace on storage buckets and host sets json attrs serializers (#2636)
* trim whitespace on json attrs in storage bucket serializer

* add test for storage bucket serializer

* move trimWhitespace check to application level

* add trimWhitespace to preferred_endpoints attr

* add conditional for string arr

* trim whitespace on str arr

* add check for null val

* refactor, move logic

* relocate comment

* add unit test for application serializer
2025-02-11 18:31:01 -05:00
Cameron Perera cb895024e0 fix: 🐛 update hidden secrets and flatten-nested-object logic (#2672) 2025-01-30 18:00:26 -06:00
Dharini Jeeva 3b6a421af2 chore: Updates to gcp hc form (#2649)
* chore: 🤖 add worker_filter field, updates to helper text
2025-01-10 14:18:48 -08:00
Dharini Jeeva 520020f2c6 Chore: refactor host catalog model and serializer to accommodate GCP plugin (#2627)
* chore: 🤖 GCP plugin support
2025-01-10 14:18:48 -08:00
Carlos Alcaide Corvo 8c6b1aa69a Clean up auto-generated TODO comments (#2607) 2024-12-02 09:02:44 -08:00
Dharini Jeeva 36c2aee271 fix vault brokered credentials display (#2583)
* fix: 🐛 brokered credential display in credential panel
2024-11-26 14:34:10 -08:00
Dharini Jeeva 6956b30fd6 Update credentials (#2523)
* feat: 🎸 allow AWS host catalog credential type update
2024-10-18 14:33:14 -07:00
Dharini Jeeva 965e82473d Types for aws host catalogs (#2514)
assume role dynamic AWS credentials
2024-10-09 14:49:22 -07:00
Dharini Jeeva 0d55812f64 Add worker type dynamic host catalog (#2511)
* fix: 🐛 add worker filter support for aws host catalogs
2024-10-08 10:58:52 -07:00
Cameron Perera d3c789c66c Icu 15181 add pagination to session recordings (#2502)
* refactor: 💡 move model hook to session-recordings/index route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* test: 💍 add missing tests for session recordings controller

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* feat: 🎸 paginate session-recordings and search

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* refactor: 💡 fix failing redirect and tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* test: 💍 add search tests for session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* feat: 🎸 add user filtering for session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* feat: 🎸 add more attributes to indexed-db session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* feat: 🎸 add target filter for session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* refactor: 💡 update filterOptions method

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15130

* feat: 🎸 add scopes filtering to session recording

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* feat: 🎸 add time filter to session recordings

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 add no filter results text

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 update Exist variables to doExist

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 updates from PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 remove scope_id filter

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 change session recording placeholder text

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* chore: 🤖 increment indexedDB version

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* test: 💍 add Date object tests for indexed-db

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 small changes from PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 change times filter array to time date object

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* test: 💍 add more date specific indexed-db test

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* refactor: 💡 change Today time shortcut to "Last 24 hours"

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181

* test: 💍 fix date mock in session-recording controller tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-15181
2024-10-01 13:55:15 -05:00
Cameron Perera af9b832d38 chore: 🤖 update ember-cli-mirage (#2458)
* chore: 🤖 update ember-cli-mirage

* chore: 🤖 move ember-cli-mirage to dependencies

* chore: 🤖 remove duplicate dependency
2024-08-23 14:40:42 -05:00
219eba67bc fix: 🐛 tag count in list view (#2413)
* fix: 🐛 tag count in list view

* Update addons/api/addon/models/worker.js

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>

* fix: 🐛 error & test

* Update addons/api/addon/models/worker.js

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

---------

Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-07-25 12:40:36 -07:00
Cameron Perera f9af4f0092 Icu 13897 create remove tag modal (#2377)
* feat: 🎸 add action dropdown in tags table

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* feat: 🎸 add removeApiTags method to worker

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* feat: 🎸 add tag removal workflow

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* test: 💍 add tests for removing a worker tag

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* test: 💍 add tests for removing a tag

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 fix spelling issue

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 use mirage worker serializer to remove empty tag

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 update modal id to class

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 add autofocus to remove tag modal

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* feat: 🎸 update tags controller attributes

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 create normalizer to add empty object for api_tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 update getter signature

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 remove unneeded parens

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 remove type from Hds::Button

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 update confirmation modal class name

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* feat: 🎸 add emptyObjectIfMissing model attribute

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897

* refactor: 💡 remove default to null in toggleModal

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13897
2024-07-16 15:49:30 -05:00
Lisbet Alvarez 723101b779 refactor: 💡 move workers section in a target to be in a tab (#2379)
* refactor: 💡 move workers section in a target to be in a tab

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14332
2024-07-16 15:49:23 -05:00
Cameron Perera 4e57c863ab Icu 13895 create create new tags route and view (#2368)
* feat: 🎸 create canSetWorkerTags ability for workers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 add create-tags route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 update worker serializer for adding api_tags

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 add setApiTags method on worker model

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* style: 💄 update list-wrapper styles after hds upgrade

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 add create-tags component for workers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 add creat-tags route and view

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 add acceptance tests for worker create-tags workflow

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 add test for worker tag creation

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 fix test setup for workers

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 add license headers and update setupTest import

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 fix normal serialize test for worker

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 create worker PKI type const

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 add comments to methods and actions

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* feat: 🎸 create Tag class to use in multiple places

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 move apiTags to route controller

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 move routeWillChange logic to route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 routeWillChange logic updates

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 remove unused services

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* test: 💍 add missing controller tests

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 small update to API tags description

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 add tracked to Tag class

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 use willTransition vs routeWillChange event

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895

* refactor: 💡 use controllerFor in route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13895
2024-07-16 15:48:23 -05:00
Cameron Perera f51124cfdb feat: 🎸 create get allTags method that includes tag type (#2349)
* feat: 🎸 create getAllTags method that includes tag type

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13891

* refactor: 💡 use canonical_tags to get tagCount on a worker

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13891

* refactor: 💡 add type to api and config tag list methods

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13891

* refactor: 💡 change worker functions to getters

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13891
2024-07-16 15:46:05 -05:00
Lisbet AlvarezandZhihe Li 27abf9e2d9 feat: 🎸 create manage custom scopes route and view (#2359)
* feat: 🎸 create manage custom scopes route and view

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13881

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-07-15 17:23:00 -07:00
Lisbet AlvarezandZhihe Li 89e072401c Icu 13880 create manage scopes route and view with keyword values (#2342)
* feat: 🎸 manage scopes route and page

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13880

* Update addons/core/translations/resources/en-us.yaml

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* Update ui/admin/app/abilities/role.js

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* Update ui/admin/app/components/form/role/manage-scopes/index.hbs

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2024-07-15 17:23:00 -07:00
Cameron Perera 85bce84356 feat: 🎸 add No scopes add to roles/role/scopes route (#2338)
* feat: 🎸 add No scopes add to roles/role/scopes route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13878

* feat: 🎸 add new role ability

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13878

* refactor: 💡 fix permission for setting grant scopes on role

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13878
2024-07-15 17:23:00 -07:00
Cameron Perera 2bc314d271 Icu 12708 add scopes tab route in role route (#2322)
* feat: 🎸 add roles/role/scopes route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 update role and scope mirage factories

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* feat: 🎸 add grantScopes to role model

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* feat: 🎸 fetch all scopes recursively

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* feat: 🎸 add new role grant scopes translations

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* feat: 🎸 add table to list grant scopes on a role

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* test: 💍 acceptance test for grant scope table and controller

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* test: 💍 add unit tests for grantScopes method on role model

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 small updates from PR feedback

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 update grantScopes to use sort

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* feat: 🎸 update role scope description for each scope type

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 make grant_scope_ids sort better

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 update global scope to show as Global vs global

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 update logic for display grant scope keywords

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 small improvement in role.grantScopes

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 move scope query to roles/scope route

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708

* refactor: 💡 remove console.log

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-12708
2024-07-15 17:23:00 -07:00
Cameron Perera e60b774d05 refactor: 💡 remove grant_scope_id and its uses (#2325)
✅ Closes: https://hashicorp.atlassian.net/browse/ICU-13877
2024-07-15 17:23:00 -07:00