├── README.md ├── docker-compose-flink-job.yaml ├── docker-compose-flink-session.yaml ├── docker-compose-kafka.yaml ├── docker-compose-local-job.yaml ├── docker-compose-local.yaml ├── docker-compose.yaml ├── flink-job ├── .dockerignore ├── .gitignore ├── Dockerfile ├── README.md ├── build.gradle ├── docker-entrypoint.sh ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── ververica │ │ │ └── field │ │ │ ├── config │ │ │ ├── Config.java │ │ │ ├── Param.java │ │ │ └── Parameters.java │ │ │ ├── dynamicrules │ │ │ ├── Alert.java │ │ │ ├── FieldsExtractor.java │ │ │ ├── JsonMapper.java │ │ │ ├── KafkaUtils.java │ │ │ ├── Keyed.java │ │ │ ├── KeysExtractor.java │ │ │ ├── Main.java │ │ │ ├── Rule.java │ │ │ ├── RuleHelper.java │ │ │ ├── RuleParser.java │ │ │ ├── RulesEvaluator.java │ │ │ ├── TimestampAssignable.java │ │ │ ├── Transaction.java │ │ │ ├── accumulators │ │ │ │ ├── AverageAccumulator.java │ │ │ │ ├── BigDecimalCounter.java │ │ │ │ ├── BigDecimalMaximum.java │ │ │ │ └── BigDecimalMinimum.java │ │ │ ├── functions │ │ │ │ ├── AverageAggregate.java │ │ │ │ ├── DynamicAlertFunction.java │ │ │ │ ├── DynamicKeyFunction.java │ │ │ │ ├── JsonDeserializer.java │ │ │ │ ├── JsonGeneratorWrapper.java │ │ │ │ ├── JsonSerializer.java │ │ │ │ ├── ProcessingUtils.java │ │ │ │ ├── RuleDeserializer.java │ │ │ │ ├── TimeStamper.java │ │ │ │ └── TransactionsGenerator.java │ │ │ ├── sinks │ │ │ │ ├── AlertsSink.java │ │ │ │ ├── CurrentRulesSink.java │ │ │ │ └── LatencySink.java │ │ │ └── sources │ │ │ │ ├── RulesSource.java │ │ │ │ └── TransactionsSource.java │ │ │ └── sources │ │ │ ├── BaseGenerator.java │ │ │ └── Throttler.java │ └── resources │ │ ├── log4j2.properties │ │ └── logback.xml │ └── test │ └── java │ └── com │ └── ververica │ └── field │ ├── config │ └── ConfigTest.java │ └── dynamicrules │ ├── RuleParserTest.java │ ├── RulesEvaluatorTest.java │ └── util │ ├── AssertUtils.java │ ├── BroadcastStreamKeyedOperatorTestHarness.java │ └── BroadcastStreamNonKeyedOperatorTestHarness.java └── webapp ├── .dockerignore ├── .eslintrc ├── .gitignore ├── .mvn └── wrapper │ ├── MavenWrapperDownloader.java │ └── maven-wrapper.properties ├── .prettierrc ├── Dockerfile ├── README.md ├── cloud.Dockerfile ├── cloudbuild.yaml ├── mvn ├── MavenWrapperDownloader.java └── maven-wrapper.properties ├── mvnw ├── mvnw.cmd ├── package-lock.json ├── package.json ├── pom.xml ├── public ├── favicon.ico └── index.html ├── scripts └── fix-leader-line.sh ├── src ├── app │ ├── assets │ │ ├── app.scss │ │ ├── flink_squirrel_200_color.png │ │ └── theme.scss │ ├── components │ │ ├── AddRuleModal.tsx │ │ ├── Alerts.tsx │ │ ├── App.tsx │ │ ├── CenteredContainer.tsx │ │ ├── FieldGroup.tsx │ │ ├── Header.tsx │ │ ├── Rules.tsx │ │ ├── Transactions.tsx │ │ └── index.ts │ ├── interfaces │ │ ├── Alert.ts │ │ ├── Rule.ts │ │ ├── Transaction.ts │ │ └── index.ts │ └── utils │ │ ├── index.ts │ │ └── useLines.ts ├── index.tsx ├── main │ ├── java │ │ └── com │ │ │ └── ververica │ │ │ └── demo │ │ │ └── backend │ │ │ ├── Main.java │ │ │ ├── configurations │ │ │ ├── KafkaConsumerConfig.java │ │ │ ├── KafkaProducerConfig.java │ │ │ ├── PropertyLogger.java │ │ │ ├── SwaggerConfig.java │ │ │ └── WebSocketConfig.java │ │ │ ├── controllers │ │ │ ├── AlertsController.java │ │ │ ├── DataGenerationController.java │ │ │ ├── FlinkController.java │ │ │ └── RuleRestController.java │ │ │ ├── datasource │ │ │ ├── DemoTransactionsGenerator.java │ │ │ ├── RulesBootstrapper.java │ │ │ ├── Throttler.java │ │ │ ├── Transaction.java │ │ │ └── TransactionsGenerator.java │ │ │ ├── entities │ │ │ └── Rule.java │ │ │ ├── exceptions │ │ │ └── RuleNotFoundException.java │ │ │ ├── model │ │ │ ├── Alert.java │ │ │ └── RulePayload.java │ │ │ ├── repositories │ │ │ └── RuleRepository.java │ │ │ └── services │ │ │ ├── FlinkRulesService.java │ │ │ ├── KafkaAlertsPusher.java │ │ │ ├── KafkaConsumerService.java │ │ │ ├── KafkaTransactionsConsumerService.java │ │ │ └── KafkaTransactionsPusher.java │ └── resources │ │ ├── application-cloud.yaml │ │ ├── application-dev.yaml │ │ └── application.yaml ├── react-app-env.d.ts ├── setupProxy.js └── test │ └── java │ └── com │ └── ververica │ └── demo │ └── backend │ └── MainTest.java ├── tsconfig.json ├── tslint.json └── webapp.Dockerfile /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose-flink-job.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/docker-compose-flink-job.yaml -------------------------------------------------------------------------------- /docker-compose-flink-session.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/docker-compose-flink-session.yaml -------------------------------------------------------------------------------- /docker-compose-kafka.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/docker-compose-kafka.yaml -------------------------------------------------------------------------------- /docker-compose-local-job.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/docker-compose-local-job.yaml -------------------------------------------------------------------------------- /docker-compose-local.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/docker-compose-local.yaml -------------------------------------------------------------------------------- /docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/docker-compose.yaml -------------------------------------------------------------------------------- /flink-job/.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/.dockerignore -------------------------------------------------------------------------------- /flink-job/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/.gitignore -------------------------------------------------------------------------------- /flink-job/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/Dockerfile -------------------------------------------------------------------------------- /flink-job/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/README.md -------------------------------------------------------------------------------- /flink-job/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/build.gradle -------------------------------------------------------------------------------- /flink-job/docker-entrypoint.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/docker-entrypoint.sh -------------------------------------------------------------------------------- /flink-job/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /flink-job/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /flink-job/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/gradlew -------------------------------------------------------------------------------- /flink-job/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/gradlew.bat -------------------------------------------------------------------------------- /flink-job/settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/settings.gradle -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/config/Config.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/config/Config.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/config/Param.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/config/Param.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/config/Parameters.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/config/Parameters.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/Alert.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/Alert.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/FieldsExtractor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/FieldsExtractor.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/JsonMapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/JsonMapper.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/KafkaUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/KafkaUtils.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/Keyed.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/Keyed.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/KeysExtractor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/KeysExtractor.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/Main.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/Rule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/Rule.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/RuleHelper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/RuleHelper.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/RuleParser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/RuleParser.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/RulesEvaluator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/RulesEvaluator.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/TimestampAssignable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/TimestampAssignable.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/Transaction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/Transaction.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/accumulators/AverageAccumulator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/accumulators/AverageAccumulator.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/accumulators/BigDecimalCounter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/accumulators/BigDecimalCounter.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/accumulators/BigDecimalMaximum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/accumulators/BigDecimalMaximum.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/accumulators/BigDecimalMinimum.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/accumulators/BigDecimalMinimum.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/functions/AverageAggregate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/functions/AverageAggregate.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/functions/DynamicAlertFunction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/functions/DynamicAlertFunction.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/functions/DynamicKeyFunction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/functions/DynamicKeyFunction.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/functions/JsonDeserializer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/functions/JsonDeserializer.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/functions/JsonGeneratorWrapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/functions/JsonGeneratorWrapper.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/functions/JsonSerializer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/functions/JsonSerializer.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/functions/ProcessingUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/functions/ProcessingUtils.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/functions/RuleDeserializer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/functions/RuleDeserializer.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/functions/TimeStamper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/functions/TimeStamper.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/functions/TransactionsGenerator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/functions/TransactionsGenerator.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/sinks/AlertsSink.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/sinks/AlertsSink.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/sinks/CurrentRulesSink.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/sinks/CurrentRulesSink.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/sinks/LatencySink.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/sinks/LatencySink.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/sources/RulesSource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/sources/RulesSource.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/dynamicrules/sources/TransactionsSource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/dynamicrules/sources/TransactionsSource.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/sources/BaseGenerator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/sources/BaseGenerator.java -------------------------------------------------------------------------------- /flink-job/src/main/java/com/ververica/field/sources/Throttler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/java/com/ververica/field/sources/Throttler.java -------------------------------------------------------------------------------- /flink-job/src/main/resources/log4j2.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/resources/log4j2.properties -------------------------------------------------------------------------------- /flink-job/src/main/resources/logback.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/main/resources/logback.xml -------------------------------------------------------------------------------- /flink-job/src/test/java/com/ververica/field/config/ConfigTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/test/java/com/ververica/field/config/ConfigTest.java -------------------------------------------------------------------------------- /flink-job/src/test/java/com/ververica/field/dynamicrules/RuleParserTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/test/java/com/ververica/field/dynamicrules/RuleParserTest.java -------------------------------------------------------------------------------- /flink-job/src/test/java/com/ververica/field/dynamicrules/RulesEvaluatorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/test/java/com/ververica/field/dynamicrules/RulesEvaluatorTest.java -------------------------------------------------------------------------------- /flink-job/src/test/java/com/ververica/field/dynamicrules/util/AssertUtils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/test/java/com/ververica/field/dynamicrules/util/AssertUtils.java -------------------------------------------------------------------------------- /flink-job/src/test/java/com/ververica/field/dynamicrules/util/BroadcastStreamKeyedOperatorTestHarness.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/test/java/com/ververica/field/dynamicrules/util/BroadcastStreamKeyedOperatorTestHarness.java -------------------------------------------------------------------------------- /flink-job/src/test/java/com/ververica/field/dynamicrules/util/BroadcastStreamNonKeyedOperatorTestHarness.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/flink-job/src/test/java/com/ververica/field/dynamicrules/util/BroadcastStreamNonKeyedOperatorTestHarness.java -------------------------------------------------------------------------------- /webapp/.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | node_modules 3 | build 4 | .idea 5 | #target -------------------------------------------------------------------------------- /webapp/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["react-app"] 3 | } 4 | -------------------------------------------------------------------------------- /webapp/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/.gitignore -------------------------------------------------------------------------------- /webapp/.mvn/wrapper/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/.mvn/wrapper/MavenWrapperDownloader.java -------------------------------------------------------------------------------- /webapp/.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/.mvn/wrapper/maven-wrapper.properties -------------------------------------------------------------------------------- /webapp/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/.prettierrc -------------------------------------------------------------------------------- /webapp/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/Dockerfile -------------------------------------------------------------------------------- /webapp/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/README.md -------------------------------------------------------------------------------- /webapp/cloud.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/cloud.Dockerfile -------------------------------------------------------------------------------- /webapp/cloudbuild.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/cloudbuild.yaml -------------------------------------------------------------------------------- /webapp/mvn/MavenWrapperDownloader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/mvn/MavenWrapperDownloader.java -------------------------------------------------------------------------------- /webapp/mvn/maven-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/mvn/maven-wrapper.properties -------------------------------------------------------------------------------- /webapp/mvnw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/mvnw -------------------------------------------------------------------------------- /webapp/mvnw.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/mvnw.cmd -------------------------------------------------------------------------------- /webapp/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/package-lock.json -------------------------------------------------------------------------------- /webapp/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/package.json -------------------------------------------------------------------------------- /webapp/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/pom.xml -------------------------------------------------------------------------------- /webapp/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/public/favicon.ico -------------------------------------------------------------------------------- /webapp/public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/public/index.html -------------------------------------------------------------------------------- /webapp/scripts/fix-leader-line.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/scripts/fix-leader-line.sh -------------------------------------------------------------------------------- /webapp/src/app/assets/app.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/assets/app.scss -------------------------------------------------------------------------------- /webapp/src/app/assets/flink_squirrel_200_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/assets/flink_squirrel_200_color.png -------------------------------------------------------------------------------- /webapp/src/app/assets/theme.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/assets/theme.scss -------------------------------------------------------------------------------- /webapp/src/app/components/AddRuleModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/components/AddRuleModal.tsx -------------------------------------------------------------------------------- /webapp/src/app/components/Alerts.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/components/Alerts.tsx -------------------------------------------------------------------------------- /webapp/src/app/components/App.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/components/App.tsx -------------------------------------------------------------------------------- /webapp/src/app/components/CenteredContainer.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/components/CenteredContainer.tsx -------------------------------------------------------------------------------- /webapp/src/app/components/FieldGroup.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/components/FieldGroup.tsx -------------------------------------------------------------------------------- /webapp/src/app/components/Header.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/components/Header.tsx -------------------------------------------------------------------------------- /webapp/src/app/components/Rules.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/components/Rules.tsx -------------------------------------------------------------------------------- /webapp/src/app/components/Transactions.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/components/Transactions.tsx -------------------------------------------------------------------------------- /webapp/src/app/components/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/components/index.ts -------------------------------------------------------------------------------- /webapp/src/app/interfaces/Alert.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/interfaces/Alert.ts -------------------------------------------------------------------------------- /webapp/src/app/interfaces/Rule.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/interfaces/Rule.ts -------------------------------------------------------------------------------- /webapp/src/app/interfaces/Transaction.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/interfaces/Transaction.ts -------------------------------------------------------------------------------- /webapp/src/app/interfaces/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/interfaces/index.ts -------------------------------------------------------------------------------- /webapp/src/app/utils/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/utils/index.ts -------------------------------------------------------------------------------- /webapp/src/app/utils/useLines.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/app/utils/useLines.ts -------------------------------------------------------------------------------- /webapp/src/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/index.tsx -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/Main.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/configurations/KafkaConsumerConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/configurations/KafkaConsumerConfig.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/configurations/KafkaProducerConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/configurations/KafkaProducerConfig.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/configurations/PropertyLogger.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/configurations/PropertyLogger.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/configurations/SwaggerConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/configurations/SwaggerConfig.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/configurations/WebSocketConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/configurations/WebSocketConfig.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/controllers/AlertsController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/controllers/AlertsController.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/controllers/DataGenerationController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/controllers/DataGenerationController.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/controllers/FlinkController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/controllers/FlinkController.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/controllers/RuleRestController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/controllers/RuleRestController.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/datasource/DemoTransactionsGenerator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/datasource/DemoTransactionsGenerator.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/datasource/RulesBootstrapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/datasource/RulesBootstrapper.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/datasource/Throttler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/datasource/Throttler.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/datasource/Transaction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/datasource/Transaction.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/datasource/TransactionsGenerator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/datasource/TransactionsGenerator.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/entities/Rule.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/entities/Rule.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/exceptions/RuleNotFoundException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/exceptions/RuleNotFoundException.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/model/Alert.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/model/Alert.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/model/RulePayload.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/model/RulePayload.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/repositories/RuleRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/repositories/RuleRepository.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/services/FlinkRulesService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/services/FlinkRulesService.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/services/KafkaAlertsPusher.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/services/KafkaAlertsPusher.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/services/KafkaConsumerService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/services/KafkaConsumerService.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/services/KafkaTransactionsConsumerService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/services/KafkaTransactionsConsumerService.java -------------------------------------------------------------------------------- /webapp/src/main/java/com/ververica/demo/backend/services/KafkaTransactionsPusher.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/java/com/ververica/demo/backend/services/KafkaTransactionsPusher.java -------------------------------------------------------------------------------- /webapp/src/main/resources/application-cloud.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/resources/application-cloud.yaml -------------------------------------------------------------------------------- /webapp/src/main/resources/application-dev.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/resources/application-dev.yaml -------------------------------------------------------------------------------- /webapp/src/main/resources/application.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/main/resources/application.yaml -------------------------------------------------------------------------------- /webapp/src/react-app-env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/react-app-env.d.ts -------------------------------------------------------------------------------- /webapp/src/setupProxy.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/setupProxy.js -------------------------------------------------------------------------------- /webapp/src/test/java/com/ververica/demo/backend/MainTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/src/test/java/com/ververica/demo/backend/MainTest.java -------------------------------------------------------------------------------- /webapp/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/tsconfig.json -------------------------------------------------------------------------------- /webapp/tslint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/tslint.json -------------------------------------------------------------------------------- /webapp/webapp.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/afedulov/fraud-detection-demo/HEAD/webapp/webapp.Dockerfile --------------------------------------------------------------------------------