Skip to content

Commit

Permalink
Merge branch 'master' into uik-editor
Browse files Browse the repository at this point in the history
Squashed commit of the following:

commit 0a6450d230dbedda8ce13259dc4975c2c5e1ef99
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Tue Jul 2 10:42:26 2024 -0500

    dest: update user_contact_methods and notification_channels to have a `dest` column (#3951)

    * better error reporting from resetdb

    * Deduplicate notif channels and add 'DEST' enum

    - De-duplicated `notification_channels` and updated references
    - Added 'DEST' value to `enum_user_contact_method_type` and `enum_notif_channel_type`
    - Introduced `dest` column in `user_contact_methods` and `notification_channels`
    - Created functions and triggers to manage new `dest` column

    * Upgrade sqlc to v1.26.0 and add DestV1 support

    - Added DestV1 and NullDestV1 types with Scan and Value methods
    - Updated sqlc generated code to v1.26.0
    - Introduced new fields for DestV1 in UserContactMethod and NotificationChannel
    - Updated sqlc.yaml with column overrides for NullDestV1

    * Handle nil Args in DestV1 to prevent potential nil map errors

    * Refactor webhook arg in db migration for consistency

    - Updated key from 'url' to 'webhook-url' for clarity

    * update schema

    * fix down migrations

    * add update triggers for debugging

    * regen

commit cf5ccf4862e81a50dfffef4388ddf7d2e8df42e3
Author: Nathaniel Cook <NathanielJCook@outlook.com>
Date:   Mon Jul 1 14:27:18 2024 -0700

    update go deps (#3958)

    * update go deps

    * make check

commit 2f3e8412e61b4d1352c751a071819b513b68e4b5
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Mon Jul 1 13:38:18 2024 -0500

    Refactor notification channels handling (#3949)

    - Replaced raw SQL with generated SQLC methods
    - Simplified CRUD operations in notification channel store
    - Added `fromRow` method for cleaner data mapping
    - Updated imports and removed redundant statements

commit 926176394c6e26042d9272800f5e13e79b357a95
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Mon Jul 1 13:34:12 2024 -0500

    uik: Add ability to edit and manage rules (#3950)

    * Add rule management to UniversalKeyPage

    - Integrated UniversalKeyRuleList component
    - Introduced rule creation, editing, and deletion dialogs
    - Updated page layout to include rule configurations and default actions

    Co-authored-by: Nathaniel Cook <nathanieljcook@outlook.com>
    Co-authored-by: AllenDing <Allen.Ding@target.com>

    * Refactored and expanded UI integration tests

    - Modularized setup process for reusability
    - Added tests for creating and managing rules
    - Implemented tests for managing auth tokens
    - Improved assertions and error handling in existing tests

    Co-authored-by: Nathaniel Cook <nathanieljcook@outlook.com>
    Co-authored-by: AllenDing <Allen.Ding@target.com>

    * fix playwright mobile test

    ---------

    Co-authored-by: Nathaniel Cook <nathanieljcook@outlook.com>
    Co-authored-by: AllenDing <Allen.Ding@target.com>

commit f64aee815e233cfdd8d52bf6fc791247352720e8
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Mon Jul 1 13:29:09 2024 -0500

    engine/message: start migrating to sqlc (#3948)

    * Add query for fetching pending messages

    - Introduced new SQL query to retrieve pending messages
    - Updated sqlc generated files to v1.26.0
    - Added new SQL file to sqlc configuration

    * Refactor message querying and processing logic

    - Migrate message querying to gadb to improve maintainability
    - Replace manual SQL row scanning with gadb-generated struct
    - Adjust Message struct to use int64 for StatusAlertIDs
    - Update SQL queries to reflect new column aliases and data types
    - Introduce SQLDest for handling message destination transformation

    * Improve message type handling and error reporting

    - Added error handling for invalid message types in db.go
    - Changed return of invalid SQLDest to panic
    - Integrated gadb for DB-agnostic message type conversion functions

commit 3c6697519660e3edad7c5b9d7a5ba5fce2c3a099
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Fri Jun 28 13:19:57 2024 -0500

    Add default action edit and rule management dialogs (#3946)

    * Add default action edit and rule management dialogs

    - Implemented a dialog for editing default actions of an integration key.
    - Added a UI for displaying and editing default actions.
    - Created a form for creating and modifying key rules.
    - Introduced a dialog for removing key rules with confirmation.
    - Utilized GraphQL queries and mutations for data handling.

    Co-authored-by: Nathaniel Cook <nathanieljcook@outlook.com>
    Co-authored-by: AllenDing <Allen.Ding@target.com>

    * add getNotice from utils

    * Update web/src/app/services/UniversalKey/DefaultActionEditDialog.tsx

    Co-authored-by: Nathaniel Cook <NathanielJCook@outlook.com>

    * Update web/src/app/services/UniversalKey/UniversalKeyRuleRemoveDialog.tsx

    * Refactor queries and handle errors properly

    - Renamed query variables for clarity
    - Combined inline form rendering for simplicity
    - Consistent error handling with useErrorConsumer

    * Update web/src/app/services/UniversalKey/UniversalKeyDefaultActions.tsx

    Co-authored-by: Nathaniel Cook <NathanielJCook@outlook.com>

    * Update web/src/app/services/UniversalKey/UniversalKeyRuleRemoveDialog.tsx

    ---------

    Co-authored-by: Nathaniel Cook <nathanieljcook@outlook.com>
    Co-authored-by: AllenDing <Allen.Ding@target.com>

commit 18b04b999d7b334eb59a540751702fd0593b727d
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Thu Jun 27 14:02:52 2024 -0500

    Add Universal Key Actions management forms (#3945)

    * Add Universal Key Actions management forms

    - Add UniversalKeyActionsForm component
    - Add UniversalKeyActionsList component
    - Add Storybook stories for UniversalKeyActionsForm
    - Update DynamicActionForm to support disablePortal prop

    Co-authored-by: Nathaniel Cook <nathanieljcook@outlook.com>
    Co-authored-by: AllenDing <Allen.Ding@target.com>

    * Update web/src/app/services/UniversalKey/UniversalKeyActionsForm.tsx

    Co-authored-by: Nathaniel Cook <NathanielJCook@outlook.com>

    * Update UniversalKeysActionsForm.stories.tsx

    * Add dynamic action support and alert icons

    - Enable dynamic action for certain destination types
    - Add support for onChipClick prop in DestinationChip
    - Introduce alert icon mapping in DestinationAvatar

    ---------

    Co-authored-by: Nathaniel Cook <nathanieljcook@outlook.com>
    Co-authored-by: AllenDing <Allen.Ding@target.com>

commit 627f3496500f4edf4301d6f8e1cfbde27346e1b2
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Thu Jun 27 10:51:09 2024 -0500

    Update DynamicParams to use ExprStringMap (#3944)

    * Add ActionInput validation and refactor DynamicParam

    - Implement actionInputValidate query with experimental flag
    - Replace DynamicParam with ExprStringMap for action params
    - Update tests and UI components to reflect schema changes
    - Enhance error handling and messaging in HelperText component

    * remove unused funcs

commit 53dbb634db75bb4c791e0e75fbde2a67fa986855
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Thu Jun 27 10:07:46 2024 -0500

    dest: update user forms to use StringMap instead of FieldValuePair[] (#3943)

    * refactor: Update UserContactMethodList and UserContactMethodEditDialog to use Partial<Destination> type

    * fix margin left for dest helper text

    * fix empty space rendering if no disclaimer

    ---------

    Co-authored-by: Forfold <Nathaniel.Cook@Target.com>

commit 02d2d40bc4bcec2495be8fad27a082f7b1ac3f78
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Wed Jun 26 11:40:49 2024 -0500

    gqlapi: Ensure stable hash for API key policy (#3941)

    * Strengthen GQLPolicy stability and consistency

    - Added guidelines for modifying the GQLPolicy structure
    - Implemented tests to ensure policy JSON consistency
    - Ensured persistent policy data through consistent hashing

    * Refactor policy parsing and add new tests

    - Removed redundant policy test file
    - Added parsePolicyInfo function for reusability
    - Updated fetch function to use parsePolicyInfo
    - Introduced comprehensive tests for parsePolicyInfo

    * Add comment to clarify hash usage in test

    Ensures future changes do not break existing keys.

    * Clarify assertion intention in policyinfo test

    * Clarify versioning rule in GQLPolicy comments

    - Specify that changes to existing fields must require version incrementing.

commit a25f8082e975812ff5d4b88416768cd931aaa34c
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Jun 26 10:36:45 2024 -0500

    build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 (#3917)

    Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.18.2 to 1.19.0.
    - [Release notes](https://github.com/spf13/viper/releases)
    - [Commits](https://github.com/spf13/viper/compare/v1.18.2...v1.19.0)

    ---
    updated-dependencies:
    - dependency-name: github.com/spf13/viper
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit c180774509eb4f443938b2942f8a0d7260b06013
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Jun 26 10:36:17 2024 -0500

    build(deps): bump github.com/99designs/gqlgen from 0.17.47 to 0.17.49 (#3929)

    Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.47 to 0.17.49.
    - [Release notes](https://github.com/99designs/gqlgen/releases)
    - [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/99designs/gqlgen/compare/v0.17.47...v0.17.49)

    ---
    updated-dependencies:
    - dependency-name: github.com/99designs/gqlgen
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit cac7ed90f31f99a3f9ca0128395ed995b5641a16
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Jun 26 10:36:04 2024 -0500

    build(deps): bump github.com/vektah/gqlparser/v2 from 2.5.12 to 2.5.16 (#3930)

    Bumps [github.com/vektah/gqlparser/v2](https://github.com/vektah/gqlparser) from 2.5.12 to 2.5.16.
    - [Release notes](https://github.com/vektah/gqlparser/releases)
    - [Commits](https://github.com/vektah/gqlparser/compare/v2.5.12...v2.5.16)

    ---
    updated-dependencies:
    - dependency-name: github.com/vektah/gqlparser/v2
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 1cc7d491c2e8ef89e9b5c1908480f5a7fcc260f1
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Jun 26 10:35:23 2024 -0500

    build(deps-dev): bump @emotion/styled from 11.11.0 to 11.11.5 (#3931)

    Bumps [@emotion/styled](https://github.com/emotion-js/emotion) from 11.11.0 to 11.11.5.
    - [Release notes](https://github.com/emotion-js/emotion/releases)
    - [Changelog](https://github.com/emotion-js/emotion/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/emotion-js/emotion/compare/@emotion/styled@11.11.0...@emotion/styled@11.11.5)

    ---
    updated-dependencies:
    - dependency-name: "@emotion/styled"
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 235767b0fea0e68a1c03fcead2ce6aa68d14baa9
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Jun 26 10:34:37 2024 -0500

    build(deps-dev): bump classnames from 2.3.2 to 2.5.1 (#3933)

    Bumps [classnames](https://github.com/JedWatson/classnames) from 2.3.2 to 2.5.1.
    - [Changelog](https://github.com/JedWatson/classnames/blob/main/HISTORY.md)
    - [Commits](https://github.com/JedWatson/classnames/compare/v2.3.2...v2.5.1)

    ---
    updated-dependencies:
    - dependency-name: classnames
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit f9e5b14a35124f34a84d60250c7400d3bc299e5d
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Wed Jun 26 10:34:24 2024 -0500

    build(deps): bump ws from 6.2.2 to 6.2.3 (#3935)

    Bumps [ws](https://github.com/websockets/ws) from 6.2.2 to 6.2.3.
    - [Release notes](https://github.com/websockets/ws/releases)
    - [Commits](https://github.com/websockets/ws/compare/6.2.2...6.2.3)

    ---
    updated-dependencies:
    - dependency-name: ws
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 913011c9a4800756a8450796ec91237e24615bd2
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Wed Jun 26 10:34:01 2024 -0500

    DestinationField StringMap update (#3940)

    * add error consumer

    * update schedule form

    * Revert "update schedule form"

    This reverts commit 0fd8838430a7e67ff327bad6e4356edb2d599329.

    * revert policy step update for now

    * update forms to use error consumer

    * remove unused imports

    * revert user changes for future PR

    * update action form for destfield update

    * update sched form

    * unused import

    * temp user CM fix

    * submit -> retry on tests

    * fix loading state in policy step form

    * fix schedule loading state

    * fix retry btn

    * fix wait for disable

    * fix retry

    * dont' submit on add dest

    * use better name

    ---------

    Co-authored-by: Forfold <Nathaniel.Cook@Target.com>

commit 503647c46832f304c9e62d31452064b2b38a7aeb
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Tue Jun 25 14:17:41 2024 -0500

    Add ErrorConsumer (#3939)

    * add error consumer

    * update schedule form

    * Revert "update schedule form"

    This reverts commit 0fd8838430a7e67ff327bad6e4356edb2d599329.

    * revert policy step update for now

commit ce83fe2ca4568b6b5526d345667e22717b1c3035
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Tue Jun 25 13:14:31 2024 -0500

    graphql: add StringMap for destinations (#3938)

    * add stringmap version of args for dest

    * regen

    * update types

    * remove unused file

commit 6f220c6f176c7497277be97c524fecb89623ded5
Author: Nathaniel Cook <NathanielJCook@outlook.com>
Date:   Mon Jun 24 12:04:48 2024 -0700

    ui: update EP step form destination UX (#3897)

    * add notice confirmation if no destinations on ep step

    * update text field margins

    * update destinations padding, button, and wording

    * wording

    * update no actions text

    * add tooltip

    * fix test

    * Merge branch 'master' into stepform-ux

    Squashed commit of the following:

    commit ea1eb53d539e4f81a7a021ad291a6fb3f9f9ea7e
    Author: Nathaniel Caza <mastercactapus@gmail.com>
    Date:   Wed Jun 12 13:25:26 2024 -0500

        dest/action: simplify error flow in forms (#3926)

        * simplify error flow in forms

        * add comment and return type

    commit 5420402a487a976019425bd079ce37283411f07c
    Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Date:   Tue Jun 11 10:45:57 2024 -0500

        build(deps-dev): bump @storybook/test-runner from 0.17.0 to 0.18.2 (#3911)

        Bumps [@storybook/test-runner](https://github.com/storybookjs/test-runner) from 0.17.0 to 0.18.2.
        - [Release notes](https://github.com/storybookjs/test-runner/releases)
        - [Changelog](https://github.com/storybookjs/test-runner/blob/v0.18.2/CHANGELOG.md)
        - [Commits](https://github.com/storybookjs/test-runner/compare/v0.17.0...v0.18.2)

        ---
        updated-dependencies:
        - dependency-name: "@storybook/test-runner"
          dependency-type: direct:development
          update-type: version-update:semver-minor
        ...

        Signed-off-by: dependabot[bot] <support@github.com>
        Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    commit b2231df76aa8db840d78eafae66fc0e3536040bb
    Author: Nathaniel Caza <mastercactapus@gmail.com>
    Date:   Tue Jun 11 10:04:01 2024 -0500

        switch from global to per-rule continue option (#3924)

    commit 97c12af9ee613d5fe1bc7756768fcbed27cbf6af
    Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Date:   Tue Jun 11 10:03:02 2024 -0500

        build(deps): bump golang.org/x/crypto from 0.23.0 to 0.24.0 (#3919)

        Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.23.0 to 0.24.0.
        - [Commits](https://github.com/golang/crypto/compare/v0.23.0...v0.24.0)

        ---
        updated-dependencies:
        - dependency-name: golang.org/x/crypto
          dependency-type: direct:production
          update-type: version-update:semver-minor
        ...

        Signed-off-by: dependabot[bot] <support@github.com>
        Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    commit 691e60989e31c95b9daaa11193ed9d28afeddf2d
    Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Date:   Tue Jun 11 10:02:46 2024 -0500

        build(deps-dev): bump @mui/material from 5.15.15 to 5.15.19 (#3921)

        Bumps [@mui/material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-material) from 5.15.15 to 5.15.19.
        - [Release notes](https://github.com/mui/material-ui/releases)
        - [Changelog](https://github.com/mui/material-ui/blob/v5.15.19/CHANGELOG.md)
        - [Commits](https://github.com/mui/material-ui/commits/v5.15.19/packages/mui-material)

        ---
        updated-dependencies:
        - dependency-name: "@mui/material"
          dependency-type: direct:development
          update-type: version-update:semver-patch
        ...

        Signed-off-by: dependabot[bot] <support@github.com>
        Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    commit df6732685970d297b52f658f405d163f287fa5c0
    Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Date:   Tue Jun 11 10:02:29 2024 -0500

        build(deps-dev): bump diff and @types/diff (#3922)

        Bumps [diff](https://github.com/kpdecker/jsdiff) and [@types/diff](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/diff). These dependencies needed to be updated together.

        Updates `diff` from 5.1.0 to 5.2.0
        - [Changelog](https://github.com/kpdecker/jsdiff/blob/master/release-notes.md)
        - [Commits](https://github.com/kpdecker/jsdiff/compare/v5.1.0...v5.2.0)

        Updates `@types/diff` from 5.0.8 to 5.2.1
        - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
        - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/diff)

        ---
        updated-dependencies:
        - dependency-name: diff
          dependency-type: direct:development
          update-type: version-update:semver-minor
        - dependency-name: "@types/diff"
          dependency-type: direct:development
          update-type: version-update:semver-minor
        ...

        Signed-off-by: dependabot[bot] <support@github.com>
        Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    commit 4af6332bd4ccd7e1f1d060c86d5fee13826a512d
    Author: Nathaniel Cook <NathanielJCook@outlook.com>
    Date:   Mon Jun 10 06:33:04 2024 -0700

        ui: fix step number display for EP step delay text (#3916)

        * fix index on caption

        * add playwright test

        * add return type of void

    commit b292f688d4fe829bb39e75715e7712abfc3639a9
    Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Date:   Fri Jun 7 10:20:16 2024 -0500

        build(deps-dev): bump react-big-calendar and @types/react-big-calendar (#3900)

        Bumps [react-big-calendar](https://github.com/jquense/react-big-calendar) and [@types/react-big-calendar](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-big-calendar). These dependencies needed to be updated together.

        Updates `react-big-calendar` from 1.8.5 to 1.12.2
        - [Release notes](https://github.com/jquense/react-big-calendar/releases)
        - [Changelog](https://github.com/jquense/react-big-calendar/blob/master/CHANGELOG.md)
        - [Commits](https://github.com/jquense/react-big-calendar/compare/v1.8.5...v1.12.2)

        Updates `@types/react-big-calendar` from 1.6.5 to 1.8.9
        - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
        - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-big-calendar)

        ---
        updated-dependencies:
        - dependency-name: react-big-calendar
          dependency-type: direct:development
          update-type: version-update:semver-minor
        - dependency-name: "@types/react-big-calendar"
          dependency-type: direct:development
          update-type: version-update:semver-minor
        ...

        Signed-off-by: dependabot[bot] <support@github.com>
        Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    commit 489dbf34f33d746b49e1861892c402a5806ebc8e
    Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Date:   Mon Jun 3 08:26:20 2024 -0700

        build(deps-dev): bump @typescript-eslint/eslint-plugin (#3913)

        Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.7.0 to 7.11.0.
        - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
        - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
        - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.11.0/packages/eslint-plugin)

        ---
        updated-dependencies:
        - dependency-name: "@typescript-eslint/eslint-plugin"
          dependency-type: direct:development
          update-type: version-update:semver-minor
        ...

        Signed-off-by: dependabot[bot] <support@github.com>
        Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * fix mobile cypress test

    ---------

    Co-authored-by: AllenDing <Allen.Ding@target.com>

commit ea1eb53d539e4f81a7a021ad291a6fb3f9f9ea7e
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Wed Jun 12 13:25:26 2024 -0500

    dest/action: simplify error flow in forms (#3926)

    * simplify error flow in forms

    * add comment and return type

commit 5420402a487a976019425bd079ce37283411f07c
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jun 11 10:45:57 2024 -0500

    build(deps-dev): bump @storybook/test-runner from 0.17.0 to 0.18.2 (#3911)

    Bumps [@storybook/test-runner](https://github.com/storybookjs/test-runner) from 0.17.0 to 0.18.2.
    - [Release notes](https://github.com/storybookjs/test-runner/releases)
    - [Changelog](https://github.com/storybookjs/test-runner/blob/v0.18.2/CHANGELOG.md)
    - [Commits](https://github.com/storybookjs/test-runner/compare/v0.17.0...v0.18.2)

    ---
    updated-dependencies:
    - dependency-name: "@storybook/test-runner"
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit b2231df76aa8db840d78eafae66fc0e3536040bb
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Tue Jun 11 10:04:01 2024 -0500

    switch from global to per-rule continue option (#3924)

commit 97c12af9ee613d5fe1bc7756768fcbed27cbf6af
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jun 11 10:03:02 2024 -0500

    build(deps): bump golang.org/x/crypto from 0.23.0 to 0.24.0 (#3919)

    Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.23.0 to 0.24.0.
    - [Commits](https://github.com/golang/crypto/compare/v0.23.0...v0.24.0)

    ---
    updated-dependencies:
    - dependency-name: golang.org/x/crypto
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 691e60989e31c95b9daaa11193ed9d28afeddf2d
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jun 11 10:02:46 2024 -0500

    build(deps-dev): bump @mui/material from 5.15.15 to 5.15.19 (#3921)

    Bumps [@mui/material](https://github.com/mui/material-ui/tree/HEAD/packages/mui-material) from 5.15.15 to 5.15.19.
    - [Release notes](https://github.com/mui/material-ui/releases)
    - [Changelog](https://github.com/mui/material-ui/blob/v5.15.19/CHANGELOG.md)
    - [Commits](https://github.com/mui/material-ui/commits/v5.15.19/packages/mui-material)

    ---
    updated-dependencies:
    - dependency-name: "@mui/material"
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit df6732685970d297b52f658f405d163f287fa5c0
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Jun 11 10:02:29 2024 -0500

    build(deps-dev): bump diff and @types/diff (#3922)

    Bumps [diff](https://github.com/kpdecker/jsdiff) and [@types/diff](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/diff). These dependencies needed to be updated together.

    Updates `diff` from 5.1.0 to 5.2.0
    - [Changelog](https://github.com/kpdecker/jsdiff/blob/master/release-notes.md)
    - [Commits](https://github.com/kpdecker/jsdiff/compare/v5.1.0...v5.2.0)

    Updates `@types/diff` from 5.0.8 to 5.2.1
    - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
    - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/diff)

    ---
    updated-dependencies:
    - dependency-name: diff
      dependency-type: direct:development
      update-type: version-update:semver-minor
    - dependency-name: "@types/diff"
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 4af6332bd4ccd7e1f1d060c86d5fee13826a512d
Author: Nathaniel Cook <NathanielJCook@outlook.com>
Date:   Mon Jun 10 06:33:04 2024 -0700

    ui: fix step number display for EP step delay text (#3916)

    * fix index on caption

    * add playwright test

    * add return type of void

commit b292f688d4fe829bb39e75715e7712abfc3639a9
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Fri Jun 7 10:20:16 2024 -0500

    build(deps-dev): bump react-big-calendar and @types/react-big-calendar (#3900)

    Bumps [react-big-calendar](https://github.com/jquense/react-big-calendar) and [@types/react-big-calendar](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-big-calendar). These dependencies needed to be updated together.

    Updates `react-big-calendar` from 1.8.5 to 1.12.2
    - [Release notes](https://github.com/jquense/react-big-calendar/releases)
    - [Changelog](https://github.com/jquense/react-big-calendar/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/jquense/react-big-calendar/compare/v1.8.5...v1.12.2)

    Updates `@types/react-big-calendar` from 1.6.5 to 1.8.9
    - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
    - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-big-calendar)

    ---
    updated-dependencies:
    - dependency-name: react-big-calendar
      dependency-type: direct:development
      update-type: version-update:semver-minor
    - dependency-name: "@types/react-big-calendar"
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 489dbf34f33d746b49e1861892c402a5806ebc8e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Jun 3 08:26:20 2024 -0700

    build(deps-dev): bump @typescript-eslint/eslint-plugin (#3913)

    Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 7.7.0 to 7.11.0.
    - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
    - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
    - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.11.0/packages/eslint-plugin)

    ---
    updated-dependencies:
    - dependency-name: "@typescript-eslint/eslint-plugin"
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 3a36c6c8026842acf4a787c3e3cf3fa772a19cba
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Jun 3 09:18:54 2024 -0500

    build(deps): bump github.com/fatih/color from 1.16.0 to 1.17.0 (#3907)

    Bumps [github.com/fatih/color](https://github.com/fatih/color) from 1.16.0 to 1.17.0.
    - [Release notes](https://github.com/fatih/color/releases)
    - [Commits](https://github.com/fatih/color/compare/v1.16.0...v1.17.0)

    ---
    updated-dependencies:
    - dependency-name: github.com/fatih/color
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 2b3c02f49ae0989e5d7ebfda3378ed7c5c58540b
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Jun 3 09:18:33 2024 -0500

    build(deps): bump github.com/slack-go/slack from 0.12.5 to 0.13.0 (#3906)

    Bumps [github.com/slack-go/slack](https://github.com/slack-go/slack) from 0.12.5 to 0.13.0.
    - [Release notes](https://github.com/slack-go/slack/releases)
    - [Changelog](https://github.com/slack-go/slack/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/slack-go/slack/compare/v0.12.5...v0.13.0)

    ---
    updated-dependencies:
    - dependency-name: github.com/slack-go/slack
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 410d623d245c19cc4547f43ed43e2123a84a51c5
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Jun 3 09:17:52 2024 -0500

    build(deps): bump github.com/jackc/pgx/v5 from 5.5.5 to 5.6.0 (#3905)

    Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.5.5 to 5.6.0.
    - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/jackc/pgx/compare/v5.5.5...v5.6.0)

    ---
    updated-dependencies:
    - dependency-name: github.com/jackc/pgx/v5
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 01c85d0e7aaea46b0f2a107faaff70349f6a216e
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon Jun 3 09:17:33 2024 -0500

    build(deps): bump github.com/prometheus/client_golang (#3903)

    Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.19.0 to 1.19.1.
    - [Release notes](https://github.com/prometheus/client_golang/releases)
    - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/prometheus/client_golang/compare/v1.19.0...v1.19.1)

    ---
    updated-dependencies:
    - dependency-name: github.com/prometheus/client_golang
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 7f5ae25947a391fe37b2acba7c5bfef2849e31db
Author: Nathaniel Cook <NathanielJCook@outlook.com>
Date:   Mon Jun 3 07:17:04 2024 -0700

    remove "Dest" suffix from files (#3895)

commit 61765e4ca42b0f97595a01f765bfd7f662fa3535
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Thu May 30 10:51:34 2024 -0500

    ui: add DynamicActionField component (#3909)

    * add simpler interface for errors to dest field

    * add dynamic action field and stories

    * Field -> Form

commit ee4e3a86351af10f1a2d3a3f1abd40e9a1406a7c
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Thu May 23 15:21:35 2024 -0500

    storybook: allow for per-story graphql mocking (#3899)

    * allow generating url-specific urql clients

    * give each component a unique client & url

    * add graphql loader

    * migrate TelTextField.stories to graphql loader

    * move loader back to preview

    * fix config

    * fix comment

    * Update .storybook/preview.ts

    Co-authored-by: Nathaniel Cook <NathanielJCook@outlook.com>

    * typo

    ---------

    Co-authored-by: Nathaniel Cook <NathanielJCook@outlook.com>

commit 695832be63324f6d850a10b422f4379acf13de4e
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Wed May 22 16:42:42 2024 -0500

    uik: add dynamic actions api (#3898)

    * add dynamic actions api

    * adjust input direct reqs

    * update default types

    * Revert "adjust input direct reqs"

    This reverts commit 95dc6499fd9bf0c09a8e27e9fbfaa184ec4e97ad.

commit 0eba5b7852ff3af46f75d354450ec2b11ba4574b
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Wed May 22 13:53:02 2024 -0500

    uik: add token rotation dialogs and controls (#3894)

    * Add token rotation dialogs and controls

    Co-authored-by: Nathaniel Cook <Nathaniel.Cook@target.com>

    * wait for service to be created

    * add integration test for uik

    * fix non-speed dial fab on mobile

    * Revert "fix non-speed dial fab on mobile"

    This reverts commit e197697c144775d765f8b24f6dc1e99edb3d58af.

    * fix type

    * fix type

    * wrap up tests

    * collapse code

    * simplify redirect logic

    * revert loading state change

    ---------

    Co-authored-by: Nathaniel Cook <Nathaniel.Cook@target.com>

commit 6bc79def6607accb893bbd32af122f1b7e953b91
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Wed May 22 08:50:42 2024 -0500

    fix race when waiting for chips to appear (#3896)

commit f959dad205d7e6af330d7aff31d437f87f306809
Author: Nathaniel Cook <NathanielJCook@outlook.com>
Date:   Tue May 21 14:09:33 2024 -0700

    ui/on-call notifications: always show quick link, show error on no days (#3893)

    * always show on-call notifications quick link

    * show error if no days selected

commit 22b41dcd1aa2369768cc57aabb9df9f31a31f5ef
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue May 21 13:11:09 2024 -0500

    build(deps): bump github.com/99designs/gqlgen from 0.17.46 to 0.17.47 (#3884)

    * build(deps): bump github.com/99designs/gqlgen from 0.17.46 to 0.17.47

    Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.46 to 0.17.47.
    - [Release notes](https://github.com/99designs/gqlgen/releases)
    - [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/99designs/gqlgen/compare/v0.17.46...v0.17.47)

    ---
    updated-dependencies:
    - dependency-name: github.com/99designs/gqlgen
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * fix getLimits query

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Forfold <Nathaniel.Cook@Target.com>

commit dcc49ca785c4450e660398bcf73f1cd826928e83
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 20 17:01:01 2024 -0500

    build(deps): bump github.com/fullstorydev/grpcui from 1.3.3 to 1.5.0 (#3883)

    Bumps [github.com/fullstorydev/grpcui](https://github.com/fullstorydev/grpcui) from 1.3.3 to 1.5.0.
    - [Release notes](https://github.com/fullstorydev/grpcui/releases)
    - [Changelog](https://github.com/fullstorydev/grpcui/blob/master/.goreleaser.yml)
    - [Commits](https://github.com/fullstorydev/grpcui/commits)

    ---
    updated-dependencies:
    - dependency-name: github.com/fullstorydev/grpcui
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 386c9e2446214c6551a89cd98a8f4d24b0fb95f3
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 20 16:19:39 2024 -0500

    build(deps-dev): bump @mui/system from 5.15.6 to 5.15.15 (#3888)

    Bumps [@mui/system](https://github.com/mui/material-ui/tree/HEAD/packages/mui-system) from 5.15.6 to 5.15.15.
    - [Release notes](https://github.com/mui/material-ui/releases)
    - [Changelog](https://github.com/mui/material-ui/blob/next/CHANGELOG.md)
    - [Commits](https://github.com/mui/material-ui/commits/v5.15.15/packages/mui-system)

    ---
    updated-dependencies:
    - dependency-name: "@mui/system"
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 3b3859377f40e8f5a802efd4dffb098fa39cb054
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 20 15:19:11 2024 -0500

    build(deps-dev): bump @mui/lab from 5.0.0-alpha.162 to 5.0.0-alpha.170 (#3890)

    Bumps [@mui/lab](https://github.com/mui/material-ui/tree/HEAD/packages/mui-lab) from 5.0.0-alpha.162 to 5.0.0-alpha.170.
    - [Release notes](https://github.com/mui/material-ui/releases)
    - [Changelog](https://github.com/mui/material-ui/blob/next/CHANGELOG.md)
    - [Commits](https://github.com/mui/material-ui/commits/HEAD/packages/mui-lab)

    ---
    updated-dependencies:
    - dependency-name: "@mui/lab"
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit efd0732e8aaac1d99784422530ce440c368cbf36
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 20 12:48:50 2024 -0700

    build(deps-dev): bump msw-storybook-addon (#3889)

    Bumps [msw-storybook-addon](https://github.com/mswjs/msw-storybook-addon/tree/HEAD/packages/msw-addon) from 2.0.0--canary.122.06f0c92.0 to 2.0.2.
    - [Release notes](https://github.com/mswjs/msw-storybook-addon/releases)
    - [Changelog](https://github.com/mswjs/msw-storybook-addon/blob/main/packages/msw-addon/CHANGELOG.md)
    - [Commits](https://github.com/mswjs/msw-storybook-addon/commits/v2.0.2/packages/msw-addon)

    ---
    updated-dependencies:
    - dependency-name: msw-storybook-addon
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 48db26814cbfd8c1ea3fa59b32dfd435a32903b5
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 20 12:48:36 2024 -0700

    build(deps): bump golang.org/x/term from 0.19.0 to 0.20.0 (#3886)

    Bumps [golang.org/x/term](https://github.com/golang/term) from 0.19.0 to 0.20.0.
    - [Commits](https://github.com/golang/term/compare/v0.19.0...v0.20.0)

    ---
    updated-dependencies:
    - dependency-name: golang.org/x/term
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 03f76db005191568006dc50db92c29ed608b527b
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 20 12:48:21 2024 -0700

    build(deps): bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 (#3885)

    Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.4 to 1.3.5.
    - [Release notes](https://github.com/nyaruka/phonenumbers/releases)
    - [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.3.4...v1.3.5)

    ---
    updated-dependencies:
    - dependency-name: github.com/nyaruka/phonenumbers
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 55b75ad456f19452e5067f96707772e3491cba5e
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Mon May 20 13:33:01 2024 -0500

    expflag: remove dest-types flag (#3881)

    * remove dest-types flag

    * check for link suffix

    * wait for destionation before submitting

    * cleanup chip validation

    * expect chips to be visible, rather than click

commit a809eb7e61584ffd559f03657fa0cc85c59ed840
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Mon May 20 10:03:27 2024 -0500

    playwright: fix flaky contact method tests (#3882)

    * Optimized test performance and code readability

    - Switched test execution mode from serial to parallel, speeding up test runs
    - Streamlined locator use to simplify code and improve readability
    - Enhanced organization in the test code, making it easier to read and understand

    * Optimize component key in FlatList and ensure correct anchorEl prop type

    - Shifted unique key generation responsibility from combination of index and id to merely using id in FlatList component, falling back to index if id is undefined.
    - Removed unnecessary key prop from FlatListItem component - this simplifies code and reduces redundancy.
    - Fixed improper function usage for anchorEl prop in OtherActionsDesktop component - now directly passes object reference.

    * Close speed dial upon action click

    - Added functionality to automatically close the speed dial after an action is clicked by the user for improved user experience.

    * Improved data consistency after deletion

    - Updated additionalTypenames in UserContactMethodDeleteDialog to include 'User', ensuring consistent user data after deleting a contact method
    - Extended additionalTypenames in UserNotificationRuleDeleteDialog to include 'User', maintaining user data consistency post-notification rule deletion

    * fix dialog handling

commit 9a5d121535787e9e7c51f6efdff986f3ae8f7ca2
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Fri May 17 11:38:57 2024 -0500

    uik: implement new endpoint and authorization (#3879)

    * Add support for parsing version 3 tokens and UIK type

    - Version 3 tokens now correctly checked for validity (length and signature).
    - UIK token type introduced.

    * Add unique token fields to uik_config table

    - Introduced primary and secondary UUID token fields
    - Added corresponding text fields for token hints
    - Ensured removal of newly created columns in down migration

    * Added token management functionality to integration keys

    - Extended SQL queries to handle primary and secondary token operations and metadata
    - Enhanced Store struct with keyring for token generation
    - Enabled creation of configuration for universal integration keys during creation
    - Introduced 'uik.go' file to manage token generation, setting, and promotion
    - Enforced user permissions for token operations
    - Managed potential race conditions when setting primary tokens
    - Included detailed errors for token-related exceptions

    * Add token management to GraphQL Integration Key

    - Define new 'TokenInfo' type for token details
    - Add 'tokenInfo' field in IntegrationKey
    - Implement 'promoteSecondaryToken' mutation
    - Implement 'generateKeyToken' method to generate primary/secondary tokens
    - Add specific handling for integration key token info in integrationkey.go
    - Ensure token management complies with the "univ-keys" experimental flag

    * regen

    * Add support for version 3 of auth token encoding

    * Added error handling for non-existent keys in token set

    - Introduced check for sql.ErrNoRows after updating tokens
    - Now returns a user-friendly error message when a key is not found or already has tokens

    * use jwt, similar to GQL keys

    * base auth flow

    * add basic rule evaluation

    * Enabled experimental flag for UIK integration

    - Made UIK integration handling contingent on expflag.UnivKeys being present in the context
    - Guarded UIK integration handling with an `if` check for context flag to avoid unintentionally enabling it

    * add clarifying comments

    * regen

    ---------

    Co-authored-by: Forfold <Nathaniel.Cook@Target.com>

commit 1c8e0d2709664f08bd2f7385ffbdc9116f250b93
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Thu May 16 17:47:30 2024 -0500

    uik: add methods of updating single rules (#3880)

    * add single rule helpers

    * regen

    * implement rule update fields

    * Add resolver to fetch specific rule by ID in KeyConfig

    - Added new KeyConfigResolver interface and implemented methods to enable fetching of a specific rule by ID
    - Added 'forceResolver: true' directive in GraphQL schema to indicate explicit resolution of the 'oneRule' field
    - Refactored pertinent parts of 'integrationkey.go' to adapt the new 'OneRule' method under KeyConfig.

commit 16ee68b750188067164ef29ca85ea90fdaed8144
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Thu May 16 16:58:48 2024 -0500

    uik: add deleteSecondaryToken mutation (#3877)

    * Add function to delete secondary tokens
    - Implemented new function to delete secondary tokens in the database
    - Generated respective GraphQL functionality to enable deletion of secondary tokens
    - Added error handling and permission checks for secondary token deletion
    - Updated GraphQL schema to reflect new mutation functionality

    * regen

commit 4894045352eda8201fd52ac91b297af2d2aca7f7
Author: Nathaniel Cook <NathanielJCook@outlook.com>
Date:   Thu May 16 14:52:09 2024 -0700

    ui: update escalation policy step button text (#3878)

    * ep steps: update Add Action -> Add Destination

    * remove divider

    * remove divider import

commit 0c06a1f0f8fac503e935252b1e2f46a595a3f941
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Thu May 16 15:15:56 2024 -0500

    ui/profile: always use Dest API (#3875)

    * always use dest variants for user contact methods

    * fix test & create error

    * Added dropdown select utility for integration tests

    - Extended export list in /test/integration/lib/index.ts to include newly created 'select.ts'
    - Created 'select.ts' for dropdown menu handling in integration tests
    - Adjusted 'goalert-config.json' to incorporate general and Twilio configurations
    - Enriched contact method list info by adding 'id' in 'UserContactMethodListDest.tsx'

    * Add first-login integration test

    - New test file added for new user's first login process
    - Performs checks to ensure the welcome dialog, contact method verification, and their corresponding actions work as expected
    - Includes cancel and delete operations for contact methods
    - Uses randomized user credentials for diversified testing

    * Update tests for improved dropdown handling and dialog visibility

    - Adjust tests to run in 'serial' mode instead of 'parallel'
    - Implement use of `dropdownSelect` for more precise dropdown handling
    - Amend visibility check of dialog elements for better consistency
    - Enhance use of random names for test email contact
    - Improve dropdown select function to locate options more effectively
    - Add test for visible disclaimer when 'Voice Call' is selected

    * Update user notification rule creation dialog

    - Add 'User' to additionalTypenames for better data syncing
    - Ensure dialog closure

    * Refactor email contact test and enhance page action

    - Refactored the 'EMAIL contact method' test by removing unnecessary mobile conditional and introducing 'pageAction' function
    - Enhanced 'pageAction' function in 'select.ts' to dynamically handle both mobile and wide screen actions
    - Extended 'EMAIL contact method' test to include verification of deleting and adding notification rules

    * remove cm & nr tests from cypress

    * Update test/integration/first-login.spec.ts

    Co-authored-by: Nathaniel Cook <NathanielJCook@outlook.com>

    * ensure deleted item is no longer in list

    * re-add resetProfile in beforeEach

    ---------

    Co-authored-by: Nathaniel Cook <NathanielJCook@outlook.com>

commit ba5a7add6d349068bcdf06a04e0bc1609cc4d5b2
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Thu May 16 10:42:45 2024 -0500

    uik: add token generation and rotation (#3873)

    * Add support for parsing version 3 tokens and UIK type

    - Version 3 tokens now correctly checked for validity (length and signature).
    - UIK token type introduced.

    * Add unique token fields to uik_config table

    - Introduced primary and secondary UUID token fields
    - Added corresponding text fields for token hints
    - Ensured removal of newly created columns in down migration

    * Added token management functionality to integration keys

    - Extended SQL queries to handle primary and secondary token operations and metadata
    - Enhanced Store struct with keyring for token generation
    - Enabled creation of configuration for universal integration keys during creation
    - Introduced 'uik.go' file to manage token generation, setting, and promotion
    - Enforced user permissions for token operations
    - Managed potential race conditions when setting primary tokens
    - Included detailed errors for token-related exceptions

    * Add token management to GraphQL Integration Key

    - Define new 'TokenInfo' type for token details
    - Add 'tokenInfo' field in IntegrationKey
    - Implement 'promoteSecondaryToken' mutation
    - Implement 'generateKeyToken' method to generate primary/secondary tokens
    - Add specific handling for integration key token info in integrationkey.go
    - Ensure token management complies with the "univ-keys" experimental flag

    * regen

    * Add support for version 3 of auth token encoding

    * Added error handling for non-existent keys in token set

    - Introduced check for sql.ErrNoRows after updating tokens
    - Now returns a user-friendly error message when a key is not found or already has tokens

    * use jwt, similar to GQL keys

    * fix down migration

    * update schema

commit a6f2e5026022671f8c73630d0b9d73ccf043333d
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Wed May 15 16:41:00 2024 -0500

    ui/policy: always use Dest API (#3867)

    * remove dest conditionals from policy page

    * add missing name attr

    * fix step test

    * update remaining step tests

    * remove unused files/code

    * rename Chip -> ServiceChip

    * update favorites test

    * remove console.log

    * add checks after each add action

    * remove .only

    * update material select tests

    * add checks for webhook create

    ---------

    Co-authored-by: Forfold <Nathaniel.Cook@Target.com>

commit a0751b928c9125300072b7eb4b3e28537f5409c4
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Wed May 15 15:59:50 2024 -0500

    profile: optimize on-call query (#3871)

    * Added on-call overview feature with service count and assignments

    - Implemented 'GQLUserOnCallOverview' SQL query and its handler
    - Defined and utilized related GraphQL types
    - Updated user API to include 'onCallOverview' method
    - Refined GraphQL execution schema to handle new fields and types
    - Covered various edge cases and possible error states to ensure reliability

    * Refactor user on-call assignments handling and visualization

    - Remove 'onCallSteps' field dependencies in user detail and replaced with 'onCallOverview' for better service count accuracy
    - Refactor 'UserDetails.tsx', removed lodash dependency for cleaner and simpler data extraction
    - Update 'serviceCount' function to directly read service count from the new 'onCallOverview' field
    - Refactor 'UserOnCallAssignmentList.tsx' to adapt to the new data model
    - Update step number representation to start from 0 instead of 1 to match back-end value
    - Simplify interfaces and functions in 'UserOnCallAssignmentList.tsx' for generating service assignments data

    * regen

    * Update graphql2/schema.graphql

    Co-authored-by: Nathaniel Cook <NathanielJCook@outlook.com>

    * make check

    ---------

    Co-authored-by: Nathaniel Cook <NathanielJCook@outlook.com>
    Co-authored-by: Forfold <Nathaniel.Cook@Target.com>

commit 510c4ce68eee72c0b37ab74d67ddebb6f0f78418
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Wed May 15 13:42:02 2024 -0500

    ui/profile: add helpers and move notification rule tests to playwright (#3876)

    * Add `select.ts` for enhanced test functionality

    - Introduced `dropdownSelect` function for easier interaction with dropdowns in tests
    - Created `pageAction` function to handle actions on Page elements, with support for mobile and wide viewport sizes

    * Refactor email contact method tests for usability

    - Switch test configuration from parallel to serial mode
    - Simplify method of triggering 'Create Contact Method' action
    - Enhance uniqueness of updated contact method name for better tracking
    - Add test steps for verifying deletion and addition of notification rules

    * move NR tests to playwright

commit 7f6a8f387ed953f6351a1aa1bb2cc5fece932403
Author: Nathaniel Cook <NathanielJCook@outlook.com>
Date:   Wed May 15 09:30:45 2024 -0700

    ui: update material select tests (#3874)

    * update material select tests

    * remove redundant visit

commit cb8f924dedd578eb72c5e94cab0faeb5de26d5d1
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Tue May 14 15:47:50 2024 -0500

    add bounds/limits on int key config (#3851)

commit 99f9b554685f1c3468ebfc7589503c7fe91e94b4
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Tue May 14 14:12:27 2024 -0500

    ui/sched: always use Dest API (#3785)

    * always use dest for sched. notifications

    * add field names

    * start updateing schedules tests

    * fix tz issue

    * remove unused import

    * update user group tests for dom changes

commit 17bc4e2b7ac1aa405b7dfaf15ac9b8d7e1f422c5
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 13 15:13:38 2024 -0500

    build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.1 (#3865)

    * build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.1

    Bumps google.golang.org/protobuf from 1.33.0 to 1.34.1.

    ---
    updated-dependencies:
    - dependency-name: google.golang.org/protobuf
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * make check

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Forfold <Nathaniel.Cook@Target.com>

commit 5e9974870a840f5fd5abf3366c71befa74d4f706
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 13 14:42:45 2024 -0500

    build(deps): bump github.com/emersion/go-smtp from 0.21.1 to 0.21.2 (#3864)

    Bumps [github.com/emersion/go-smtp](https://github.com/emersion/go-smtp) from 0.21.1 to 0.21.2.
    - [Release notes](https://github.com/emersion/go-smtp/releases)
    - [Commits](https://github.com/emersion/go-smtp/compare/v0.21.1...v0.21.2)

    ---
    updated-dependencies:
    - dependency-name: github.com/emersion/go-smtp
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit 9ccd48a7b1d2510e237d6ad857f0359525dad0dd
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 13 13:45:05 2024 -0500

    build(deps-dev): bump msw from 2.0.11 to 2.3.0 (#3858)

    * build(deps-dev): bump msw from 2.0.11 to 2.3.0

    Bumps [msw](https://github.com/mswjs/msw) from 2.0.11 to 2.3.0.
    - [Release notes](https://github.com/mswjs/msw/releases)
    - [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/mswjs/msw/compare/v2.0.11...v2.3.0)

    ---
    updated-dependencies:
    - dependency-name: msw
      dependency-type: direct:development
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * make check

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Forfold <Nathaniel.Cook@Target.com>

commit 2fde64fd88b1e66ed5dabe5a2fec9af1e6e1462c
Author: Nathaniel Caza <mastercactapus@gmail.com>
Date:   Mon May 13 13:11:22 2024 -0500

    urql: PolicyCreateDialog and UserContactMethodEditDialog (#3856)

    * swtich policy create to urql

    * move cm edit to urql

commit 6647340a945d69044d89075f6aefc89dae701661
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 13 13:11:08 2024 -0500

    build(deps): bump github.com/99designs/gqlgen from 0.17.45 to 0.17.46 (#3863)

    * build(deps): bump github.com/99designs/gqlgen from 0.17.45 to 0.17.46

    Bumps [github.com/99designs/gqlgen](https://github.com/99designs/gqlgen) from 0.17.45 to 0.17.46.
    - [Release notes](https://github.com/99designs/gqlgen/releases)
    - [Changelog](https://github.com/99designs/gqlgen/blob/master/CHANGELOG.md)
    - [Commits](https://github.com/99designs/gqlgen/compare/v0.17.45...v0.17.46)

    ---
    updated-dependencies:
    - dependency-name: github.com/99designs/gqlgen
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * regen

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Nathaniel Caza <mastercactapus@gmail.com>
    Co-authored-by: Forfold <Nathaniel.Cook@Target.com>

commit c885f41800c34135fd9eb2c746cbb49e8f610da1
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 13 12:31:22 2024 -0500

    build(deps): bump golangci/golangci-lint-action from 5 to 6 (#3857)

    Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 5 to 6.
    - [Release notes](https://github.com/golangci/golangci-lint-action/releases)
    - [Commits](https://github.com/golangci/golangci-lint-action/compare/v5...v6)

    ---
    updated-dependencies:
    - dependency-name: golangci/golangci-lint-action
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit e7f2017f61089c755c06fbf1dda7662a6e3c2cc8
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 13 10:28:02 2024 -0700

    build(deps-dev): bump stylelint-config-standard from 34.0.0 to 36.0.0 (#3859)

    Bumps [stylelint-config-standard](https://github.com/stylelint/stylelint-config-standard) from 34.0.0 to 36.0.0.
    - [Release notes](https://github.com/stylelint/stylelint-config-standard/releases)
    - [Changelog](https://github.com/stylelint/stylelint-config-standard/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/stylelint/stylelint-config-standard/compare/34.0.0...36.0.0)

    ---
    updated-dependencies:
    - dependency-name: stylelint-config-standard
      dependency-type: direct:development
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit b2e1e599f5de96b8c0220dcd0827056f2144bb27
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 13 10:03:34 2024 -0700

    build(deps-dev): bump glob from 10.3.10 to 10.3.14 (#3860)

    Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.10 to 10.3.14.
    - [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
    - [Commits](https://github.com/isaacs/node-glob/compare/v10.3.10...v10.3.14)

    ---
    updated-dependencies:
    - dependency-name: glob
      dependency-type: direct:development
      update-type: version-update:semver-patch
    ...

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit c8b3ef6708b0760bdc80912076af632b7290fb12
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 13 11:51:13 2024 -0500

    build(deps): bump github.com/fullstorydev/grpcui from 1.3.3 to 1.5.0 (#3819)

    * build(deps): bump github.com/fullstorydev/grpcui from 1.3.3 to 1.5.0

    Bumps [github.com/fullstorydev/grpcui](https://github.com/fullstorydev/grpcui) from 1.3.3 to 1.5.0.
    - [Release notes](https://github.com/fullstorydev/grpcui/releases)
    - [Changelog](https://github.com/fullstorydev/grpcui/blob/master/.goreleaser.yml)
    - [Commits](https://github.com/fullstorydev/grpcui/commits)

    ---
    updated-dependencies:
    - dependency-name: github.com/fullstorydev/grpcui
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    * make

    ---------

    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Forfold <Nathaniel.Cook@Target.com>

commit 6363ae1648b5972eafea61f1c1e00979afde2a16
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Mon May 13 09:44:47 2024 -0700

    build(deps): bump github.com/nyaruka/phonenumbers from 1.3.4 to 1.3.5 (#3862)

    Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.3.4 to 1.3.5.
    - [Release notes](https://github.com/nyaruka/phonenumbers/releases)
    - [Changelog](https://github.com/nyaruka/phone…
  • Loading branch information
AllenDing authored and AllenDing committed Jul 2, 2024
1 parent b42606b commit 7bb442e
Show file tree
Hide file tree
Showing 201 changed files with 10,216 additions and 7,584 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
cache: false
- uses: actions/checkout@v4
- name: golangci-lint
uses: golangci/golangci-lint-action@v5
uses: golangci/golangci-lint-action@v6
with:
# Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version
version: latest
Expand Down
63 changes: 56 additions & 7 deletions .storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,61 @@
import type { Preview } from '@storybook/react'
import DefaultDecorator from '../web/src/app/storybook/decorators'
import { initialize, mswLoader } from 'msw-storybook-addon'
import {
handleDefaultConfig,
handleExpFlags,
} from '../web/src/app/storybook/graphql'
import { defaultConfig } from '../web/src/app/storybook/graphql'
import { graphql, HttpResponse } from 'msw'

initialize({
onUnhandledRequest: 'bypass',
})

export type GraphQLRequestHandler = (variables: unknown) => object
export type GraphQLParams = Record<string, GraphQLRequestHandler>

const componentConfig: Record<string, GraphQLParams> = {}

export const mswHandler = graphql.operation((params) => {
const url = new URL(params.request.url)
const gql = componentConfig[url.pathname]
const handler = gql[params.operationName]
if (!handler) {
return HttpResponse.json({
errors: [
{ message: `No mock defined for operation '${params.operationName}'.` },
],
})
}

if (typeof handler === 'function') {
return HttpResponse.json(handler(params.variables))
}

return HttpResponse.json(handler)
})

interface LoaderArg {
id: string
parameters: {
graphql?: GraphQLParams
}
}

/**
* graphqlLoader is a loader function that sets up the GraphQL mocks for the
* component. It stores them in a global object, componentConfig, which is used
* by the mswHandler to resolve the mocks.
*
* We need to do this because the browser will render all components at once,
* and so we need to handle all GraphQL mocks at once.
*
* The way this works is that each component get's a unique URL for GraphQL
* (see decorators.tsx). This URL is used to store the GraphQL mocks for that
* component in componentConfig.
*/
export function graphQLLoader(arg: LoaderArg): void {
const path = '/' + encodeURIComponent(arg.id) + '/api/graphql'
componentConfig[path] = arg.parameters.graphql || {}
}

const preview: Preview = {
parameters: {
controls: {
Expand All @@ -18,12 +64,15 @@ const preview: Preview = {
date: /Date$/i,
},
},
msw: {
handlers: [handleDefaultConfig, handleExpFlags()],
graphql: {
// default GraphQL handlers
RequireConfig: { data: defaultConfig },
useExpFlag: { data: { experimentalFlags: [] } },
},
msw: { handlers: [mswHandler] },
},
decorators: [DefaultDecorator],
loaders: [mswLoader],
loaders: [graphQLLoader, mswLoader],
}

export default preview
19 changes: 8 additions & 11 deletions .storybook/static/mockServiceWorker.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@
/* tslint:disable */

/**
* Mock Service Worker (2.0.11).
* Mock Service Worker.
* @see https://github.com/mswjs/msw
* - Please do NOT modify this file.
* - Please do NOT serve this file on production.
*/

const INTEGRITY_CHECKSUM = 'c5f7f8e188b673ea4e677df7ea3c5a39'
const PACKAGE_VERSION = '2.3.0'
const INTEGRITY_CHECKSUM = '26357c79639bfa20d64c0efca2a87423'
const IS_MOCKED_RESPONSE = Symbol('isMockedResponse')
const activeClientIds = new Set()

Expand Down Expand Up @@ -48,7 +49,10 @@ self.addEventListener('message', async function (event) {
case 'INTEGRITY_CHECK_REQUEST': {
sendToClient(client, {
type: 'INTEGRITY_CHECK_RESPONSE',
payload: INTEGRITY_CHECKSUM,
payload: {
packageVersion: PACKAGE_VERSION,
checksum: INTEGRITY_CHECKSUM,
},
})
break
}
Expand Down Expand Up @@ -202,13 +206,6 @@ async function getResponse(event, client, requestId) {
return passthrough()
}

// Bypass requests with the explicit bypass header.
// Such requests can be issued by "ctx.fetch()".
const mswIntention = request.headers.get('x-msw-intention')
if (['bypass', 'passthrough'].includes(mswIntention)) {
return passthrough()
}

// Notify the client that a request has been intercepted.
const requestBuffer = await request.arrayBuffer()
const clientMessage = await sendToClient(
Expand Down Expand Up @@ -240,7 +237,7 @@ async function getResponse(event, client, requestId) {
return respondWithMock(clientMessage.data)
}

case 'MOCK_NOT_FOUND': {
case 'PASSTHROUGH': {
return passthrough()
}
}
Expand Down
7 changes: 7 additions & 0 deletions apikey/policy.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@ package apikey
import "github.com/target/goalert/permission"

// GQLPolicy is a GraphQL API key policy.
//
// Any changes to existing fields MUST require the version to be incremented.
//
// If new fields are added, they MUST be set to `omitempty`
// to ensure existing keys don't break.
//
// It MUST be possible to unmarshal & re-marshal the policy without changing the data for existing keys.
type GQLPolicy struct {
Version int
Query string
Expand Down
27 changes: 21 additions & 6 deletions apikey/policyinfo.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,25 @@ type policyInfo struct {
Policy GQLPolicy
}

func parsePolicyInfo(data []byte) (*policyInfo, error) {
var info policyInfo
err := json.Unmarshal(data, &info.Policy)
if err != nil {
return nil, err
}

// re-encode policy to get a consistent hash
data, err = json.Marshal(info.Policy)
if err != nil {
return nil, err
}

h := sha256.Sum256(data)
info.Hash = h[:]

return &info, nil
}

// _fetchPolicyInfo will fetch the policyInfo for the given key.
func (s *Store) _fetchPolicyInfo(ctx context.Context, id uuid.UUID) (*policyInfo, bool, error) {
polData, err := gadb.New(s.db).APIKeyAuthPolicy(ctx, id)
Expand All @@ -26,14 +45,10 @@ func (s *Store) _fetchPolicyInfo(ctx context.Context, id uuid.UUID) (*policyInfo
return nil, false, err
}

var info policyInfo
err = json.Unmarshal(polData, &info.Policy)
info, err := parsePolicyInfo(polData)
if err != nil {
return nil, false, err
}

h := sha256.Sum256(polData)
info.Hash = h[:]

return &info, true, nil
return info, true, nil
}
38 changes: 38 additions & 0 deletions apikey/policyinfo_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package apikey

import (
"testing"

"github.com/stretchr/testify/assert"
)

func TestParsePolicyInfo(t *testing.T) {
expected := &policyInfo{
// Never change this hash -- it is used to verify future changes wont break existing keys.
Hash: []byte{0x2d, 0x6d, 0xef, 0x3b, 0xfa, 0xd8, 0xef, 0x9d, 0x7e, 0x6c, 0xf4, 0xed, 0xd1, 0x81, 0x16, 0xf4, 0x23, 0xaa, 0x4a, 0xaf, 0x70, 0x1b, 0xfd, 0x1b, 0x26, 0x1d, 0xb3, 0x1, 0x4f, 0xdc, 0xa1, 0x61},
Policy: GQLPolicy{
Version: 1,
Query: "query",
Role: "admin",
},
}

info, err := parsePolicyInfo([]byte(`{"Version":1,"Query":"query","Role":"admin"}`))
assert.NoError(t, err)
assert.Equal(t, expected, info)

// add spaces and re-order keys
info, err = parsePolicyInfo([]byte(`{ "Role":"admin", "Query":"query","Version":1}`))
assert.NoError(t, err)
assert.Equal(t, expected, info)

// add extra field
info, err = parsePolicyInfo([]byte(`{"Version":1,"Query":"query","Role":"admin","Extra":true}`))
assert.NoError(t, err)
assert.Equal(t, expected, info)

// changed query
info, err = parsePolicyInfo([]byte(`{"Version":1,"Query":"query2","Role":"admin"}`))
assert.NoError(t, err)
assert.NotEqual(t, expected.Hash, info.Hash) // NOT equal
}
2 changes: 2 additions & 0 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"github.com/target/goalert/graphql2/graphqlapp"
"github.com/target/goalert/heartbeat"
"github.com/target/goalert/integrationkey"
"github.com/target/goalert/integrationkey/uik"
"github.com/target/goalert/keyring"
"github.com/target/goalert/label"
"github.com/target/goalert/limit"
Expand Down Expand Up @@ -99,6 +100,7 @@ type App struct {
ServiceStore *service.Store
EscalationStore *escalation.Store
IntegrationKeyStore *integrationkey.Store
UIKHandler *uik.Handler
ScheduleRuleStore *rule.Store
NotificationStore *notification.Store
ScheduleStore *schedule.Store
Expand Down
4 changes: 4 additions & 0 deletions app/inithttp.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (

"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/target/goalert/config"
"github.com/target/goalert/expflag"
"github.com/target/goalert/genericapi"
"github.com/target/goalert/grafana"
"github.com/target/goalert/mailgun"
Expand Down Expand Up @@ -142,6 +143,9 @@ func (app *App) initHTTP(ctx context.Context) error {
mux.HandleFunc("/api/v2/identity/providers/oidc", oidcAuth)
mux.HandleFunc("/api/v2/identity/providers/oidc/callback", oidcAuth)

if expflag.ContextHas(ctx, expflag.UnivKeys) {
mux.HandleFunc("POST /api/v2/uik", app.UIKHandler.ServeHTTP)
}
mux.HandleFunc("/api/v2/mailgun/incoming", mailgun.IngressWebhooks(app.AlertStore, app.IntegrationKeyStore))
mux.HandleFunc("/api/v2/grafana/incoming", grafana.GrafanaToEventsAPI(app.AlertStore, app.IntegrationKeyStore))
mux.HandleFunc("/api/v2/site24x7/incoming", site24x7.Site24x7ToEventsAPI(app.AlertStore, app.IntegrationKeyStore))
Expand Down
5 changes: 4 additions & 1 deletion app/initstores.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"github.com/target/goalert/escalation"
"github.com/target/goalert/heartbeat"
"github.com/target/goalert/integrationkey"
"github.com/target/goalert/integrationkey/uik"
"github.com/target/goalert/keyring"
"github.com/target/goalert/label"
"github.com/target/goalert/limit"
Expand Down Expand Up @@ -217,7 +218,7 @@ func (app *App) initStores(ctx context.Context) error {
}

if app.IntegrationKeyStore == nil {
app.IntegrationKeyStore = integrationkey.NewStore(ctx, app.db)
app.IntegrationKeyStore = integrationkey.NewStore(ctx, app.db, app.APIKeyring)
}

if app.ScheduleRuleStore == nil {
Expand Down Expand Up @@ -299,5 +300,7 @@ func (app *App) initStores(ctx context.Context) error {
return errors.Wrap(err, "init API key store")
}

app.UIKHandler = uik.NewHandler(app.db, app.IntegrationKeyStore, app.AlertStore)

return nil
}
6 changes: 6 additions & 0 deletions auth/authtoken/encode.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ func (t Token) Encode(signFn SignFunc) (string, error) {
b[2] = byte(t.Type)
copy(b[3:], t.ID[:])
binary.BigEndian.PutUint64(b[19:], uint64(t.CreatedAt.Unix()))
case 3:
b = make([]byte, 19)
b[0] = 'V' // versioned header format
b[1] = 3
b[2] = byte(t.Type)
copy(b[3:], t.ID[:])
default:
return "", validation.NewFieldError("Type", "unsupported version")
}
Expand Down
14 changes: 14 additions & 0 deletions auth/authtoken/parse.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,20 @@ func Parse(s string, verifyFn VerifyFunc) (*Token, bool, error) {
}

switch data[1] {
case 3:
if len(data) < 19 {
return nil, false, validation.NewGenericError("invalid length")
}
t := &Token{
Version: 3,
Type: Type(data[2]),
}
valid, isOldKey := verifyFn(t.Type, data[:19], data[19:])
if !valid {
return nil, false, validation.NewGenericError("invalid signature")
}
copy(t.ID[:], data[3:])
return t, isOldKey, nil
case 2:
if len(data) < 27 {
return nil, false, validation.NewGenericError("invalid length")
Expand Down
1 change: 1 addition & 0 deletions auth/authtoken/type.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ const (
TypeUnknown Type = iota // always make the zero-value Unknown
TypeSession
TypeCalSub
TypeUIK
)
9 changes: 9 additions & 0 deletions auth/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -564,6 +564,15 @@ func (h *Handler) authWithToken(w http.ResponseWriter, req *http.Request, next h
next.ServeHTTP(w, req.WithContext(ctx))
return true
}
if req.URL.Path == "/api/v2/uik" && strings.HasPrefix(tokStr, "ey") {
ctx, err = h.cfg.IntKeyStore.AuthorizeUIK(ctx, tokStr)
if errutil.HTTPError(req.Context(), w, err) {
return true
}

next.ServeHTTP(w, req.WithContext(ctx))
return true
}

tok, _, err := authtoken.Parse(tokStr, func(t authtoken.Type, p, sig []byte) (bool, bool) {
if t == authtoken.TypeSession {
Expand Down
2 changes: 1 addition & 1 deletion cmd/goalert-slack-email-sync/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ func main() {
creds = credentials.NewTLS(cfg)
}

conn, err := grpc.Dial(*api, grpc.WithTransportCredentials(creds))
conn, err := grpc.NewClient(*api, grpc.WithTransportCredentials(creds))
if err != nil {
log.Fatal("connect to GoAlert:", err)
}
Expand Down
3 changes: 3 additions & 0 deletions devtools/gqltsgen/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,9 @@ func main() {
if def.Name == "WeekdayFilter" {
typeName = "[boolean, boolean, boolean, boolean, boolean, boolean, boolean]"
}
if strings.HasSuffix(def.Name, "Map") {
typeName = "Record<string, string>"
}
fmt.Fprintf(w, "export type %s = %s\n\n", def.Name, typeName)
case ast.Union:
sort.Strings(def.Types)
Expand Down
2 changes: 1 addition & 1 deletion devtools/pgdump-lite/pgd/db.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 1 addition & 3 deletions devtools/pgdump-lite/pgd/models.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 7bb442e

Please sign in to comment.