Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement API-driven UI For Improved Plug-able Providers #3206

Open
mastercactapus opened this issue Aug 1, 2023 · 2 comments
Open

Implement API-driven UI For Improved Plug-able Providers #3206

mastercactapus opened this issue Aug 1, 2023 · 2 comments
Labels
enhancement New feature or request

Comments

@mastercactapus
Copy link
Member

What problem would you like to solve? Please describe:
As part of the ongoing efforts noted in issue #2639 to implement plugins/plug-able providers for notifications, we aim to continue this overhaul by making the UI elements like contact methods, escalation policy step assignments, and schedule notifications API-driven rather than hardcoded.

This aims to ease maintenance on current providers, and more importantly, is the core requirement for allowing plugins, where the provider types/names/etc won't be known until runtime.

Describe the solution you'd like:
We require the addition of new queries for the different types that will be used in form building (e.g., the contact method form, or the escalation policy step dialog), a generic query for searching (e.g., for things like Slack channels), and corresponding updates to the UI to make use of these API-driven elements.

This follows a similar approach we've successfully implemented by introducing an integrationKeyTypes query.

Describe alternatives you've considered:
Currently, no other alternatives have been considered due to the necessity of API-driven UI for implementing plugins.

Additional context:
This is continuation of previous efforts noted in issue #2639, aiming to implement plug-able providers.

@mastercactapus mastercactapus added the enhancement New feature or request label Aug 1, 2023
@mastercactapus
Copy link
Member Author

One proposal keeping notification channels and contact methods separate:

notificationChannelTypes: [NotificationChannelTypeInfo!]!
userContactMethodTypes: [UserContactMethodTypeInfo!]!

type NotificationChannelTypeInfo {
  id: ID!

  name: String!
  label: String!
  enabled: Boolean!

  supportsSearch: Boolean!
}

type UserContactMethodTypeInfo {
  id: ID!

  name: String!
  label: String!
  enabled: Boolean!
}

notificationChannelSearch(input: NotificationChannelSearchOptions!): [NotificationChannelInfo!]!

input NotificationChannelSearchOptions {
  type: ID!
  search: String
}

type NotificationChannelInfo {
  id: ID!
  type: ID!
  name: String!
}

@mastercactapus
Copy link
Member Author

We will likely keep Slack user groups out-of-scope for this, as it's more of an automation with error reporting than a notification destination; that type of thing doesn't fit well with any of the other delivery methods and should have its own criteria.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant