Mirror of https://github.com/roostorg/coop github.com/roostorg/coop
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 557ff54b2b435e5f1e789c6a8a4e1bebf2d7deb6 526 lines 9.9 kB view raw
1/* eslint-disable max-lines */ 2import { mergeTypeDefs } from '@graphql-tools/merge'; 3 4import { typeDefs as actionTypeDefs } from './modules/action.js'; 5import { typeDefs as actionStatisticsTypeDefs } from './modules/actionStatistics.js'; 6import { typeDefs as apiKeyTypeDefs } from './modules/apiKey.js'; 7import { typeDefs as authenticationTypeDefs } from './modules/authentication.js'; 8import { typeDefs as backtestTypeDefs } from './modules/backtest.js'; 9import { typeDefs as contentTypeTypeDefs } from './modules/contentType.js'; 10import { typeDefs as genericTypeDefs } from './modules/generic.js'; 11import { typeDefs as hashBanksTypeDefs } from './modules/hashBanks/schema.js'; 12import { typeDefs as insightsTypeDefs } from './modules/insights.js'; 13import { typeDefs as integrationTypeDefs } from './modules/integration.js'; 14import { typeDefs as investigationTypeDefs } from './modules/investigation.js'; 15import { typeDefs as itemTypeTypeDefs } from './modules/itemType.js'; 16import { typeDefs as locationBankTypeDefs } from './modules/locationBank.js'; 17import { typeDefs as manualReviewToolTypeDefs } from './modules/manualReviewTool.js'; 18import { typeDefs as ncmecTypeDefs } from './modules/ncmec.js'; 19import { typeDefs as orgTypeDefs } from './modules/org.js'; 20import { typeDefs as policyTypeDefs } from './modules/policy.js'; 21import { typeDefs as reportingTypeDefs } from './modules/reporting.js'; 22import { typeDefs as reportingRulesTypeDefs } from './modules/reportingRule.js'; 23import { typeDefs as retroactionTypeDefs } from './modules/retroaction.js'; 24import { typeDefs as routingRulesTypeDefs } from './modules/routingRule.js'; 25import { typeDefs as ruleTypeDefs } from './modules/rule.js'; 26import { typeDefs as signalTypeDefs } from './modules/signal.js'; 27import { typeDefs as spotTestTypeDefs } from './modules/spotTest.js'; 28import { typeDefs as textBankTypeDefs } from './modules/textBank.js'; 29import { typeDefs as userTypeDefs } from './modules/user.js'; 30 31/** 32 * GraphQL Schema 33 */ 34const typeDefs = /* GraphQL */ ` 35 enum RuleEnvironment { 36 BACKGROUND 37 BACKTEST 38 LIVE 39 MANUAL 40 RETROACTION 41 } 42 43 enum ForgotPasswordError { 44 USER_NOT_FOUND 45 OTHER 46 } 47 48 enum MutateActionError { 49 ACTION_NAME_EXISTS 50 } 51 52 # !! IMPORTANT: when you add a value here, also add it to FieldType and SignalInputType !! 53 enum ScalarType { 54 USER_ID 55 ID 56 STRING 57 BOOLEAN 58 NUMBER 59 AUDIO 60 IMAGE 61 VIDEO 62 DATETIME 63 GEOHASH 64 RELATED_ITEM 65 URL 66 POLICY_ID 67 } 68 69 # This is equivalent to ScalarType, but with 'FULL_ITEM' added 70 enum SignalInputType { 71 USER_ID 72 ID 73 STRING 74 BOOLEAN 75 NUMBER 76 AUDIO 77 IMAGE 78 VIDEO 79 DATETIME 80 GEOHASH 81 RELATED_ITEM 82 URL 83 FULL_ITEM 84 POLICY_ID 85 } 86 87 # !! IMPORTANT: when you add a value here, also add it to FieldType !! 88 enum ContainerType { 89 ARRAY 90 MAP 91 } 92 93 enum FieldType { 94 USER_ID 95 ID 96 STRING 97 BOOLEAN 98 NUMBER 99 AUDIO 100 IMAGE 101 VIDEO 102 DATETIME 103 GEOHASH 104 ARRAY 105 MAP 106 RELATED_ITEM 107 URL 108 POLICY_ID 109 } 110 111 enum Language { 112 ABKHAZIAN 113 AFAR 114 AFRIKAANS 115 AKAN 116 ALBANIAN 117 AMHARIC 118 ARABIC 119 ARAGONESE 120 ARMENIAN 121 ASSAMESE 122 AVARIC 123 AVESTAN 124 AYMARA 125 AZERBAIJANI 126 AZERI 127 BAMBARA 128 BASHKIR 129 BASQUE 130 BELARUSIAN 131 BENGALI 132 BIHARI 133 BISLAMA 134 BOKMAL 135 BOSNIAN 136 BRETON 137 BULGARIAN 138 BURMESE 139 CATALAN 140 CEBUANO 141 CENTRAL_KHMER 142 CHAMORRO 143 CHECHEN 144 CHINESE 145 CHURCH_SLAVIC 146 CHUVASH 147 CORNISH 148 CORSICAN 149 CREE 150 CROATIAN 151 CZECH 152 DANISH 153 DHIVEHI 154 DUTCH 155 DZONGKHA 156 ENGLISH 157 ESPERANTO 158 ESTONIAN 159 EWE 160 FAROESE 161 FARSI 162 FIJIAN 163 FINNISH 164 FLEMISH 165 FRENCH 166 FULAH 167 GAELIC 168 GALICIAN 169 GANDA 170 GEORGIAN 171 GERMAN 172 GREEK 173 GUARANI 174 GUJARATI 175 HAITIAN 176 HAUSA 177 HAWAIIAN 178 HEBREW 179 HERERO 180 HINDI 181 HIRI_MOTU 182 HUNGARIAN 183 ICELANDIC 184 IDO 185 IGBO 186 INDONESIAN 187 INTERLINGUA 188 INUKTITUT 189 INUPIAQ 190 IRISH 191 ITALIAN 192 JAPANESE 193 JAVANESE 194 KALAALLISUT 195 KANNADA 196 KANURI 197 KASHMIRI 198 KAZAKH 199 KIKUYU 200 KINYARWANDA 201 KOMI 202 KONGO 203 KOREAN 204 KUANYAMA 205 KURDISH 206 KYRGYZ 207 LAO 208 LATIN 209 LATVIAN 210 LIMBURGAN 211 LINGALA 212 LITHUANIAN 213 LUBA_KATANGA 214 LUXEMBOURGISH 215 MACEDONIAN 216 MALAGASY 217 MALAY 218 MALAYALAM 219 MALTESE 220 MANX 221 MAORI 222 MARATHI 223 MARSHALLESE 224 MOLDOVIAN 225 MONGOLIAN 226 NAURU 227 NAVAJO 228 NDONGA 229 NEPALI 230 NORTH_NDEBELE 231 NORTHERN_SAMI 232 NORWEGIAN 233 NYANJA 234 OCCITAN 235 OJIBWA 236 ORIYA 237 OROMO 238 OSSETIAN 239 PALI 240 PASHTO 241 PERSIAN 242 PIDGIN 243 POLISH 244 PORTUGUESE 245 PUNJABI 246 QUECHUA 247 ROMANIAN 248 ROMANSH 249 RUNDI 250 RUSSIAN 251 SAMOAN 252 SANGO 253 SANSKRIT 254 SARDINIAN 255 SERBIAN 256 SHONA 257 SICHUAN_YI 258 SINDHI 259 SINHALESE 260 SLOVAK 261 SLOVENE 262 SOMALI 263 SOUTH_NDEBELE 264 SOUTHERN_SOTHO 265 SPANISH 266 SUNDANESE 267 SWAHILI 268 SWATI 269 SWEDISH 270 TAGALOG 271 TAHITIAN 272 TAJIK 273 TAMIL 274 TATAR 275 TELUGU 276 THAI 277 TIBETAN 278 TIGRINYA 279 TONGA 280 TSONGA 281 TSWANA 282 TURKISH 283 TURKMEN 284 TWI 285 UKRAINIAN 286 URDU 287 UYGHUR 288 UZBEK 289 VENDA 290 VIETNAMESE 291 VOLAPUK 292 WALLOON 293 WELSH 294 WESTERN_FRISIAN 295 WOLOF 296 XHOSA 297 YIDDISH 298 YORUBA 299 ZHUANG 300 ZULU 301 } 302 303 type InviteUserToken { 304 token: String! 305 email: String! 306 role: UserRole! 307 orgId: String! 308 samlEnabled: Boolean! 309 } 310 311 type InviteUserTokenSuccessResponse { 312 tokenData: InviteUserToken! 313 } 314 315 type InviteUserTokenExpiredError implements Error { 316 title: String! 317 status: Int! 318 type: [String!]! 319 pointer: String 320 detail: String 321 requestId: String 322 } 323 324 type InviteUserTokenMissingError implements Error { 325 title: String! 326 status: Int! 327 type: [String!]! 328 pointer: String 329 detail: String 330 requestId: String 331 } 332 333 union InviteUserTokenResponse = 334 InviteUserTokenSuccessResponse 335 | InviteUserTokenExpiredError 336 | InviteUserTokenMissingError 337 338 type MatchingBanks { 339 textBanks: [TextBank!]! 340 locationBanks: [LocationBank!]! 341 hashBanks: [HashBank!]! 342 } 343 344 enum LoginMethod { 345 PASSWORD 346 SAML 347 } 348 349 input SignUpInput { 350 email: String! 351 password: String 352 loginMethod: LoginMethod! 353 firstName: String! 354 lastName: String! 355 orgId: String! 356 role: UserRole 357 inviteUserToken: String 358 } 359 360 type SignUpSuccessResponse { 361 data: User 362 } 363 364 type SignUpUserExistsError implements Error { 365 title: String! 366 status: Int! 367 type: [String!]! 368 pointer: String 369 detail: String 370 requestId: String 371 } 372 373 union SignUpResponse = SignUpSuccessResponse | SignUpUserExistsError 374 375 type CountByDay { 376 date: Date! 377 count: Int! 378 } 379 380 type CountByPolicyByDay { 381 date: Date! 382 count: Int! 383 policy: CountByPolicyByDayPolicy! 384 } 385 386 type CountByPolicyByDayPolicy { 387 id: ID! 388 name: String! 389 } 390 391 type CountByTagByDay { 392 date: Date! 393 count: Int! 394 tag: String! 395 } 396 397 type CountByActionByDay { 398 date: Date! 399 count: Int! 400 action: CountByActionByDayAction! 401 } 402 403 type CountByActionByDayAction { 404 name: String! 405 id: ID! 406 } 407 408 type CountByDecisionTypeByDay { 409 date: Date! 410 count: Int! 411 decisionType: String! 412 } 413 414 type AllRuleInsights { 415 totalSubmissionsByDay: [CountByDay!]! 416 actionedSubmissionsByDay: [CountByDay!]! 417 actionedSubmissionsByPolicyByDay: [CountByPolicyByDay!]! 418 actionedSubmissionsByTagByDay: [CountByTagByDay!]! 419 actionedSubmissionsByActionByDay: [CountByActionByDay!]! 420 } 421 422 input CreateOrgInput { 423 name: String! 424 email: String! 425 website: String! 426 } 427 428 input SendPasswordResetInput { 429 email: String! 430 } 431 432 input ResetPasswordInput { 433 token: String! 434 newPassword: String! 435 } 436 437 input UpdateRoleInput { 438 id: ID! 439 role: UserRole! 440 } 441 442 input InviteUserInput { 443 email: String! 444 role: UserRole! 445 } 446 447 type PendingInvite { 448 id: ID! 449 email: String! 450 role: UserRole! 451 createdAt: DateTime! 452 } 453 454 enum RequestDemoInterest { 455 CUSTOM_AI_MODELS 456 MODERATOR_CONSOLE 457 AUTOMATED_ENFORCEMENT 458 COMPLIANCE_TOOLKIT 459 } 460 461 input RequestDemoInput { 462 email: String! 463 company: String! 464 website: String! 465 interests: [RequestDemoInterest!]! 466 ref: String! 467 isFromGoogleAds: Boolean! 468 } 469 470 directive @publicResolver on FIELD_DEFINITION 471 472 type Query { 473 myOrg: Org 474 userFromToken(token: String!): ID 475 inviteUserToken(token: String!): InviteUserTokenResponse! @publicResolver 476 allRuleInsights: AllRuleInsights 477 isWarehouseAvailable: Boolean! 478 } 479 480 type Mutation { 481 # TODO: secure these; figure out where they should go 482 # (auth module? user module? org module?) 483 signUp(input: SignUpInput!): SignUpResponse! @publicResolver 484 sendPasswordReset(input: SendPasswordResetInput!): Boolean! @publicResolver 485 resetPassword(input: ResetPasswordInput!): Boolean! @publicResolver 486 generatePasswordResetToken(userId: ID!): String 487 updateRole(input: UpdateRoleInput!): Boolean 488 inviteUser(input: InviteUserInput!): String 489 deleteInvite(id: ID!): Boolean 490 approveUser(id: ID!): Boolean 491 rejectUser(id: ID!): Boolean 492 493 requestDemo(input: RequestDemoInput!): Boolean @publicResolver 494 } 495`; 496 497export default mergeTypeDefs([ 498 typeDefs, 499 genericTypeDefs, 500 // Modules 501 actionStatisticsTypeDefs, 502 actionTypeDefs, 503 apiKeyTypeDefs, 504 authenticationTypeDefs, 505 backtestTypeDefs, 506 contentTypeTypeDefs, 507 hashBanksTypeDefs, 508 insightsTypeDefs, 509 integrationTypeDefs, 510 investigationTypeDefs, 511 itemTypeTypeDefs, 512 locationBankTypeDefs, 513 manualReviewToolTypeDefs, 514 ncmecTypeDefs, 515 orgTypeDefs, 516 policyTypeDefs, 517 reportingRulesTypeDefs, 518 reportingTypeDefs, 519 retroactionTypeDefs, 520 routingRulesTypeDefs, 521 ruleTypeDefs, 522 signalTypeDefs, 523 spotTestTypeDefs, 524 textBankTypeDefs, 525 userTypeDefs, 526]);