[CORL-810] Custom Moderation Phases (#2901)

* feat: initial implementation

* feat: renamed fields from mutations

* fix: more renaming to streamline {Key,Secret}->SigningSecret

* feat: introduced WrappedInternalError

* feat: enhanced extern payload, more fetch options

- Added tenant.{id,domain} to extern payload
- Added site.id to the extern payload
- Added response size limit to fetch
- Added new SCRAPE_MAX_RESPONSE_SIZE env var for managing the size of
  responses for scraping

* fix: fixed bug with scrape invocation

* feat: added more queries + mutations

- Added Query.externalModerationPhase
- Added Mutation.createExternalModerationPhase
- Added Mutation.updateExternalModerationPhase
- Added Mutation.enableExternalModerationPhase
- Added Mutation.disableExternalModerationPhase
- Added Mutation.deleteExternalModerationPhase
- Added Mutation.rotateExternalModerationPhaseSigningSecret

* feat: added secret management

* fix: linting

* fix: merge conflict fix

* feat: added UI

* fix: linting

* fix: linting

* fix: updated snapshots

* fix: improved docs

* fix: improved docs

* fix: added locales

* review: improve naming

* review: some review changes

- Switched /moderation/phase to /moderation/phases
- Fixed scrolling
- Fixed redirection

* fix: added scroll timeout for webhooks
This commit is contained in:
Wyatt Johnson
2020-05-14 19:20:35 +00:00
committed by GitHub
parent ceb96dba75
commit ed92f4916d
154 changed files with 5445 additions and 1694 deletions
@@ -52,6 +52,15 @@ exports[`renders configure advanced 1`] = `
Moderation
</a>
</li>
<li>
<a
className="Link-link"
href="/admin/configure/moderation/phases"
onClick={[Function]}
>
Moderation Phases
</a>
</li>
<li>
<a
className="Link-link"
@@ -52,6 +52,15 @@ exports[`renders configure auth 1`] = `
Moderation
</a>
</li>
<li>
<a
className="Link-link"
href="/admin/configure/moderation/phases"
onClick={[Function]}
>
Moderation Phases
</a>
</li>
<li>
<a
className="Link-link"
@@ -1284,10 +1293,10 @@ more about creating a JWT Token with
className="Box-root Flex-root Flex-flex Flex-justifySpaceBetween Flex-alignCenter"
>
<div
className="SSOKeyCard-keySection"
className="SSOSigningSecretCard-keySection"
>
<div
className="SSOKeyCard-label"
className="SSOSigningSecretCard-label"
>
<label
className="Label-root"
@@ -1309,10 +1318,10 @@ more about creating a JWT Token with
</div>
</div>
<div
className="SSOKeyCard-secretSection"
className="SSOSigningSecretCard-secretSection"
>
<div
className="SSOKeyCard-label"
className="SSOSigningSecretCard-label"
>
<label
className="Label-root"
@@ -1390,10 +1399,10 @@ more about creating a JWT Token with
className="Box-root Flex-root Flex-flex Flex-justifyFlexStart Flex-alignCenter"
>
<div
className="SSOKeyCard-statusSection"
className="SSOSigningSecretCard-statusSection"
>
<div
className="SSOKeyCard-label"
className="SSOSigningSecretCard-label"
>
<label
className="Label-root"
@@ -52,6 +52,15 @@ exports[`renders configure general 1`] = `
Moderation
</a>
</li>
<li>
<a
className="Link-link"
href="/admin/configure/moderation/phases"
onClick={[Function]}
>
Moderation Phases
</a>
</li>
<li>
<a
className="Link-link"
@@ -52,6 +52,15 @@ exports[`renders configure moderation 1`] = `
Moderation
</a>
</li>
<li>
<a
className="Link-link"
href="/admin/configure/moderation/phases"
onClick={[Function]}
>
Moderation Phases
</a>
</li>
<li>
<a
className="Link-link"
@@ -52,6 +52,15 @@ exports[`renders configure organization 1`] = `
Moderation
</a>
</li>
<li>
<a
className="Link-link"
href="/admin/configure/moderation/phases"
onClick={[Function]}
>
Moderation Phases
</a>
</li>
<li>
<a
className="Link-link"
@@ -52,6 +52,15 @@ exports[`renders configure wordList 1`] = `
Moderation
</a>
</li>
<li>
<a
className="Link-link"
href="/admin/configure/moderation/phases"
onClick={[Function]}
>
Moderation Phases
</a>
</li>
<li>
<a
className="Link-link Link-linkActive"
@@ -62,7 +62,7 @@ it("rotate sso key", async () => {
const { testRenderer } = await createTestRenderer({
resolvers: createResolversStub<GQLResolver>({
Mutation: {
rotateSSOKey: () => {
rotateSSOSigningSecret: () => {
return {
settings: pureMerge<typeof settingsWithEmptyAuth>(
settingsWithEmptyAuth,
@@ -71,7 +71,7 @@ it("rotate sso key", async () => {
integrations: {
sso: {
enabled: true,
keys: [
signingSecrets: [
{
kid: "kid-01",
secret: "secret",
+2 -2
View File
@@ -114,7 +114,7 @@ export const settings = createFixture<GQLSettings>({
admin: true,
stream: true,
},
keys: [
signingSecrets: [
{
kid: "kid-01",
secret: "secret",
@@ -212,7 +212,7 @@ export const settingsWithEmptyAuth = createFixture<GQLSettings>(
stream: true,
},
key: "",
keys: [
signingSecrets: [
{
kid: "kid-01",
secret: "secret",