The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .asf.yaml
├── .dlc.json
├── .editorconfig
├── .git-blame-ignore-revs
├── .gitattributes
├── .github
    ├── ISSUE_TEMPLATE
    │   ├── bug-report.yml
    │   ├── config.yml
    │   ├── feature-request.yml
    │   ├── improvement-request.yml
    │   ├── spip-request.yml
    │   └── umbrella.yml
    ├── PULL_REQUEST_TEMPLATE.md
    ├── labeler.yml
    └── workflows
    │   ├── backend.yml
    │   ├── codeql-analysis.yml
    │   ├── docker-push.yml
    │   ├── docs.yml
    │   ├── e2e.yml
    │   ├── frontend.yml
    │   ├── pull-request-robot.yml
    │   └── unit-test.yml
├── .gitignore
├── .gitmodules
├── .idea
    ├── icon.png
    └── vcs.xml
├── .licenserc.yaml
├── .mvn
    └── wrapper
    │   ├── MavenWrapperHelper.java
    │   └── maven-wrapper.properties
├── LICENSE
├── NOTICE
├── README.md
├── build.sh
├── dist-material
    └── release-docs
    │   ├── LICENSE
    │   ├── LICENSE.tpl
    │   ├── NOTICE
    │   └── licenses
    │       ├── license-aopalliance-aopalliance.txt
    │       ├── license-asm-asm.txt
    │       ├── license-ch.qos.logback-logback-classic.txt
    │       ├── license-ch.qos.logback-logback-core.txt
    │       ├── license-com.auth0-java-jwt.txt
    │       ├── license-com.beachape-enumeratum-2.12.txt
    │       ├── license-com.beachape-enumeratum-macros-2.12.txt
    │       ├── license-com.esotericsoftware.kryo-kryo.txt
    │       ├── license-com.esotericsoftware.minlog-minlog.txt
    │       ├── license-com.github.luben-zstd-jni.txt
    │       ├── license-com.google.protobuf-protobuf-java.txt
    │       ├── license-com.h2database-h2.txt
    │       ├── license-com.jcraft-jsch.txt
    │       ├── license-com.jcraft-jzlib.txt
    │       ├── license-com.microsoft.sqlserver-mssql-jdbc.txt
    │       ├── license-com.sun.activation-jakarta.activation.txt
    │       ├── license-com.sun.jersey-jersey-client.txt
    │       ├── license-com.sun.jersey-jersey-core.txt
    │       ├── license-com.sun.jersey-jersey-json.txt
    │       ├── license-com.sun.jersey-jersey-server.txt
    │       ├── license-com.sun.mail-javax.mail.txt
    │       ├── license-com.sun.xml.bind-jaxb-impl.txt
    │       ├── license-io.github.classgraph-classgraph.txt
    │       ├── license-io.opentracing-opentracing-api.txt
    │       ├── license-io.opentracing-opentracing-noop.txt
    │       ├── license-io.opentracing-opentracing-util.txt
    │       ├── license-jakarta.annotation-jakarta.annotation-api.txt
    │       ├── license-jakarta.servlet-jakarta.servlet-api.txt
    │       ├── license-jakarta.websocket-jakarta.websocket-api.txt
    │       ├── license-javax.activation-activation.txt
    │       ├── license-javax.activation-javax.activation-api.txt
    │       ├── license-javax.mail-mail.txt
    │       ├── license-javax.xml.bind-jaxb-api.txt
    │       ├── license-javax.xml.stream-stax-api.txt
    │       ├── license-junit-junit.txt
    │       ├── license-net.sf.jopt-simple-jopt-simple.txt
    │       ├── license-org.aspectj-aspectjweaver.txt
    │       ├── license-org.bouncycastle-bcpkix-jdk15on.txt
    │       ├── license-org.bouncycastle-bcprov-jdk15on.txt
    │       ├── license-org.checkerframework-checker-qual.txt
    │       ├── license-org.eclipse.aether-aether-api.txt
    │       ├── license-org.eclipse.aether-aether-connector-basic.txt
    │       ├── license-org.eclipse.aether-aether-impl.txt
    │       ├── license-org.eclipse.aether-aether-spi.txt
    │       ├── license-org.eclipse.aether-aether-transport-file.txt
    │       ├── license-org.eclipse.aether-aether-transport-http.txt
    │       ├── license-org.eclipse.aether-aether-util.txt
    │       ├── license-org.fusesource.leveldbjni-leveldbjni-all.txt
    │       ├── license-org.hamcrest-hamcrest-core.txt
    │       ├── license-org.hdrhistogram-HdrHistogram.txt
    │       ├── license-org.influxdb-influxdb-java.txt
    │       ├── license-org.jruby.jcodings-jcodings.txt
    │       ├── license-org.jruby.joni-joni.txt
    │       ├── license-org.latencyutils-LatencyUtils.txt
    │       ├── license-org.ow2.asm-asm-analysis.txt
    │       ├── license-org.ow2.asm-asm-commons.txt
    │       ├── license-org.ow2.asm-asm-tree.txt
    │       ├── license-org.ow2.asm-asm-util.txt
    │       ├── license-org.ow2.asm-asm.txt
    │       ├── license-org.owasp.encoder-encoder.txt
    │       ├── license-org.postgresql-postgresql.txt
    │       ├── license-org.projectlombok-lombok.txt
    │       ├── license-org.reactivestreams-reactive-streams.txt
    │       ├── license-redis.clients-jedis.txt
    │       ├── license-xmlenc-xmlenc.txt
    │       └── ui-licenses
    │           ├── LICENSE
    │           ├── license--ant-design-colors.txt
    │           ├── license--babel-parser.txt
    │           ├── license--babel-runtime.txt
    │           ├── license--ctrl-tinycolor.txt
    │           ├── license--iconify-iconify.txt
    │           ├── license--iconify-types.txt
    │           ├── license--intlify-core-base.txt
    │           ├── license--intlify-devtools-if.txt
    │           ├── license--intlify-message-compiler.txt
    │           ├── license--intlify-shared.txt
    │           ├── license--intlify-vue-devtools.txt
    │           ├── license--jridgewell-resolve-uri.txt
    │           ├── license--jridgewell-set-array.txt
    │           ├── license--jridgewell-source-map-node-modules--jridgewell-gen-mapping.txt
    │           ├── license--jridgewell-source-map.txt
    │           ├── license--jridgewell-sourcemap-codec.txt
    │           ├── license--jridgewell-trace-mapping.txt
    │           ├── license--simonwep-pickr.txt
    │           ├── license--types-web-bluetooth.txt
    │           ├── license--vue-compiler-core.txt
    │           ├── license--vue-compiler-dom.txt
    │           ├── license--vue-compiler-sfc-node-modules-magic-string.txt
    │           ├── license--vue-compiler-sfc.txt
    │           ├── license--vue-compiler-ssr.txt
    │           ├── license--vue-reactivity-transform-node-modules-magic-string.txt
    │           ├── license--vue-reactivity-transform.txt
    │           ├── license--vue-reactivity.txt
    │           ├── license--vue-runtime-core.txt
    │           ├── license--vue-runtime-dom.txt
    │           ├── license--vue-server-renderer.txt
    │           ├── license--vue-shared.txt
    │           ├── license--vueuse-core-node-modules-vue-demi.txt
    │           ├── license--vueuse-core.txt
    │           ├── license--vueuse-metadata.txt
    │           ├── license--vueuse-shared-node-modules-vue-demi.txt
    │           ├── license--vueuse-shared.txt
    │           ├── license--zxcvbn-ts-core.txt
    │           ├── license-acorn.txt
    │           ├── license-ant-design-vue-node-modules-is-plain-object.txt
    │           ├── license-ant-design-vue-node-modules-vue-types.txt
    │           ├── license-ant-design-vue.txt
    │           ├── license-argparse.txt
    │           ├── license-async-validator.txt
    │           ├── license-asynckit.txt
    │           ├── license-axios.txt
    │           ├── license-buffer-from.txt
    │           ├── license-call-bind.txt
    │           ├── license-combined-stream.txt
    │           ├── license-commander.txt
    │           ├── license-compute-scroll-into-view.txt
    │           ├── license-core-js.txt
    │           ├── license-crypto-js.txt
    │           ├── license-csstype.txt
    │           ├── license-dayjs.txt
    │           ├── license-delayed-stream.txt
    │           ├── license-dom-align.txt
    │           ├── license-estree-walker.txt
    │           ├── license-fastest-levenshtein.txt
    │           ├── license-follow-redirects.txt
    │           ├── license-form-data.txt
    │           ├── license-function-bind.txt
    │           ├── license-get-intrinsic.txt
    │           ├── license-has-symbols.txt
    │           ├── license-has.txt
    │           ├── license-is-plain-object.txt
    │           ├── license-js-tokens.txt
    │           ├── license-lodash-es.txt
    │           ├── license-lodash.txt
    │           ├── license-loose-envify.txt
    │           ├── license-mime-db.txt
    │           ├── license-mime-types.txt
    │           ├── license-monaco-editor.txt
    │           ├── license-nanoid.txt
    │           ├── license-nanopop.txt
    │           ├── license-nprogress.txt
    │           ├── license-object-inspect.txt
    │           ├── license-path-to-regexp.txt
    │           ├── license-penpal.txt
    │           ├── license-picocolors.txt
    │           ├── license-pinia-node-modules-vue-demi.txt
    │           ├── license-pinia.txt
    │           ├── license-postcss.txt
    │           ├── license-proxy-from-env.txt
    │           ├── license-qs.txt
    │           ├── license-regenerator-runtime.txt
    │           ├── license-resize-observer-polyfill.txt
    │           ├── license-scroll-into-view-if-needed.txt
    │           ├── license-shallow-equal.txt
    │           ├── license-side-channel.txt
    │           ├── license-sortablejs.txt
    │           ├── license-source-map-js.txt
    │           ├── license-source-map-support.txt
    │           ├── license-source-map.txt
    │           ├── license-sourcemap-codec.txt
    │           ├── license-sql-formatter.txt
    │           ├── license-sweetalert2.txt
    │           ├── license-terser.txt
    │           ├── license-vue-i18n.txt
    │           ├── license-vue-router.txt
    │           ├── license-vue-types.txt
    │           ├── license-vue-vben-admin.txt
    │           ├── license-vue.txt
    │           └── license-warning.txt
├── docker
    ├── Dockerfile
    └── docker-compose.yaml
├── mvnw
├── mvnw.cmd
├── pom.xml
├── qodana.yaml
├── streampark-common
    ├── pom.xml
    └── src
    │   ├── main
    │       ├── java
    │       │   └── org
    │       │   │   └── apache
    │       │   │       └── streampark
    │       │   │           └── common
    │       │   │               ├── constants
    │       │   │                   ├── Constants.java
    │       │   │                   └── DateConstants.java
    │       │   │               └── enums
    │       │   │                   ├── ApplicationType.java
    │       │   │                   ├── CatalogType.java
    │       │   │                   ├── ClusterState.java
    │       │   │                   ├── FlinkDeployMode.java
    │       │   │                   ├── FlinkJobType.java
    │       │   │                   ├── FlinkK8sRestExposedType.java
    │       │   │                   ├── FlinkRestoreMode.java
    │       │   │                   ├── FlinkSqlValidationFailedType.java
    │       │   │                   ├── ResolveOrder.java
    │       │   │                   ├── Semantic.java
    │       │   │                   ├── SparkDeployMode.java
    │       │   │                   ├── SparkJobType.java
    │       │   │                   ├── SparkSqlValidationFailedType.java
    │       │   │                   └── StorageType.java
    │       └── scala
    │       │   └── org
    │       │       └── apache
    │       │           └── streampark
    │       │               └── common
    │       │                   ├── conf
    │       │                       ├── CommonConfig.scala
    │       │                       ├── ConfigKeys.scala
    │       │                       ├── ConfigOption.scala
    │       │                       ├── FlinkVersion.scala
    │       │                       ├── InternalConfigHolder.scala
    │       │                       ├── InternalOption.scala
    │       │                       ├── K8sFlinkConfig.scala
    │       │                       ├── SparkVersion.scala
    │       │                       └── Workspace.scala
    │       │                   ├── enums
    │       │                       ├── ApiType.scala
    │       │                       ├── PlannerType.scala
    │       │                       └── TableMode.scala
    │       │                   ├── fs
    │       │                       ├── FsOperator.scala
    │       │                       ├── HdfsOperator.scala
    │       │                       └── LfsOperator.scala
    │       │                   └── util
    │       │                       ├── AssertUtils.scala
    │       │                       ├── CURLBuilder.scala
    │       │                       ├── ChildFirstClassLoader.scala
    │       │                       ├── ClassLoaderObjectInputStream.scala
    │       │                       ├── ClassLoaderUtils.scala
    │       │                       ├── CommandUtils.scala
    │       │                       ├── CompletableFutureUtils.scala
    │       │                       ├── ConfigUtils.scala
    │       │                       ├── DateUtils.scala
    │       │                       ├── DeflaterUtils.scala
    │       │                       ├── ExceptionUtils.scala
    │       │                       ├── FileUtils.scala
    │       │                       ├── FlinkConfigurationUtils.scala
    │       │                       ├── HBaseClient.scala
    │       │                       ├── HadoopConfigUtils.scala
    │       │                       ├── HadoopUtils.scala
    │       │                       ├── HdfsUtils.scala
    │       │                       ├── HostsUtils.scala
    │       │                       ├── HttpClientUtils.scala
    │       │                       ├── Implicits.scala
    │       │                       ├── JdbcUtils.scala
    │       │                       ├── JsonUtils.scala
    │       │                       ├── Logger.scala
    │       │                       ├── MongoConfig.scala
    │       │                       ├── PropertiesUtils.scala
    │       │                       ├── RedisClient.scala
    │       │                       ├── RedisEndpoint.scala
    │       │                       ├── RedisUtils.scala
    │       │                       ├── ReflectUtils.scala
    │       │                       ├── SparkConfigurationUtils.scala
    │       │                       ├── SqlConvertUtils.scala
    │       │                       ├── SystemPropertyUtils.scala
    │       │                       ├── ThreadUtils.scala
    │       │                       ├── Utils.scala
    │       │                       ├── YarnUtils.scala
    │       │                       └── ZooKeeperUtils.scala
    │   └── test
    │       ├── resources
    │           ├── .gitkeep
    │           └── application.yaml
    │       └── scala
    │           └── org
    │               └── apache
    │                   └── streampark
    │                       └── common
    │                           ├── fs
    │                               ├── LfsOperatorTest.scala
    │                               └── package.scala
    │                           └── util
    │                               ├── CommandUtilsTest.scala
    │                               ├── DateUtilsTest.scala
    │                               ├── FileUtilsTest.scala
    │                               ├── ImplicitsTest.scala
    │                               ├── PropertiesUtilsTestCase.scala
    │                               ├── ReflectUtilsTest.scala
    │                               ├── ThreadUtilsTest.scala
    │                               └── UtilsTest.scala
├── streampark-console
    ├── pom.xml
    ├── streampark-console-service
    │   ├── .gitignore
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── assembly
    │   │       │   ├── assembly.xml
    │   │       │   ├── bin
    │   │       │   │   ├── jvm_opts.sh
    │   │       │   │   ├── mvnw
    │   │       │   │   ├── mvnw.cmd
    │   │       │   │   ├── setclasspath.sh
    │   │       │   │   ├── startup.sh
    │   │       │   │   ├── stop.sh
    │   │       │   │   └── streampark.sh
    │   │       │   ├── client
    │   │       │   │   └── .gitkeep
    │   │       │   ├── conf
    │   │       │   │   ├── .gitkeep
    │   │       │   │   └── config.yaml
    │   │       │   ├── logs
    │   │       │   │   └── .gitkeep
    │   │       │   ├── plugins
    │   │       │   │   └── .gitkeep
    │   │       │   ├── python
    │   │       │   │   └── .gitkeep
    │   │       │   ├── script
    │   │       │   │   ├── README.md
    │   │       │   │   ├── data
    │   │       │   │   │   ├── mysql-data.sql
    │   │       │   │   │   └── pgsql-data.sql
    │   │       │   │   ├── schema
    │   │       │   │   │   ├── mysql-schema.sql
    │   │       │   │   │   └── pgsql-schema.sql
    │   │       │   │   └── upgrade
    │   │       │   │   │   ├── mysql
    │   │       │   │   │       ├── 1.2.3.sql
    │   │       │   │   │       ├── 2.0.0.sql
    │   │       │   │   │       ├── 2.1.0.sql
    │   │       │   │   │       ├── 2.1.2.sql
    │   │       │   │   │       ├── 2.1.3.sql
    │   │       │   │   │       └── 2.2.0.sql
    │   │       │   │   │   └── pgsql
    │   │       │   │   │       ├── 2.1.0.sql
    │   │       │   │   │       ├── 2.1.2.sql
    │   │       │   │   │       ├── 2.1.3.sql
    │   │       │   │   │       ├── 2.2.0.sql
    │   │       │   │   │       └── 2.2.2.sql
    │   │       │   └── temp
    │   │       │   │   └── .gitkeep
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── apache
    │   │       │   │       └── streampark
    │   │       │   │           └── console
    │   │       │   │               ├── StreamParkConsoleBootstrap.java
    │   │       │   │               ├── base
    │   │       │   │                   ├── config
    │   │       │   │                   │   ├── AlertRestTemplateConfig.java
    │   │       │   │                   │   ├── AsyncExecutorPoolConfig.java
    │   │       │   │                   │   ├── MybatisConfig.java
    │   │       │   │                   │   ├── P6spySqlFormatConfig.java
    │   │       │   │                   │   ├── SpringProperties.java
    │   │       │   │                   │   ├── WebMvcConfig.java
    │   │       │   │                   │   └── WebSocketConfig.java
    │   │       │   │                   ├── domain
    │   │       │   │                   │   ├── Constant.java
    │   │       │   │                   │   ├── ResponseCode.java
    │   │       │   │                   │   ├── RestRequest.java
    │   │       │   │                   │   ├── RestResponse.java
    │   │       │   │                   │   └── router
    │   │       │   │                   │   │   ├── RouterMeta.java
    │   │       │   │                   │   │   ├── RouterTree.java
    │   │       │   │                   │   │   └── VueRouter.java
    │   │       │   │                   ├── exception
    │   │       │   │                   │   ├── AbstractApiException.java
    │   │       │   │                   │   ├── AlertException.java
    │   │       │   │                   │   ├── ApiAlertException.java
    │   │       │   │                   │   ├── ApiDetailException.java
    │   │       │   │                   │   ├── ApplicationException.java
    │   │       │   │                   │   ├── IllegalFileTypeException.java
    │   │       │   │                   │   └── InternalException.java
    │   │       │   │                   ├── handler
    │   │       │   │                   │   └── GlobalExceptionHandler.java
    │   │       │   │                   ├── interceptor
    │   │       │   │                   │   └── UploadFileTypeInterceptor.java
    │   │       │   │                   ├── mybatis
    │   │       │   │                   │   ├── entity
    │   │       │   │                   │   │   └── BaseEntity.java
    │   │       │   │                   │   ├── handler
    │   │       │   │                   │   │   └── DefaultBaseFieldHandler.java
    │   │       │   │                   │   ├── interceptor
    │   │       │   │                   │   │   ├── PaginationInterceptor.java
    │   │       │   │                   │   │   ├── PostgreSQLPrepareInterceptor.java
    │   │       │   │                   │   │   └── PostgreSQLQueryInterceptor.java
    │   │       │   │                   │   └── pager
    │   │       │   │                   │   │   └── MybatisPager.java
    │   │       │   │                   └── util
    │   │       │   │                   │   ├── BashJavaUtils.java
    │   │       │   │                   │   ├── ConsistentHash.java
    │   │       │   │                   │   ├── EncryptUtils.java
    │   │       │   │                   │   ├── FreemarkerUtils.java
    │   │       │   │                   │   ├── GZipUtils.java
    │   │       │   │                   │   ├── GitUtils.java
    │   │       │   │                   │   ├── JacksonUtils.java
    │   │       │   │                   │   ├── Murmur3Hash.java
    │   │       │   │                   │   ├── ObjectUtils.java
    │   │       │   │                   │   ├── ShaHashUtils.java
    │   │       │   │                   │   ├── SpringContextUtils.java
    │   │       │   │                   │   ├── Throws.java
    │   │       │   │                   │   ├── Tuple.java
    │   │       │   │                   │   ├── Tuple1.java
    │   │       │   │                   │   ├── Tuple2.java
    │   │       │   │                   │   ├── Tuple3.java
    │   │       │   │                   │   ├── Tuple4.java
    │   │       │   │                   │   ├── VueRouterUtils.java
    │   │       │   │                   │   └── WebUtils.java
    │   │       │   │               ├── core
    │   │       │   │                   ├── annotation
    │   │       │   │                   │   ├── AppChangeEvent.java
    │   │       │   │                   │   ├── OpenAPI.java
    │   │       │   │                   │   └── Permission.java
    │   │       │   │                   ├── aspect
    │   │       │   │                   │   ├── AppChangeEventAspect.java
    │   │       │   │                   │   ├── OpenAPIAspect.java
    │   │       │   │                   │   └── PermissionAspect.java
    │   │       │   │                   ├── bean
    │   │       │   │                   │   ├── AlertConfigParams.java
    │   │       │   │                   │   ├── AlertDingTalkParams.java
    │   │       │   │                   │   ├── AlertEmailParams.java
    │   │       │   │                   │   ├── AlertHttpCallbackParams.java
    │   │       │   │                   │   ├── AlertLarkParams.java
    │   │       │   │                   │   ├── AlertLarkRobotResponse.java
    │   │       │   │                   │   ├── AlertProbeMsg.java
    │   │       │   │                   │   ├── AlertTemplate.java
    │   │       │   │                   │   ├── AlertWeComParams.java
    │   │       │   │                   │   ├── AppBuildDockerResolvedDetail.java
    │   │       │   │                   │   ├── AppControl.java
    │   │       │   │                   │   ├── DatabaseParam.java
    │   │       │   │                   │   ├── Dependency.java
    │   │       │   │                   │   ├── DockerConfig.java
    │   │       │   │                   │   ├── EmailConfig.java
    │   │       │   │                   │   ├── FlinkConnector.java
    │   │       │   │                   │   ├── FlinkDataType.java
    │   │       │   │                   │   ├── FlinkTaskItem.java
    │   │       │   │                   │   ├── MavenConfig.java
    │   │       │   │                   │   ├── MavenPom.java
    │   │       │   │                   │   ├── OpenAPISchema.java
    │   │       │   │                   │   ├── ResponseResult.java
    │   │       │   │                   │   ├── RobotResponse.java
    │   │       │   │                   │   ├── SenderEmail.java
    │   │       │   │                   │   ├── SparkTaskItem.java
    │   │       │   │                   │   ├── TableColumn.java
    │   │       │   │                   │   ├── TableParams.java
    │   │       │   │                   │   └── UploadResponse.java
    │   │       │   │                   ├── component
    │   │       │   │                   │   ├── FlinkCheckpointProcessor.java
    │   │       │   │                   │   └── OpenAPIComponent.java
    │   │       │   │                   ├── controller
    │   │       │   │                   │   ├── AlertController.java
    │   │       │   │                   │   ├── ExternalLinkController.java
    │   │       │   │                   │   ├── FlinkApplicationController.java
    │   │       │   │                   │   ├── FlinkApplicationHistoryController.java
    │   │       │   │                   │   ├── FlinkClusterController.java
    │   │       │   │                   │   ├── FlinkConfigController.java
    │   │       │   │                   │   ├── FlinkEnvController.java
    │   │       │   │                   │   ├── FlinkPipelineController.java
    │   │       │   │                   │   ├── FlinkPodTemplateController.java
    │   │       │   │                   │   ├── FlinkSqlController.java
    │   │       │   │                   │   ├── IndexController.java
    │   │       │   │                   │   ├── MessageController.java
    │   │       │   │                   │   ├── OpenAPIController.java
    │   │       │   │                   │   ├── ProjectController.java
    │   │       │   │                   │   ├── ProxyController.java
    │   │       │   │                   │   ├── ResourceController.java
    │   │       │   │                   │   ├── SavepointController.java
    │   │       │   │                   │   ├── SettingController.java
    │   │       │   │                   │   ├── SparkApplicationController.java
    │   │       │   │                   │   ├── SparkConfigController.java
    │   │       │   │                   │   ├── SparkEnvController.java
    │   │       │   │                   │   ├── SparkPipelineController.java
    │   │       │   │                   │   ├── SparkSqlController.java
    │   │       │   │                   │   ├── VariableController.java
    │   │       │   │                   │   └── YarnQueueController.java
    │   │       │   │                   ├── entity
    │   │       │   │                   │   ├── AlertConfig.java
    │   │       │   │                   │   ├── ApplicationBuildPipeline.java
    │   │       │   │                   │   ├── ApplicationLog.java
    │   │       │   │                   │   ├── ExternalLink.java
    │   │       │   │                   │   ├── FlinkApplication.java
    │   │       │   │                   │   ├── FlinkApplicationBackup.java
    │   │       │   │                   │   ├── FlinkApplicationConfig.java
    │   │       │   │                   │   ├── FlinkCluster.java
    │   │       │   │                   │   ├── FlinkEffective.java
    │   │       │   │                   │   ├── FlinkEnv.java
    │   │       │   │                   │   ├── FlinkSavepoint.java
    │   │       │   │                   │   ├── FlinkSql.java
    │   │       │   │                   │   ├── FlinkStateChangeEvent.java
    │   │       │   │                   │   ├── Message.java
    │   │       │   │                   │   ├── Project.java
    │   │       │   │                   │   ├── Resource.java
    │   │       │   │                   │   ├── Setting.java
    │   │       │   │                   │   ├── SparkApplication.java
    │   │       │   │                   │   ├── SparkApplicationBackup.java
    │   │       │   │                   │   ├── SparkApplicationConfig.java
    │   │       │   │                   │   ├── SparkEffective.java
    │   │       │   │                   │   ├── SparkEnv.java
    │   │       │   │                   │   ├── SparkSql.java
    │   │       │   │                   │   ├── Variable.java
    │   │       │   │                   │   └── YarnQueue.java
    │   │       │   │                   ├── enums
    │   │       │   │                   │   ├── AccessTokenStateEnum.java
    │   │       │   │                   │   ├── AlertTypeEnum.java
    │   │       │   │                   │   ├── AppExistsStateEnum.java
    │   │       │   │                   │   ├── AuthenticationType.java
    │   │       │   │                   │   ├── BuildStateEnum.java
    │   │       │   │                   │   ├── CandidateTypeEnum.java
    │   │       │   │                   │   ├── ChangeTypeEnum.java
    │   │       │   │                   │   ├── CheckPointStatusEnum.java
    │   │       │   │                   │   ├── CheckPointTypeEnum.java
    │   │       │   │                   │   ├── ConfigFileTypeEnum.java
    │   │       │   │                   │   ├── DistributedTaskEnum.java
    │   │       │   │                   │   ├── EffectiveTypeEnum.java
    │   │       │   │                   │   ├── EngineTypeEnum.java
    │   │       │   │                   │   ├── FailoverStrategyEnum.java
    │   │       │   │                   │   ├── FlinkAppStateEnum.java
    │   │       │   │                   │   ├── FlinkEnvCheckEnum.java
    │   │       │   │                   │   ├── GatewayTypeEnum.java
    │   │       │   │                   │   ├── GitAuthorizedErrorEnum.java
    │   │       │   │                   │   ├── GitCredentialEnum.java
    │   │       │   │                   │   ├── LoginTypeEnum.java
    │   │       │   │                   │   ├── NoticeTypeEnum.java
    │   │       │   │                   │   ├── OperationEnum.java
    │   │       │   │                   │   ├── OptionStateEnum.java
    │   │       │   │                   │   ├── PlaceholderTypeEnum.java
    │   │       │   │                   │   ├── ReleaseStateEnum.java
    │   │       │   │                   │   ├── ResourceFromEnum.java
    │   │       │   │                   │   ├── ResourceTypeEnum.java
    │   │       │   │                   │   ├── SparkAppStateEnum.java
    │   │       │   │                   │   ├── SparkOperationEnum.java
    │   │       │   │                   │   ├── SparkOptionStateEnum.java
    │   │       │   │                   │   ├── StopFromEnum.java
    │   │       │   │                   │   └── UserTypeEnum.java
    │   │       │   │                   ├── mapper
    │   │       │   │                   │   ├── AlertConfigMapper.java
    │   │       │   │                   │   ├── ApplicationBuildPipelineMapper.java
    │   │       │   │                   │   ├── ApplicationLogMapper.java
    │   │       │   │                   │   ├── ExternalLinkMapper.java
    │   │       │   │                   │   ├── FlinkApplicationBackupMapper.java
    │   │       │   │                   │   ├── FlinkApplicationConfigMapper.java
    │   │       │   │                   │   ├── FlinkApplicationMapper.java
    │   │       │   │                   │   ├── FlinkClusterMapper.java
    │   │       │   │                   │   ├── FlinkEffectiveMapper.java
    │   │       │   │                   │   ├── FlinkEnvMapper.java
    │   │       │   │                   │   ├── FlinkSavepointMapper.java
    │   │       │   │                   │   ├── FlinkSqlMapper.java
    │   │       │   │                   │   ├── MessageMapper.java
    │   │       │   │                   │   ├── ProjectMapper.java
    │   │       │   │                   │   ├── ResourceMapper.java
    │   │       │   │                   │   ├── SettingMapper.java
    │   │       │   │                   │   ├── SparkApplicationBackUpMapper.java
    │   │       │   │                   │   ├── SparkApplicationConfigMapper.java
    │   │       │   │                   │   ├── SparkApplicationMapper.java
    │   │       │   │                   │   ├── SparkEffectiveMapper.java
    │   │       │   │                   │   ├── SparkEnvMapper.java
    │   │       │   │                   │   ├── SparkSqlMapper.java
    │   │       │   │                   │   ├── VariableMapper.java
    │   │       │   │                   │   └── YarnQueueMapper.java
    │   │       │   │                   ├── metrics
    │   │       │   │                   │   ├── flink
    │   │       │   │                   │   │   ├── CheckPoints.java
    │   │       │   │                   │   │   ├── JobsOverview.java
    │   │       │   │                   │   │   └── Overview.java
    │   │       │   │                   │   ├── spark
    │   │       │   │                   │   │   ├── Job.java
    │   │       │   │                   │   │   ├── SparkApplicationSummary.java
    │   │       │   │                   │   │   └── SparkExecutor.java
    │   │       │   │                   │   └── yarn
    │   │       │   │                   │   │   └── YarnAppInfo.java
    │   │       │   │                   ├── runner
    │   │       │   │                   │   ├── EnvInitializer.java
    │   │       │   │                   │   └── QuickStartRunner.java
    │   │       │   │                   ├── service
    │   │       │   │                   │   ├── CommonService.java
    │   │       │   │                   │   ├── DockerImageService.java
    │   │       │   │                   │   ├── ExternalLinkService.java
    │   │       │   │                   │   ├── FlinkClusterService.java
    │   │       │   │                   │   ├── FlinkEffectiveService.java
    │   │       │   │                   │   ├── FlinkEnvService.java
    │   │       │   │                   │   ├── FlinkSqlService.java
    │   │       │   │                   │   ├── MessageService.java
    │   │       │   │                   │   ├── ProjectService.java
    │   │       │   │                   │   ├── ProxyService.java
    │   │       │   │                   │   ├── ResourceService.java
    │   │       │   │                   │   ├── SavepointService.java
    │   │       │   │                   │   ├── SettingService.java
    │   │       │   │                   │   ├── SparkEffectiveService.java
    │   │       │   │                   │   ├── SparkEnvService.java
    │   │       │   │                   │   ├── SparkSqlService.java
    │   │       │   │                   │   ├── SqlCompleteService.java
    │   │       │   │                   │   ├── VariableService.java
    │   │       │   │                   │   ├── YarnQueueService.java
    │   │       │   │                   │   ├── alert
    │   │       │   │                   │   │   ├── AlertConfigService.java
    │   │       │   │                   │   │   ├── AlertNotifyService.java
    │   │       │   │                   │   │   ├── AlertService.java
    │   │       │   │                   │   │   └── impl
    │   │       │   │                   │   │   │   ├── AlertConfigServiceImpl.java
    │   │       │   │                   │   │   │   ├── AlertServiceImpl.java
    │   │       │   │                   │   │   │   ├── DingTalkAlertNotifyServiceImpl.java
    │   │       │   │                   │   │   │   ├── EmailAlertNotifyServiceImpl.java
    │   │       │   │                   │   │   │   ├── HttpCallbackAlertNotifyServiceImpl.java
    │   │       │   │                   │   │   │   ├── LarkAlertNotifyServiceImpl.java
    │   │       │   │                   │   │   │   └── WeComAlertNotifyServiceImpl.java
    │   │       │   │                   │   ├── application
    │   │       │   │                   │   │   ├── ApplicationLogService.java
    │   │       │   │                   │   │   ├── FlinkApplicationActionService.java
    │   │       │   │                   │   │   ├── FlinkApplicationBackupService.java
    │   │       │   │                   │   │   ├── FlinkApplicationBuildPipelineService.java
    │   │       │   │                   │   │   ├── FlinkApplicationConfigService.java
    │   │       │   │                   │   │   ├── FlinkApplicationInfoService.java
    │   │       │   │                   │   │   ├── FlinkApplicationManageService.java
    │   │       │   │                   │   │   ├── SparkAplicationBuildPipelineService.java
    │   │       │   │                   │   │   ├── SparkApplicationActionService.java
    │   │       │   │                   │   │   ├── SparkApplicationBackupService.java
    │   │       │   │                   │   │   ├── SparkApplicationConfigService.java
    │   │       │   │                   │   │   ├── SparkApplicationInfoService.java
    │   │       │   │                   │   │   ├── SparkApplicationManageService.java
    │   │       │   │                   │   │   └── impl
    │   │       │   │                   │   │   │   ├── ApplicationLogServiceImpl.java
    │   │       │   │                   │   │   │   ├── FlinkApplicationActionServiceImpl.java
    │   │       │   │                   │   │   │   ├── FlinkApplicationBackupServiceImpl.java
    │   │       │   │                   │   │   │   ├── FlinkApplicationBuildPipelineServiceImpl.java
    │   │       │   │                   │   │   │   ├── FlinkApplicationConfigServiceImpl.java
    │   │       │   │                   │   │   │   ├── FlinkApplicationInfoServiceImpl.java
    │   │       │   │                   │   │   │   ├── FlinkApplicationManageServiceImpl.java
    │   │       │   │                   │   │   │   ├── SparkApplicationActionServiceImpl.java
    │   │       │   │                   │   │   │   ├── SparkApplicationBackupServiceImpl.java
    │   │       │   │                   │   │   │   ├── SparkApplicationBuildPipelineServiceImpl.java
    │   │       │   │                   │   │   │   ├── SparkApplicationConfigServiceImpl.java
    │   │       │   │                   │   │   │   ├── SparkApplicationInfoServiceImpl.java
    │   │       │   │                   │   │   │   └── SparkApplicationManageServiceImpl.java
    │   │       │   │                   │   └── impl
    │   │       │   │                   │   │   ├── DockerImageServiceImpl.java
    │   │       │   │                   │   │   ├── ExternalLinkServiceImpl.java
    │   │       │   │                   │   │   ├── FlinkClusterServiceImpl.java
    │   │       │   │                   │   │   ├── FlinkEffectiveServiceImpl.java
    │   │       │   │                   │   │   ├── FlinkEnvServiceImpl.java
    │   │       │   │                   │   │   ├── FlinkSavepointServiceImpl.java
    │   │       │   │                   │   │   ├── FlinkSqlServiceImpl.java
    │   │       │   │                   │   │   ├── MessageServiceImpl.java
    │   │       │   │                   │   │   ├── ProjectServiceImpl.java
    │   │       │   │                   │   │   ├── ProxyServiceImpl.java
    │   │       │   │                   │   │   ├── ResourceServiceImpl.java
    │   │       │   │                   │   │   ├── SettingServiceImpl.java
    │   │       │   │                   │   │   ├── SparkEffectiveServiceImpl.java
    │   │       │   │                   │   │   ├── SparkEnvServiceImpl.java
    │   │       │   │                   │   │   ├── SparkSqlServiceImpl.java
    │   │       │   │                   │   │   ├── SqlCompleteServiceImpl.java
    │   │       │   │                   │   │   ├── VariableServiceImpl.java
    │   │       │   │                   │   │   └── YarnQueueServiceImpl.java
    │   │       │   │                   ├── task
    │   │       │   │                   │   ├── AbstractLogFileTask.java
    │   │       │   │                   │   ├── ApplicationBackUpCleanTask.java
    │   │       │   │                   │   ├── PackerResourceGCTask.java
    │   │       │   │                   │   └── ProjectBuildTask.java
    │   │       │   │                   ├── util
    │   │       │   │                   │   ├── AlertTemplateUtils.java
    │   │       │   │                   │   ├── DataTypeConverterUtils.java
    │   │       │   │                   │   ├── ServiceHelper.java
    │   │       │   │                   │   └── YarnQueueLabelExpression.java
    │   │       │   │                   ├── watcher
    │   │       │   │                   │   ├── FlinkAppHttpWatcher.java
    │   │       │   │                   │   ├── FlinkClusterWatcher.java
    │   │       │   │                   │   ├── FlinkK8sChangeEventListener.java
    │   │       │   │                   │   ├── FlinkK8sWatcherWrapper.java
    │   │       │   │                   │   └── SparkAppHttpWatcher.java
    │   │       │   │                   └── websocket
    │   │       │   │                   │   └── WebSocketEndpoint.java
    │   │       │   │               └── system
    │   │       │   │                   ├── authentication
    │   │       │   │                       ├── JWTFilter.java
    │   │       │   │                       ├── JWTToken.java
    │   │       │   │                       ├── JWTUtil.java
    │   │       │   │                       ├── ShiroConfig.java
    │   │       │   │                       ├── ShiroRealm.java
    │   │       │   │                       ├── ShiroService.java
    │   │       │   │                       └── SsoShiroPlugin.java
    │   │       │   │                   ├── controller
    │   │       │   │                       ├── AccessTokenController.java
    │   │       │   │                       ├── MemberController.java
    │   │       │   │                       ├── MenuController.java
    │   │       │   │                       ├── PassportController.java
    │   │       │   │                       ├── RoleController.java
    │   │       │   │                       ├── SsoController.java
    │   │       │   │                       ├── TeamController.java
    │   │       │   │                       └── UserController.java
    │   │       │   │                   ├── entity
    │   │       │   │                       ├── AccessToken.java
    │   │       │   │                       ├── Member.java
    │   │       │   │                       ├── Menu.java
    │   │       │   │                       ├── Role.java
    │   │       │   │                       ├── RoleMenu.java
    │   │       │   │                       ├── Team.java
    │   │       │   │                       └── User.java
    │   │       │   │                   ├── mapper
    │   │       │   │                       ├── AccessTokenMapper.java
    │   │       │   │                       ├── MemberMapper.java
    │   │       │   │                       ├── MenuMapper.java
    │   │       │   │                       ├── RoleMapper.java
    │   │       │   │                       ├── RoleMenuMapper.java
    │   │       │   │                       ├── TeamMapper.java
    │   │       │   │                       └── UserMapper.java
    │   │       │   │                   ├── runner
    │   │       │   │                       └── StartedUpRunner.java
    │   │       │   │                   ├── security
    │   │       │   │                       ├── Authenticator.java
    │   │       │   │                       └── impl
    │   │       │   │                       │   ├── AuthenticatorImpl.java
    │   │       │   │                       │   └── LdapService.java
    │   │       │   │                   └── service
    │   │       │   │                       ├── AccessTokenService.java
    │   │       │   │                       ├── MemberService.java
    │   │       │   │                       ├── MenuService.java
    │   │       │   │                       ├── RoleMenuService.java
    │   │       │   │                       ├── RoleService.java
    │   │       │   │                       ├── TeamService.java
    │   │       │   │                       ├── UserService.java
    │   │       │   │                       └── impl
    │   │       │   │                           ├── AccessTokenServiceImpl.java
    │   │       │   │                           ├── MemberServiceImpl.java
    │   │       │   │                           ├── MenuServiceImpl.java
    │   │       │   │                           ├── RoleMenuServiceImpl.java
    │   │       │   │                           ├── RoleServiceImpl.java
    │   │       │   │                           ├── TeamServiceImpl.java
    │   │       │   │                           └── UserServiceImpl.java
    │   │       └── resources
    │   │       │   ├── META-INF
    │   │       │       └── additional-spring-configuration-metadata.json
    │   │       │   ├── ValidationMessages.properties
    │   │       │   ├── alert-template
    │   │       │       ├── alert-dingTalk.ftl
    │   │       │       ├── alert-email.ftl
    │   │       │       ├── alert-lark.ftl
    │   │       │       └── alert-weCom.ftl
    │   │       │   ├── config.yaml
    │   │       │   ├── db
    │   │       │       ├── data-h2.sql
    │   │       │       └── schema-h2.sql
    │   │       │   ├── flink-application.conf
    │   │       │   ├── logback-spring.xml
    │   │       │   ├── mapper
    │   │       │       ├── core
    │   │       │       │   ├── AlertConfigMapper.xml
    │   │       │       │   ├── ApplicationLogMapper.xml
    │   │       │       │   ├── ApplicationMapper.xml
    │   │       │       │   ├── DistributedTaskMapper.xml
    │   │       │       │   ├── EffectiveMapper.xml
    │   │       │       │   ├── ExternalLinkMapper.xml
    │   │       │       │   ├── FlinkApplicationConfigMapper.xml
    │   │       │       │   ├── FlinkApplicationMapper.xml
    │   │       │       │   ├── FlinkCatalogMapper.xml
    │   │       │       │   ├── FlinkClusterMapper.xml
    │   │       │       │   ├── FlinkEnvMapper.xml
    │   │       │       │   ├── FlinkSavepointMapper.xml
    │   │       │       │   ├── FlinkSqlMapper.xml
    │   │       │       │   ├── MessageMapper.xml
    │   │       │       │   ├── ProjectMapper.xml
    │   │       │       │   ├── ResourceMapper.xml
    │   │       │       │   ├── SettingMapper.xml
    │   │       │       │   ├── SparkApplicationConfigMapper.xml
    │   │       │       │   ├── SparkApplicationMapper.xml
    │   │       │       │   ├── SparkEffectiveMapper.xml
    │   │       │       │   ├── SparkEnvMapper.xml
    │   │       │       │   ├── SparkSqlMapper.xml
    │   │       │       │   ├── VariableMapper.xml
    │   │       │       │   └── YarnQueueMapper.xml
    │   │       │       └── system
    │   │       │       │   ├── AccessTokenMapper.xml
    │   │       │       │   ├── MemberMapper.xml
    │   │       │       │   ├── MenuMapper.xml
    │   │       │       │   ├── RoleMapper.xml
    │   │       │       │   ├── TeamMapper.xml
    │   │       │       │   └── UserMapper.xml
    │   │       │   ├── spark-application.conf
    │   │       │   ├── spy.properties
    │   │       │   ├── sql-rev.dict
    │   │       │   └── sql-statistics.dict
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── apache
    │   │           │       └── streampark
    │   │           │           └── console
    │   │           │               ├── SpringIntegrationTestBase.java
    │   │           │               ├── SpringUnitTestBase.java
    │   │           │               ├── base
    │   │           │                   └── util
    │   │           │                   │   ├── ConsistentHashTest.java
    │   │           │                   │   ├── DependencyUtilsTest.java
    │   │           │                   │   ├── EncryptUtilsTest.java
    │   │           │                   │   ├── FileUtilsTest.java
    │   │           │                   │   └── ShaHashUtilsTest.java
    │   │           │               ├── core
    │   │           │                   ├── enums
    │   │           │                   │   └── AlertTypeEnumTest.java
    │   │           │                   ├── service
    │   │           │                   │   ├── AccessTokenServiceTest.java
    │   │           │                   │   ├── FlinkApplicationManageServiceTest.java
    │   │           │                   │   ├── FlinkClusterServiceTest.java
    │   │           │                   │   ├── FlinkSavepointServiceTest.java
    │   │           │                   │   ├── ResourceServiceTest.java
    │   │           │                   │   ├── SettingServiceTest.java
    │   │           │                   │   ├── UserServiceTest.java
    │   │           │                   │   ├── VariableServiceTest.java
    │   │           │                   │   ├── YarnQueueServiceTest.java
    │   │           │                   │   └── alert
    │   │           │                   │   │   └── AlertServiceTest.java
    │   │           │                   └── utils
    │   │           │                   │   ├── ThrowsTest.java
    │   │           │                   │   └── YarnQueueLabelExpressionTest.java
    │   │           │               └── system
    │   │           │                   └── authentication
    │   │           │                       └── JWTTest.java
    │   │       └── resources
    │   │           └── application-test.yml
    └── streampark-console-webapp
    │   ├── .editorconfig
    │   ├── .env
    │   ├── .env.development
    │   ├── .env.production
    │   ├── .eslintignore
    │   ├── .eslintrc.js
    │   ├── .gitignore
    │   ├── .npmrc
    │   ├── .prettierignore
    │   ├── .stylelintignore
    │   ├── README.md
    │   ├── build
    │       ├── config
    │       │   └── themeConfig.ts
    │       ├── constant.ts
    │       ├── generate
    │       │   └── generateModifyVars.ts
    │       ├── getConfigFileName.ts
    │       ├── utils.ts
    │       └── vite
    │       │   ├── plugin
    │       │       ├── appConfig.ts
    │       │       ├── compress.ts
    │       │       ├── html.ts
    │       │       ├── imagemin.ts
    │       │       ├── index.ts
    │       │       ├── styleImport.ts
    │       │       ├── svgSprite.ts
    │       │       ├── theme.ts
    │       │       └── visualizer.ts
    │       │   ├── proxy.ts
    │       │   └── utils
    │       │       ├── env.ts
    │       │       └── hash.ts
    │   ├── index.html
    │   ├── package.json
    │   ├── postcss.config.js
    │   ├── prettier.config.js
    │   ├── public
    │       └── favicon.ico
    │   ├── src
    │       ├── App.vue
    │       ├── api
    │       │   ├── base
    │       │   │   ├── error.ts
    │       │   │   ├── model
    │       │   │   │   └── systemModel.ts
    │       │   │   └── system.ts
    │       │   ├── flink
    │       │   │   ├── app.ts
    │       │   │   ├── app.type.ts
    │       │   │   ├── config.ts
    │       │   │   ├── config.type.ts
    │       │   │   ├── flinkBuild.ts
    │       │   │   ├── flinkCluster.ts
    │       │   │   ├── flinkCluster.type.ts
    │       │   │   ├── flinkEnv.ts
    │       │   │   ├── flinkEnv.type.ts
    │       │   │   ├── flinkGateway.ts
    │       │   │   ├── flinkHistory.ts
    │       │   │   ├── flinkPodtmpl.ts
    │       │   │   ├── flinkSql.ts
    │       │   │   └── savepoint.ts
    │       │   ├── index.ts
    │       │   ├── model
    │       │   │   └── baseModel.ts
    │       │   ├── resource
    │       │   │   ├── project
    │       │   │   │   ├── index.ts
    │       │   │   │   └── model
    │       │   │   │   │   └── projectModel.ts
    │       │   │   ├── upload
    │       │   │   │   ├── index.ts
    │       │   │   │   └── model
    │       │   │   │   │   └── resourceModel.ts
    │       │   │   └── variable
    │       │   │   │   ├── index.ts
    │       │   │   │   └── model
    │       │   │   │       └── variableModel.ts
    │       │   ├── setting
    │       │   │   ├── alert.ts
    │       │   │   ├── externalLink.ts
    │       │   │   ├── index.ts
    │       │   │   ├── types
    │       │   │   │   ├── alert.type.ts
    │       │   │   │   ├── externalLink.type.ts
    │       │   │   │   ├── setting.type.ts
    │       │   │   │   └── yarnQueue.type.ts
    │       │   │   └── yarnQueue.ts
    │       │   ├── spark
    │       │   │   ├── app.ts
    │       │   │   ├── app.type.ts
    │       │   │   ├── build.ts
    │       │   │   ├── conf.ts
    │       │   │   ├── conf.type.ts
    │       │   │   ├── home.ts
    │       │   │   ├── home.type.ts
    │       │   │   ├── sql.ts
    │       │   │   └── sql.type.ts
    │       │   └── system
    │       │   │   ├── member.ts
    │       │   │   ├── menu.ts
    │       │   │   ├── model
    │       │   │       ├── memberModel.ts
    │       │   │       ├── menuModel.ts
    │       │   │       ├── notifyModel.ts
    │       │   │       ├── roleModel.ts
    │       │   │       ├── teamModel.ts
    │       │   │       ├── tokenModel.ts
    │       │   │       ├── uploadModel.ts
    │       │   │       └── userModel.ts
    │       │   │   ├── notify.ts
    │       │   │   ├── openapi.ts
    │       │   │   ├── passport.ts
    │       │   │   ├── role.ts
    │       │   │   ├── team.ts
    │       │   │   ├── token.ts
    │       │   │   ├── upload.ts
    │       │   │   └── user.ts
    │       ├── assets
    │       │   ├── icons
    │       │   │   ├── alarm.svg
    │       │   │   ├── analyse.svg
    │       │   │   ├── api.svg
    │       │   │   ├── app.svg
    │       │   │   ├── auth.svg
    │       │   │   ├── block.svg
    │       │   │   ├── cdc.svg
    │       │   │   ├── code.svg
    │       │   │   ├── connector.svg
    │       │   │   ├── copy.svg
    │       │   │   ├── deploy.svg
    │       │   │   ├── dingtalk.svg
    │       │   │   ├── docker.svg
    │       │   │   ├── download-count.svg
    │       │   │   ├── edit.svg
    │       │   │   ├── fjar.svg
    │       │   │   ├── flame.svg
    │       │   │   ├── flink.svg
    │       │   │   ├── flink2.svg
    │       │   │   ├── flink3.svg
    │       │   │   ├── flinksql.svg
    │       │   │   ├── format.svg
    │       │   │   ├── fql.svg
    │       │   │   ├── fx.svg
    │       │   │   ├── github.svg
    │       │   │   ├── group.svg
    │       │   │   ├── host.svg
    │       │   │   ├── http.svg
    │       │   │   ├── jar.svg
    │       │   │   ├── keys.svg
    │       │   │   ├── lark.svg
    │       │   │   ├── mail.svg
    │       │   │   ├── management.svg
    │       │   │   ├── mapping.svg
    │       │   │   ├── maven.svg
    │       │   │   ├── message.svg
    │       │   │   ├── moon.svg
    │       │   │   ├── mvnpass.svg
    │       │   │   ├── namespace.svg
    │       │   │   ├── net.svg
    │       │   │   ├── nginx.svg
    │       │   │   ├── password.svg
    │       │   │   ├── pause.svg
    │       │   │   ├── play.svg
    │       │   │   ├── plus.svg
    │       │   │   ├── port.svg
    │       │   │   ├── py.svg
    │       │   │   ├── pyspark.svg
    │       │   │   ├── question.svg
    │       │   │   ├── remove.svg
    │       │   │   ├── resetpass.svg
    │       │   │   ├── resource.svg
    │       │   │   ├── rollback.svg
    │       │   │   ├── save.svg
    │       │   │   ├── see.svg
    │       │   │   ├── settings.svg
    │       │   │   ├── settings2.svg
    │       │   │   ├── shutdown.svg
    │       │   │   ├── sms.svg
    │       │   │   ├── spark.svg
    │       │   │   ├── spark2.svg
    │       │   │   ├── sparksql.svg
    │       │   │   ├── ssh.svg
    │       │   │   ├── ssl.svg
    │       │   │   ├── stream.svg
    │       │   │   ├── sun.svg
    │       │   │   ├── swap.svg
    │       │   │   ├── test.svg
    │       │   │   ├── testalarm.svg
    │       │   │   ├── theme.svg
    │       │   │   ├── threshold.svg
    │       │   │   ├── thunderbolt.svg
    │       │   │   ├── total-sales.svg
    │       │   │   ├── transaction.svg
    │       │   │   ├── upload.svg
    │       │   │   ├── user.svg
    │       │   │   ├── variable.svg
    │       │   │   ├── visit-count.svg
    │       │   │   ├── wechat.svg
    │       │   │   ├── wecom.svg
    │       │   │   └── workspace.svg
    │       │   ├── images
    │       │   │   ├── join_wechat.png
    │       │   │   ├── logo-text.png
    │       │   │   └── logo.png
    │       │   └── svg
    │       │   │   ├── apache-incubator.svg
    │       │   │   ├── default-avator.svg
    │       │   │   ├── net-error.svg
    │       │   │   └── no-data.svg
    │       ├── components
    │       │   ├── Application
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── AppDarkModeToggle.vue
    │       │   │   │   ├── AppLocalePicker.vue
    │       │   │   │   ├── AppLogo.vue
    │       │   │   │   ├── AppProvider.vue
    │       │   │   │   └── useAppContext.ts
    │       │   ├── Authority
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   └── Authority.vue
    │       │   ├── Basic
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── BasicArrow.vue
    │       │   │   │   ├── BasicHelp.vue
    │       │   │   │   └── BasicTitle.vue
    │       │   ├── Button
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── BasicButton.vue
    │       │   │   │   ├── PopConfirmButton.vue
    │       │   │   │   └── props.ts
    │       │   ├── Container
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── ScrollContainer.vue
    │       │   │   │   ├── collapse
    │       │   │   │       ├── CollapseContainer.vue
    │       │   │   │       └── CollapseHeader.vue
    │       │   │   │   └── typing.ts
    │       │   ├── ContextMenu
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── ContextMenu.vue
    │       │   │   │   ├── createContextMenu.ts
    │       │   │   │   └── typing.ts
    │       │   ├── Description
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── Description.vue
    │       │   │   │   ├── typing.ts
    │       │   │   │   └── useDescription.ts
    │       │   ├── Drawer
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── BasicDrawer.vue
    │       │   │   │   ├── components
    │       │   │   │       ├── DrawerFooter.vue
    │       │   │   │       └── DrawerHeader.vue
    │       │   │   │   ├── props.ts
    │       │   │   │   ├── typing.ts
    │       │   │   │   └── useDrawer.ts
    │       │   ├── Dropdown
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── Dropdown.vue
    │       │   │   │   └── typing.ts
    │       │   ├── Form
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── BasicForm.vue
    │       │   │   │   ├── componentMap.ts
    │       │   │   │   ├── components
    │       │   │   │       ├── ApiCascader.vue
    │       │   │   │       ├── ApiRadioGroup.vue
    │       │   │   │       ├── ApiSelect.vue
    │       │   │   │       ├── ApiTree.vue
    │       │   │   │       ├── ApiTreeSelect.vue
    │       │   │   │       ├── FormAction.tsx
    │       │   │   │       ├── FormAction.vue
    │       │   │   │       ├── FormItem.vue
    │       │   │   │       └── RadioButtonGroup.vue
    │       │   │   │   ├── helper.ts
    │       │   │   │   ├── hooks
    │       │   │   │       ├── useAdvanced.ts
    │       │   │   │       ├── useAutoFocus.ts
    │       │   │   │       ├── useComponentRegister.ts
    │       │   │   │       ├── useForm.ts
    │       │   │   │       ├── useFormContext.ts
    │       │   │   │       ├── useFormEvents.ts
    │       │   │   │       ├── useFormValues.ts
    │       │   │   │       └── useLabelWidth.ts
    │       │   │   │   ├── props.ts
    │       │   │   │   └── types
    │       │   │   │       ├── form.ts
    │       │   │   │       ├── formItem.ts
    │       │   │   │       ├── hooks.ts
    │       │   │   │       └── index.ts
    │       │   ├── Icon
    │       │   │   ├── data
    │       │   │   │   └── icons.data.ts
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── Icon.vue
    │       │   │   │   ├── IconPicker.vue
    │       │   │   │   └── SvgIcon.vue
    │       │   ├── LinkBadge
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   └── LinkBadge.vue
    │       │   ├── Loading
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── Loading.vue
    │       │   │   │   ├── createLoading.ts
    │       │   │   │   ├── typing.ts
    │       │   │   │   └── useLoading.ts
    │       │   ├── Menu
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── BasicMenu.vue
    │       │   │   │   ├── components
    │       │   │   │       ├── BasicMenuItem.vue
    │       │   │   │       ├── BasicSubMenuItem.vue
    │       │   │   │       └── MenuItemContent.vue
    │       │   │   │   ├── index.less
    │       │   │   │   ├── props.ts
    │       │   │   │   ├── types.ts
    │       │   │   │   └── useOpenKeys.ts
    │       │   ├── Modal
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── BasicModal.vue
    │       │   │   │   ├── components
    │       │   │   │       ├── Modal.tsx
    │       │   │   │       ├── ModalClose.vue
    │       │   │   │       ├── ModalFooter.vue
    │       │   │   │       ├── ModalHeader.vue
    │       │   │   │       └── ModalWrapper.vue
    │       │   │   │   ├── hooks
    │       │   │   │       ├── useModal.ts
    │       │   │   │       ├── useModalContext.ts
    │       │   │   │       ├── useModalDrag.ts
    │       │   │   │       └── useModalFullScreen.ts
    │       │   │   │   ├── index.less
    │       │   │   │   ├── props.ts
    │       │   │   │   └── typing.ts
    │       │   ├── OpenApi
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   └── index.tsx
    │       │   ├── Page
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── PageFooter.vue
    │       │   │   │   └── PageWrapper.vue
    │       │   ├── Scrollbar
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── Scrollbar.vue
    │       │   │   │   ├── bar.ts
    │       │   │   │   ├── types.d.ts
    │       │   │   │   └── util.ts
    │       │   ├── SimpleMenu
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── SimpleMenu.vue
    │       │   │   │   ├── SimpleMenuTag.vue
    │       │   │   │   ├── SimpleSubMenu.vue
    │       │   │   │   ├── components
    │       │   │   │       ├── Menu.vue
    │       │   │   │       ├── MenuCollapseTransition.vue
    │       │   │   │       ├── MenuItem.vue
    │       │   │   │       ├── SubMenuItem.vue
    │       │   │   │       ├── menu.less
    │       │   │   │       ├── types.ts
    │       │   │   │       ├── useMenu.ts
    │       │   │   │       └── useSimpleMenuContext.ts
    │       │   │   │   ├── index.less
    │       │   │   │   ├── types.ts
    │       │   │   │   └── useOpenKeys.ts
    │       │   ├── Table
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── BasicTable.vue
    │       │   │   │   ├── componentMap.ts
    │       │   │   │   ├── components
    │       │   │   │       ├── EditTableHeaderIcon.vue
    │       │   │   │       ├── HeaderCell.vue
    │       │   │   │       ├── TableAction.vue
    │       │   │   │       ├── TableFooter.vue
    │       │   │   │       ├── TableHeader.vue
    │       │   │   │       ├── TableImg.vue
    │       │   │   │       ├── TableTitle.vue
    │       │   │   │       ├── editable
    │       │   │   │       │   ├── CellComponent.ts
    │       │   │   │       │   ├── EditableCell.vue
    │       │   │   │       │   ├── helper.ts
    │       │   │   │       │   └── index.ts
    │       │   │   │       └── settings
    │       │   │   │       │   ├── ColumnSetting.vue
    │       │   │   │       │   ├── FullScreenSetting.vue
    │       │   │   │       │   ├── RedoSetting.vue
    │       │   │   │       │   ├── SizeSetting.vue
    │       │   │   │       │   └── index.vue
    │       │   │   │   ├── const.ts
    │       │   │   │   ├── hooks
    │       │   │   │       ├── useColumns.ts
    │       │   │   │       ├── useCustomRow.ts
    │       │   │   │       ├── useDataSource.ts
    │       │   │   │       ├── useLoading.ts
    │       │   │   │       ├── usePagination.tsx
    │       │   │   │       ├── useRowSelection.ts
    │       │   │   │       ├── useScrollTo.ts
    │       │   │   │       ├── useTable.ts
    │       │   │   │       ├── useTableContext.ts
    │       │   │   │       ├── useTableExpand.ts
    │       │   │   │       ├── useTableFooter.ts
    │       │   │   │       ├── useTableForm.ts
    │       │   │   │       ├── useTableHeader.ts
    │       │   │   │       ├── useTableScroll.ts
    │       │   │   │       └── useTableStyle.ts
    │       │   │   │   ├── props.ts
    │       │   │   │   └── types
    │       │   │   │       ├── column.ts
    │       │   │   │       ├── componentType.ts
    │       │   │   │       ├── pagination.ts
    │       │   │   │       ├── table.ts
    │       │   │   │       └── tableAction.ts
    │       │   ├── Transition
    │       │   │   ├── index.ts
    │       │   │   └── src
    │       │   │   │   ├── CollapseTransition.vue
    │       │   │   │   ├── CreateTransition.tsx
    │       │   │   │   └── ExpandTransition.ts
    │       │   ├── Tree
    │       │   │   ├── index.ts
    │       │   │   ├── src
    │       │   │   │   ├── BasicTree.vue
    │       │   │   │   ├── TreeIcon.ts
    │       │   │   │   ├── components
    │       │   │   │   │   └── TreeHeader.vue
    │       │   │   │   ├── hooks
    │       │   │   │   │   └── useTree.ts
    │       │   │   │   └── types
    │       │   │   │   │   └── tree.ts
    │       │   │   └── style
    │       │   │   │   ├── index.less
    │       │   │   │   └── index.ts
    │       │   └── registerGlobComp.ts
    │       ├── design
    │       │   ├── ant
    │       │   │   ├── btn.less
    │       │   │   ├── index.less
    │       │   │   ├── input.less
    │       │   │   ├── pagination.less
    │       │   │   └── table.less
    │       │   ├── color.less
    │       │   ├── config.less
    │       │   ├── index.less
    │       │   ├── nprogress.less
    │       │   ├── public.less
    │       │   ├── swal2.less
    │       │   ├── theme.less
    │       │   ├── transition
    │       │   │   ├── base.less
    │       │   │   ├── fade.less
    │       │   │   ├── index.less
    │       │   │   ├── scale.less
    │       │   │   ├── scroll.less
    │       │   │   ├── slide.less
    │       │   │   └── zoom.less
    │       │   └── var
    │       │   │   ├── breakpoint.less
    │       │   │   ├── easing.less
    │       │   │   └── index.less
    │       ├── directives
    │       │   ├── clickOutside.ts
    │       │   ├── index.ts
    │       │   ├── loading.ts
    │       │   └── permission.ts
    │       ├── enums
    │       │   ├── appEnum.ts
    │       │   ├── breakpointEnum.ts
    │       │   ├── cacheEnum.ts
    │       │   ├── exceptionEnum.ts
    │       │   ├── flinkEnum.ts
    │       │   ├── formEnum.ts
    │       │   ├── httpEnum.ts
    │       │   ├── menuEnum.ts
    │       │   ├── pageEnum.ts
    │       │   ├── projectEnum.ts
    │       │   ├── roleEnum.ts
    │       │   ├── sizeEnum.ts
    │       │   └── sparkEnum.ts
    │       ├── hooks
    │       │   ├── component
    │       │   │   ├── useFormItem.ts
    │       │   │   └── usePageContext.ts
    │       │   ├── core
    │       │   │   ├── onMountedOrActivated.ts
    │       │   │   ├── useContext.ts
    │       │   │   ├── useLockFn.ts
    │       │   │   ├── useRefs.ts
    │       │   │   └── useTimeout.ts
    │       │   ├── event
    │       │   │   ├── useBreakpoint.ts
    │       │   │   ├── useEventListener.ts
    │       │   │   ├── useFullscreen.ts
    │       │   │   ├── useIntersectionObserver.ts
    │       │   │   ├── useScroll.ts
    │       │   │   ├── useScrollTo.ts
    │       │   │   └── useWindowSizeFn.ts
    │       │   ├── setting
    │       │   │   ├── index.ts
    │       │   │   ├── useHeaderSetting.ts
    │       │   │   ├── useMenuSetting.ts
    │       │   │   ├── useMultipleTabSetting.ts
    │       │   │   ├── useRootSetting.ts
    │       │   │   └── useTransitionSetting.ts
    │       │   └── web
    │       │   │   ├── useAppInject.ts
    │       │   │   ├── useContentHeight.ts
    │       │   │   ├── useContextMenu.ts
    │       │   │   ├── useCopyToClipboard.ts
    │       │   │   ├── useDesign.ts
    │       │   │   ├── useFormValidate.ts
    │       │   │   ├── useFullContent.ts
    │       │   │   ├── useI18n.ts
    │       │   │   ├── useLockPage.ts
    │       │   │   ├── useLog.ts
    │       │   │   ├── useMessage.tsx
    │       │   │   ├── useMonaco.ts
    │       │   │   ├── usePage.ts
    │       │   │   ├── usePagination.ts
    │       │   │   ├── usePermission.ts
    │       │   │   ├── useSortable.ts
    │       │   │   ├── useTabs.ts
    │       │   │   └── useTitle.ts
    │       ├── layouts
    │       │   ├── default
    │       │   │   ├── content
    │       │   │   │   ├── index.vue
    │       │   │   │   ├── useContentContext.ts
    │       │   │   │   └── useContentViewHeight.ts
    │       │   │   ├── feature
    │       │   │   │   └── index.vue
    │       │   │   ├── footer
    │       │   │   │   └── index.vue
    │       │   │   ├── header
    │       │   │   │   ├── MultipleHeader.vue
    │       │   │   │   ├── components
    │       │   │   │   │   ├── Breadcrumb.vue
    │       │   │   │   │   ├── ErrorAction.vue
    │       │   │   │   │   ├── FullScreen.vue
    │       │   │   │   │   ├── Github.vue
    │       │   │   │   │   ├── LockScreen.vue
    │       │   │   │   │   ├── Slogan.vue
    │       │   │   │   │   ├── UserTeam.vue
    │       │   │   │   │   ├── index.ts
    │       │   │   │   │   ├── lock
    │       │   │   │   │   │   └── LockModal.vue
    │       │   │   │   │   ├── notify
    │       │   │   │   │   │   ├── NoticeList.vue
    │       │   │   │   │   │   └── index.vue
    │       │   │   │   │   └── user-dropdown
    │       │   │   │   │   │   ├── DropMenuItem.vue
    │       │   │   │   │   │   ├── PasswordModal.vue
    │       │   │   │   │   │   └── index.vue
    │       │   │   │   ├── index.less
    │       │   │   │   └── index.vue
    │       │   │   ├── index.vue
    │       │   │   ├── menu
    │       │   │   │   ├── index.vue
    │       │   │   │   └── useLayoutMenu.ts
    │       │   │   ├── sider
    │       │   │   │   ├── DragBar.vue
    │       │   │   │   ├── LayoutSider.vue
    │       │   │   │   ├── MixSider.vue
    │       │   │   │   ├── index.vue
    │       │   │   │   └── useLayoutSider.ts
    │       │   │   ├── tabs
    │       │   │   │   ├── components
    │       │   │   │   │   ├── FoldButton.vue
    │       │   │   │   │   ├── TabContent.vue
    │       │   │   │   │   └── TabRedo.vue
    │       │   │   │   ├── index.less
    │       │   │   │   ├── index.vue
    │       │   │   │   ├── types.ts
    │       │   │   │   ├── useMultipleTabs.ts
    │       │   │   │   └── useTabDropdown.ts
    │       │   │   └── trigger
    │       │   │   │   ├── HeaderTrigger.vue
    │       │   │   │   ├── SiderTrigger.vue
    │       │   │   │   └── index.vue
    │       │   └── page
    │       │   │   ├── index.vue
    │       │   │   └── transition.ts
    │       ├── locales
    │       │   ├── helper.ts
    │       │   ├── lang
    │       │   │   ├── en.ts
    │       │   │   ├── en
    │       │   │   │   ├── common.ts
    │       │   │   │   ├── component.ts
    │       │   │   │   ├── flink
    │       │   │   │   │   ├── app.ts
    │       │   │   │   │   ├── project.ts
    │       │   │   │   │   ├── resource.ts
    │       │   │   │   │   └── variable.ts
    │       │   │   │   ├── layout.ts
    │       │   │   │   ├── menu.ts
    │       │   │   │   ├── routes
    │       │   │   │   │   └── basic.ts
    │       │   │   │   ├── setting
    │       │   │   │   │   ├── alarm.ts
    │       │   │   │   │   ├── externalLink.ts
    │       │   │   │   │   ├── flinkCluster.ts
    │       │   │   │   │   ├── flinkGateway.ts
    │       │   │   │   │   ├── flinkHome.ts
    │       │   │   │   │   ├── system.ts
    │       │   │   │   │   └── yarnQueue.ts
    │       │   │   │   ├── spark
    │       │   │   │   │   ├── app.ts
    │       │   │   │   │   └── home.ts
    │       │   │   │   ├── sys.ts
    │       │   │   │   └── system
    │       │   │   │   │   ├── member.ts
    │       │   │   │   │   ├── menu.ts
    │       │   │   │   │   ├── role.ts
    │       │   │   │   │   ├── team.ts
    │       │   │   │   │   ├── token.ts
    │       │   │   │   │   └── user.ts
    │       │   │   ├── zh-CN
    │       │   │   │   ├── common.ts
    │       │   │   │   ├── component.ts
    │       │   │   │   ├── flink
    │       │   │   │   │   ├── app.ts
    │       │   │   │   │   ├── project.ts
    │       │   │   │   │   ├── resource.ts
    │       │   │   │   │   └── variable.ts
    │       │   │   │   ├── layout.ts
    │       │   │   │   ├── menu.ts
    │       │   │   │   ├── routes
    │       │   │   │   │   └── basic.ts
    │       │   │   │   ├── setting
    │       │   │   │   │   ├── alarm.ts
    │       │   │   │   │   ├── externalLink.ts
    │       │   │   │   │   ├── flinkCluster.ts
    │       │   │   │   │   ├── flinkGateway.ts
    │       │   │   │   │   ├── flinkHome.ts
    │       │   │   │   │   ├── system.ts
    │       │   │   │   │   └── yarnQueue.ts
    │       │   │   │   ├── spark
    │       │   │   │   │   ├── app.ts
    │       │   │   │   │   └── home.ts
    │       │   │   │   ├── sys.ts
    │       │   │   │   └── system
    │       │   │   │   │   ├── member.ts
    │       │   │   │   │   ├── menu.ts
    │       │   │   │   │   ├── role.ts
    │       │   │   │   │   ├── team.ts
    │       │   │   │   │   ├── token.ts
    │       │   │   │   │   └── user.ts
    │       │   │   └── zh_CN.ts
    │       │   ├── setupI18n.ts
    │       │   └── useLocale.ts
    │       ├── logics
    │       │   ├── error-handle
    │       │   │   └── index.ts
    │       │   ├── initAppConfig.ts
    │       │   ├── mitt
    │       │   │   └── routeChange.ts
    │       │   └── theme
    │       │   │   ├── dark.ts
    │       │   │   ├── index.ts
    │       │   │   ├── updateBackground.ts
    │       │   │   ├── updateColorWeak.ts
    │       │   │   ├── updateGrayMode.ts
    │       │   │   └── util.ts
    │       ├── main.ts
    │       ├── monaco
    │       │   └── index.ts
    │       ├── router
    │       │   ├── constant.ts
    │       │   ├── guard
    │       │   │   ├── index.ts
    │       │   │   ├── paramMenuGuard.ts
    │       │   │   ├── permissionGuard.ts
    │       │   │   ├── ssoGuard.ts
    │       │   │   └── stateGuard.ts
    │       │   ├── helper
    │       │   │   ├── menuHelper.ts
    │       │   │   └── routeHelper.ts
    │       │   ├── index.ts
    │       │   ├── menus
    │       │   │   └── index.ts
    │       │   ├── routes
    │       │   │   ├── basic.ts
    │       │   │   └── index.ts
    │       │   └── types.ts
    │       ├── settings
    │       │   ├── componentSetting.ts
    │       │   ├── designSetting.ts
    │       │   ├── encryptionSetting.ts
    │       │   ├── localeSetting.ts
    │       │   ├── projectSetting.ts
    │       │   └── siteSetting.ts
    │       ├── store
    │       │   ├── index.ts
    │       │   └── modules
    │       │   │   ├── app.ts
    │       │   │   ├── errorLog.ts
    │       │   │   ├── flinkApplication.ts
    │       │   │   ├── locale.ts
    │       │   │   ├── lock.ts
    │       │   │   ├── multipleTab.ts
    │       │   │   ├── permission.ts
    │       │   │   └── user.ts
    │       ├── utils
    │       │   ├── auth
    │       │   │   └── index.ts
    │       │   ├── bem.ts
    │       │   ├── cache
    │       │   │   ├── index.ts
    │       │   │   ├── memory.ts
    │       │   │   ├── persistent.ts
    │       │   │   └── storageCache.ts
    │       │   ├── cipher.ts
    │       │   ├── color.ts
    │       │   ├── dateUtil.ts
    │       │   ├── domUtils.ts
    │       │   ├── env.ts
    │       │   ├── event
    │       │   │   └── index.ts
    │       │   ├── factory
    │       │   │   └── createAsyncComponent.tsx
    │       │   ├── file
    │       │   │   ├── base64Conver.ts
    │       │   │   └── download.ts
    │       │   ├── helper
    │       │   │   ├── treeHelper.ts
    │       │   │   └── tsxHelper.tsx
    │       │   ├── http
    │       │   │   └── axios
    │       │   │   │   ├── Axios.ts
    │       │   │   │   ├── axiosCancel.ts
    │       │   │   │   ├── axiosRetry.ts
    │       │   │   │   ├── axiosTransform.ts
    │       │   │   │   ├── checkStatus.ts
    │       │   │   │   ├── errorHandle.ts
    │       │   │   │   ├── helper.ts
    │       │   │   │   └── index.ts
    │       │   ├── index.ts
    │       │   ├── is.ts
    │       │   ├── log.ts
    │       │   ├── mitt.ts
    │       │   ├── propTypes.ts
    │       │   ├── props.ts
    │       │   ├── types.ts
    │       │   └── uuid.ts
    │       └── views
    │       │   ├── base
    │       │       ├── error-log
    │       │       │   ├── DetailModal.vue
    │       │       │   ├── data.tsx
    │       │       │   └── index.vue
    │       │       ├── exception
    │       │       │   ├── Exception.vue
    │       │       │   └── index.ts
    │       │       ├── lock
    │       │       │   ├── LockPage.vue
    │       │       │   ├── index.vue
    │       │       │   └── useNow.ts
    │       │       ├── login
    │       │       │   ├── Login.vue
    │       │       │   ├── LoginForm.vue
    │       │       │   ├── LoginSlogan.less
    │       │       │   ├── LoginSlogan.tsx
    │       │       │   ├── SessionTimeoutLogin.vue
    │       │       │   ├── teamModal.vue
    │       │       │   └── useLogin.ts
    │       │       └── redirect
    │       │       │   └── index.vue
    │       │   ├── flink
    │       │       ├── app
    │       │       │   ├── Add.vue
    │       │       │   ├── Detail.vue
    │       │       │   ├── EditFlink.vue
    │       │       │   ├── EditStreamPark.vue
    │       │       │   ├── FlinkSqlFormatter.js
    │       │       │   ├── View.vue
    │       │       │   ├── components
    │       │       │   │   ├── AppConf.tsx
    │       │       │   │   ├── AppDetail
    │       │       │   │   │   ├── CompareModal.vue
    │       │       │   │   │   ├── DetailTab.vue
    │       │       │   │   │   ├── Different.vue
    │       │       │   │   │   ├── ExecOptionModal.vue
    │       │       │   │   │   ├── FlinkSqlCompareModal.vue
    │       │       │   │   │   ├── FlinkSqlDifferent.vue
    │       │       │   │   │   └── FlinkSqlReview.vue
    │       │       │   │   ├── AppResize.vue
    │       │       │   │   ├── AppView
    │       │       │   │   │   ├── AppDashboard.vue
    │       │       │   │   │   ├── BuildDrawer.vue
    │       │       │   │   │   ├── BuildLayer.vue
    │       │       │   │   │   ├── LogModal.vue
    │       │       │   │   │   ├── StartApplicationModal.vue
    │       │       │   │   │   ├── StatisticCard.vue
    │       │       │   │   │   └── StopApplicationModal.vue
    │       │       │   │   ├── CompareConf.tsx
    │       │       │   │   ├── CustomForm.tsx
    │       │       │   │   ├── Dependency.vue
    │       │       │   │   ├── FlinkSql.vue
    │       │       │   │   ├── FlinkSqlHistory.vue
    │       │       │   │   ├── HadoopConfDrawer.vue
    │       │       │   │   ├── Mergely.vue
    │       │       │   │   ├── PodTemplate
    │       │       │   │   │   ├── HistoryDrawer.vue
    │       │       │   │   │   ├── HostAliasDrawer.vue
    │       │       │   │   │   ├── PomTemplateTab.vue
    │       │       │   │   │   └── TemplateButtonGroup.vue
    │       │       │   │   ├── ProgramArgs.vue
    │       │       │   │   ├── RequestModal
    │       │       │   │   │   └── index.tsx
    │       │       │   │   ├── State.less
    │       │       │   │   ├── State.tsx
    │       │       │   │   ├── UploadJobJar.vue
    │       │       │   │   ├── UseSysHadoopConf.vue
    │       │       │   │   └── VariableReview.vue
    │       │       │   ├── data
    │       │       │   │   ├── detail.data.ts
    │       │       │   │   ├── index.ts
    │       │       │   │   └── option.ts
    │       │       │   ├── hooks
    │       │       │   │   ├── useApp.tsx
    │       │       │   │   ├── useAppTableAction.ts
    │       │       │   │   ├── useAppTableColumns.ts
    │       │       │   │   ├── useCreateAndEditSchema.ts
    │       │       │   │   ├── useCreateSchema.ts
    │       │       │   │   ├── useDetail.ts
    │       │       │   │   ├── useDetailContext.ts
    │       │       │   │   ├── useDiffMonaco.ts
    │       │       │   │   ├── useEdit.ts
    │       │       │   │   ├── useEditFlinkSchema.ts
    │       │       │   │   ├── useEditStreamPark.ts
    │       │       │   │   ├── useFlinkRender.tsx
    │       │       │   │   └── useSavepoint.tsx
    │       │       │   ├── styles
    │       │       │   │   ├── Add.less
    │       │       │   │   ├── Detail.less
    │       │       │   │   └── View.less
    │       │       │   └── utils
    │       │       │   │   ├── Pom.ts
    │       │       │   │   └── index.ts
    │       │       ├── cluster
    │       │       │   ├── Add.vue
    │       │       │   ├── Edit.vue
    │       │       │   ├── State.less
    │       │       │   ├── State.tsx
    │       │       │   ├── View.vue
    │       │       │   └── useClusterSetting.ts
    │       │       ├── gateway
    │       │       │   ├── View.vue
    │       │       │   ├── components
    │       │       │   │   └── FlinkGatewayDrawer.vue
    │       │       │   └── index.data.ts
    │       │       └── home
    │       │       │   ├── View.vue
    │       │       │   └── components
    │       │       │       ├── Drawer.vue
    │       │       │       ├── Modal.vue
    │       │       │       └── index.ts
    │       │   ├── resource
    │       │       ├── project
    │       │       │   ├── Add.vue
    │       │       │   ├── Edit.vue
    │       │       │   ├── View.vue
    │       │       │   ├── components
    │       │       │   │   ├── ListItem.vue
    │       │       │   │   ├── LogModal.vue
    │       │       │   │   └── RepositoryGroup.tsx
    │       │       │   ├── project.data.ts
    │       │       │   └── useProject.tsx
    │       │       ├── upload
    │       │       │   ├── View.vue
    │       │       │   ├── components
    │       │       │   │   ├── Upload.vue
    │       │       │   │   └── UploadDrawer.vue
    │       │       │   ├── upload.data.ts
    │       │       │   └── useUploadRender.tsx
    │       │       └── variable
    │       │       │   ├── DependApps.vue
    │       │       │   ├── View.vue
    │       │       │   ├── components
    │       │       │       ├── VariableInfo.vue
    │       │       │       └── VariableModal.vue
    │       │       │   └── variable.data.ts
    │       │   ├── setting
    │       │       ├── alarm
    │       │       │   ├── View.vue
    │       │       │   └── components
    │       │       │   │   ├── AlertModal.vue
    │       │       │   │   ├── AlertTypeInfo.vue
    │       │       │   │   ├── DetailModal.vue
    │       │       │   │   ├── index.data.ts
    │       │       │   │   └── index.ts
    │       │       ├── extlink
    │       │       │   ├── View.vue
    │       │       │   └── components
    │       │       │   │   ├── Modal.vue
    │       │       │   │   ├── index.ts
    │       │       │   │   └── useExternalLink.tsx
    │       │       ├── system
    │       │       │   ├── SettingForm.vue
    │       │       │   ├── SettingList.vue
    │       │       │   ├── View.vue
    │       │       │   └── config.ts
    │       │       └── yarn-queue
    │       │       │   ├── View.vue
    │       │       │   ├── YarnQueueModal.vue
    │       │       │   ├── index.data.ts
    │       │       │   └── useYarnQueueRender.tsx
    │       │   ├── spark
    │       │       ├── app
    │       │       │   ├── components
    │       │       │   │   ├── AppDashboard.vue
    │       │       │   │   ├── AppForm.vue
    │       │       │   │   ├── AppLog.vue
    │       │       │   │   ├── BuildDrawer.vue
    │       │       │   │   ├── CompareModal.vue
    │       │       │   │   ├── DetailTab.vue
    │       │       │   │   ├── Mergely.vue
    │       │       │   │   ├── ProgramArgs.vue
    │       │       │   │   ├── SparkSql.vue
    │       │       │   │   ├── SparkSqlCompareModal.vue
    │       │       │   │   ├── SparkSqlDifferent.vue
    │       │       │   │   ├── SparkSqlReview.vue
    │       │       │   │   ├── State.tsx
    │       │       │   │   ├── StatisticCard.vue
    │       │       │   │   └── VariableReview.vue
    │       │       │   ├── create.vue
    │       │       │   ├── data
    │       │       │   │   ├── detail.data.ts
    │       │       │   │   └── index.ts
    │       │       │   ├── detail.vue
    │       │       │   ├── edit.vue
    │       │       │   ├── hooks
    │       │       │   │   ├── useAppFormSchema.tsx
    │       │       │   │   ├── useDetailContext.ts
    │       │       │   │   ├── useSparkAction.tsx
    │       │       │   │   ├── useSparkColumns.ts
    │       │       │   │   ├── useSparkRender.tsx
    │       │       │   │   └── useSparkTableAction.ts
    │       │       │   ├── index.vue
    │       │       │   ├── styles
    │       │       │   │   └── spark.less
    │       │       │   └── utils
    │       │       │   │   └── index.ts
    │       │       └── home
    │       │       │   ├── components
    │       │       │       ├── Drawer.vue
    │       │       │       ├── Modal.vue
    │       │       │       └── index.ts
    │       │       │   └── index.vue
    │       │   └── system
    │       │       ├── member
    │       │           ├── MemberModal.vue
    │       │           └── View.vue
    │       │       ├── role
    │       │           ├── View.vue
    │       │           ├── components
    │       │           │   ├── RoleDrawer.vue
    │       │           │   └── RoleInfo.vue
    │       │           └── role.data.ts
    │       │       ├── team
    │       │           ├── TeamModal.vue
    │       │           ├── View.vue
    │       │           └── team.data.ts
    │       │       ├── token
    │       │           ├── View.vue
    │       │           ├── components
    │       │           │   └── TokenModal.vue
    │       │           └── token.data.ts
    │       │       └── user
    │       │           ├── View.vue
    │       │           ├── components
    │       │               ├── UserDrawer.vue
    │       │               └── UserModal.vue
    │       │           └── user.data.ts
    │   ├── stylelint.config.js
    │   ├── tsconfig.json
    │   ├── types
    │       ├── axios.d.ts
    │       ├── config.d.ts
    │       ├── global.d.ts
    │       ├── index.d.ts
    │       ├── module.d.ts
    │       ├── store.d.ts
    │       ├── utils.d.ts
    │       └── vue-router.d.ts
    │   ├── vite.config.ts
    │   └── windi.config.ts
├── streampark-e2e
    ├── README.md
    ├── pom.xml
    ├── streampark-e2e-case
    │   ├── pom.xml
    │   └── src
    │   │   └── test
    │   │       ├── java
    │   │           └── org
    │   │           │   └── apache
    │   │           │       └── streampark
    │   │           │           └── e2e
    │   │           │               ├── cases
    │   │           │                   ├── AlarmTest.java
    │   │           │                   ├── EnvironmentTest.java
    │   │           │                   ├── ExternalLinkTest.java
    │   │           │                   ├── Flink116OnRemoteClusterDeployTest.java
    │   │           │                   ├── Flink116OnYarnClusterDeployTest.java
    │   │           │                   ├── Flink117OnRemoteClusterDeployTest.java
    │   │           │                   ├── Flink117OnYarnClusterDeployTest.java
    │   │           │                   ├── Flink118OnRemoteClusterDeployTest.java
    │   │           │                   ├── Flink118OnYarnClusterDeployTest.java
    │   │           │                   ├── Flink120OnRemoteClusterDeployTest.java
    │   │           │                   ├── Flink120OnYarnClusterDeployTest.java
    │   │           │                   ├── FlinkSQL116OnYarnTest.java
    │   │           │                   ├── FlinkSQL117OnYarnTest.java
    │   │           │                   ├── FlinkSQL118OnYarnTest.java
    │   │           │                   ├── FlinkSQL120OnYarnTest.java
    │   │           │                   ├── MemberManagementTest.java
    │   │           │                   ├── ProjectsManagementTest.java
    │   │           │                   ├── RoleManagementTest.java
    │   │           │                   ├── TeamManagementTest.java
    │   │           │                   ├── TokenManagementTest.java
    │   │           │                   ├── UploadManagementTest.java
    │   │           │                   ├── UserManagementTest.java
    │   │           │                   ├── VariableManagementTest.java
    │   │           │                   └── YarnQueueTest.java
    │   │           │               └── pages
    │   │           │                   ├── LoginPage.java
    │   │           │                   ├── common
    │   │           │                       ├── CommonFactory.java
    │   │           │                       ├── Constants.java
    │   │           │                       └── NavBarPage.java
    │   │           │                   ├── flink
    │   │           │                       ├── ApacheFlinkPage.java
    │   │           │                       ├── FlinkHomePage.java
    │   │           │                       ├── applications
    │   │           │                       │   ├── ApplicationForm.java
    │   │           │                       │   ├── ApplicationsPage.java
    │   │           │                       │   └── FlinkSQLEditor.java
    │   │           │                       └── clusters
    │   │           │                       │   ├── ClusterDetailForm.java
    │   │           │                       │   ├── CommonForm.java
    │   │           │                       │   ├── FlinkClustersPage.java
    │   │           │                       │   ├── RemoteForm.java
    │   │           │                       │   └── YarnSessionForm.java
    │   │           │                   ├── resource
    │   │           │                       ├── ProjectsPage.java
    │   │           │                       ├── ResourcePage.java
    │   │           │                       ├── UploadsPage.java
    │   │           │                       └── VariablesPage.java
    │   │           │                   ├── setting
    │   │           │                       ├── ExternalLinkPage.java
    │   │           │                       ├── SettingPage.java
    │   │           │                       ├── YarnQueuePage.java
    │   │           │                       ├── alarm
    │   │           │                       │   ├── AlarmPage.java
    │   │           │                       │   ├── AlertTypeDetailForm.java
    │   │           │                       │   ├── CommonForm.java
    │   │           │                       │   ├── DingTalkAlertForm.java
    │   │           │                       │   ├── EmailAlertForm.java
    │   │           │                       │   ├── LarkAlertForm.java
    │   │           │                       │   ├── SMSAlertForm.java
    │   │           │                       │   └── WeChatAlertForm.java
    │   │           │                       └── env
    │   │           │                       │   ├── CommonForm.java
    │   │           │                       │   ├── DockerSettingForm.java
    │   │           │                       │   ├── EmailSettingForm.java
    │   │           │                       │   ├── EnvironmentDetailForm.java
    │   │           │                       │   ├── EnvironmentPage.java
    │   │           │                       │   ├── IngressSettingForm.java
    │   │           │                       │   └── MavenSettingForm.java
    │   │           │                   └── system
    │   │           │                       ├── MemberManagementPage.java
    │   │           │                       ├── RoleManagementPage.java
    │   │           │                       ├── SystemPage.java
    │   │           │                       ├── TeamManagementPage.java
    │   │           │                       ├── TokenManagementPage.java
    │   │           │                       ├── UserManagementPage.java
    │   │           │                       └── entity
    │   │           │                           ├── UserManagementStatus.java
    │   │           │                           └── UserManagementUserType.java
    │   │       └── resources
    │   │           └── docker
    │   │               ├── basic
    │   │                   ├── Dockerfile
    │   │                   └── docker-compose.yaml
    │   │               ├── environment
    │   │                   ├── Dockerfile
    │   │                   └── docker-compose.yaml
    │   │               ├── flink-1.16-on-remote
    │   │                   ├── Dockerfile
    │   │                   └── docker-compose.yaml
    │   │               ├── flink-1.16-on-yarn
    │   │                   ├── Dockerfile
    │   │                   ├── docker-compose.config
    │   │                   └── docker-compose.yaml
    │   │               ├── flink-1.17-on-remote
    │   │                   ├── Dockerfile
    │   │                   └── docker-compose.yaml
    │   │               ├── flink-1.17-on-yarn
    │   │                   ├── Dockerfile
    │   │                   ├── docker-compose.config
    │   │                   └── docker-compose.yaml
    │   │               ├── flink-1.18-on-remote
    │   │                   ├── Dockerfile
    │   │                   └── docker-compose.yaml
    │   │               ├── flink-1.18-on-yarn
    │   │                   ├── Dockerfile
    │   │                   ├── docker-compose.config
    │   │                   └── docker-compose.yaml
    │   │               ├── flink-1.20-on-remote
    │   │                   ├── Dockerfile
    │   │                   └── docker-compose.yaml
    │   │               └── flink-1.20-on-yarn
    │   │                   ├── Dockerfile
    │   │                   ├── docker-compose.config
    │   │                   └── docker-compose.yaml
    └── streampark-e2e-core
    │   ├── pom.xml
    │   └── src
    │       └── main
    │           ├── java
    │               └── org
    │               │   └── apache
    │               │       └── streampark
    │               │           └── e2e
    │               │               └── core
    │               │                   ├── Constants.java
    │               │                   ├── StreamPark.java
    │               │                   ├── StreamParkExtension.java
    │               │                   └── TestDescription.java
    │           └── resources
    │               └── log4j2.xml
├── streampark-flink
    ├── pom.xml
    ├── streampark-flink-client
    │   ├── pom.xml
    │   ├── streampark-flink-client-api
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── client
    │   │   │                               ├── FlinkClient.scala
    │   │   │                               └── bean
    │   │   │                                   ├── CancelRequest.scala
    │   │   │                                   ├── CancelResponse.scala
    │   │   │                                   ├── DeployRequest.scala
    │   │   │                                   ├── DeployRequestTrait.scala
    │   │   │                                   ├── DeployResponse.scala
    │   │   │                                   ├── SavepointRequestTrait.scala
    │   │   │                                   ├── SavepointResponse.scala
    │   │   │                                   ├── ShutDownRequest.scala
    │   │   │                                   ├── ShutDownResponse.scala
    │   │   │                                   ├── SubmitRequest.scala
    │   │   │                                   ├── SubmitResponse.scala
    │   │   │                                   └── TriggerSavepointRequest.scala
    │   └── streampark-flink-client-core
    │   │   ├── pom.xml
    │   │   └── src
    │   │       ├── main
    │   │           ├── resources
    │   │           │   ├── META-INF
    │   │           │   │   └── services
    │   │           │   │   │   ├── org.apache.flink.client.deployment.StandaloneClientFactory
    │   │           │   │   │   ├── org.apache.flink.kubernetes.KubernetesClusterClientFactory
    │   │           │   │   │   └── org.apache.flink.yarn.YarnClusterClientFactory
    │   │           │   └── pyflink.md
    │   │           └── scala
    │   │           │   └── org
    │   │           │       └── apache
    │   │           │           └── streampark
    │   │           │               └── flink
    │   │           │                   └── client
    │   │           │                       ├── FlinkClientEntrypoint.scala
    │   │           │                       ├── impl
    │   │           │                           ├── KubernetesNativeApplicationClient.scala
    │   │           │                           ├── KubernetesNativeSessionClient.scala
    │   │           │                           ├── LocalClient.scala
    │   │           │                           ├── RemoteClient.scala
    │   │           │                           ├── YarnApplicationClient.scala
    │   │           │                           ├── YarnPerJobClient.scala
    │   │           │                           └── YarnSessionClient.scala
    │   │           │                       ├── tool
    │   │           │                           └── FlinkSessionClientHelper.scala
    │   │           │                       └── trait
    │   │           │                           ├── FlinkClientTrait.scala
    │   │           │                           ├── KubernetesNativeClientTrait.scala
    │   │           │                           └── YarnClientTrait.scala
    │   │       └── test
    │   │           └── scala
    │   │               └── org
    │   │                   └── apache
    │   │                       └── streampark
    │   │                           └── flink
    │   │                               └── client
    │   │                                   └── test
    │   │                                       ├── ParameterTestCase.scala
    │   │                                       └── YarnPerJobTestCase.scala
    ├── streampark-flink-connector
    │   ├── pom.xml
    │   ├── streampark-flink-connector-base
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── apache
    │   │   │       │   │       └── streampark
    │   │   │       │   │           └── flink
    │   │   │       │   │               └── connector
    │   │   │       │   │                   └── function
    │   │   │       │   │                       ├── RunningFunction.java
    │   │   │       │   │                       ├── SQLQueryFunction.java
    │   │   │       │   │                       ├── SQLResultFunction.java
    │   │   │       │   │                       ├── StreamEnvConfigFunction.java
    │   │   │       │   │                       ├── TableEnvConfigFunction.java
    │   │   │       │   │                       └── TransformFunction.java
    │   │   │       └── scala
    │   │   │       │   └── org
    │   │   │       │       └── apache
    │   │   │       │           └── streampark
    │   │   │       │               └── flink
    │   │   │       │                   └── connector
    │   │   │       │                       ├── conf
    │   │   │       │                           ├── ThresholdConf.scala
    │   │   │       │                           └── ThresholdConfigOption.scala
    │   │   │       │                       ├── failover
    │   │   │       │                           ├── FailoverChecker.scala
    │   │   │       │                           ├── FailoverWriter.scala
    │   │   │       │                           ├── SinkBuffer.scala
    │   │   │       │                           ├── SinkRequest.scala
    │   │   │       │                           └── SinkWriter.scala
    │   │   │       │                       └── sink
    │   │   │       │                           └── Sink.scala
    │   │   │   └── test
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── connector
    │   │   │                               └── failover
    │   │   │                                   └── SinkRequestTest.scala
    │   ├── streampark-flink-connector-clickhouse
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── connector
    │   │   │                               └── clickhouse
    │   │   │                                   ├── conf
    │   │   │                                       ├── ClickHouseHttpConfig.scala
    │   │   │                                       ├── ClickHouseJdbcConfig.scala
    │   │   │                                       └── ClickHouseSinkConfigOption.scala
    │   │   │                                   ├── internal
    │   │   │                                       ├── AsyncClickHouseSinkFunction.scala
    │   │   │                                       ├── ClickHouseSinkFunction.scala
    │   │   │                                       ├── ClickHouseSinkWriter.scala
    │   │   │                                       └── ClickHouseWriterTask.scala
    │   │   │                                   ├── sink
    │   │   │                                       ├── AsyncClickHouseOutputFormat.scala
    │   │   │                                       ├── ClickHouseOutputFormat.scala
    │   │   │                                       └── ClickHouseSink.scala
    │   │   │                                   └── util
    │   │   │                                       └── ClickhouseConvertUtils.scala
    │   ├── streampark-flink-connector-doris
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── apache
    │   │   │           │       └── streampark
    │   │   │           │           └── flink
    │   │   │           │               └── connector
    │   │   │           │                   └── doris
    │   │   │           │                       ├── bean
    │   │   │           │                           ├── DorisSinkBufferEntry.java
    │   │   │           │                           ├── DorisSinkRowDataWithMeta.java
    │   │   │           │                           ├── LoadStatusFailedException.java
    │   │   │           │                           └── RespContent.java
    │   │   │           │                       ├── internal
    │   │   │           │                           ├── DorisSinkFunction.java
    │   │   │           │                           ├── DorisSinkWriter.java
    │   │   │           │                           └── DorisStreamLoader.java
    │   │   │           │                       ├── sink
    │   │   │           │                           └── DorisSink.java
    │   │   │           │                       └── util
    │   │   │           │                           └── DorisDelimiterParser.java
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── connector
    │   │   │                           └── doris
    │   │   │                               └── conf
    │   │   │                                   ├── DorisConfig.scala
    │   │   │                                   └── DorisSinkConfigOption.scala
    │   ├── streampark-flink-connector-elasticsearch
    │   │   ├── pom.xml
    │   │   ├── streampark-flink-connector-elasticsearch5
    │   │   │   ├── pom.xml
    │   │   │   └── src
    │   │   │   │   └── main
    │   │   │   │       └── scala
    │   │   │   │           └── org
    │   │   │   │               └── apache
    │   │   │   │                   └── streampark
    │   │   │   │                       └── flink
    │   │   │   │                           └── connector
    │   │   │   │                               └── elasticsearch5
    │   │   │   │                                   ├── conf
    │   │   │   │                                       ├── ESConfig.scala
    │   │   │   │                                       └── ESSinkConfigOption.scala
    │   │   │   │                                   ├── internal
    │   │   │   │                                       └── ESSinkFunction.scala
    │   │   │   │                                   ├── sink
    │   │   │   │                                       └── ES5Sink.scala
    │   │   │   │                                   └── util
    │   │   │   │                                       └── ElasticsearchUtils.scala
    │   │   ├── streampark-flink-connector-elasticsearch6
    │   │   │   ├── pom.xml
    │   │   │   └── src
    │   │   │   │   └── main
    │   │   │   │       └── scala
    │   │   │   │           └── org
    │   │   │   │               └── apache
    │   │   │   │                   └── streampark
    │   │   │   │                       └── flink
    │   │   │   │                           └── connector
    │   │   │   │                               └── elasticsearch6
    │   │   │   │                                   ├── bean
    │   │   │   │                                       └── RestClientFactoryImpl.scala
    │   │   │   │                                   ├── conf
    │   │   │   │                                       ├── ES6Config.scala
    │   │   │   │                                       └── ES6SinkConfigOption.scala
    │   │   │   │                                   ├── internal
    │   │   │   │                                       └── ESSinkFunction.scala
    │   │   │   │                                   ├── sink
    │   │   │   │                                       └── ES6Sink.scala
    │   │   │   │                                   └── util
    │   │   │   │                                       └── ElasticsearchUtils.scala
    │   │   └── streampark-flink-connector-elasticsearch7
    │   │   │   ├── pom.xml
    │   │   │   └── src
    │   │   │       └── main
    │   │   │           └── scala
    │   │   │               └── org
    │   │   │                   └── apache
    │   │   │                       └── streampark
    │   │   │                           └── flink
    │   │   │                               └── connector
    │   │   │                                   └── elasticsearch7
    │   │   │                                       ├── bean
    │   │   │                                           └── RestClientFactoryImpl.scala
    │   │   │                                       ├── conf
    │   │   │                                           ├── ES7Config.scala
    │   │   │                                           └── ES7SinkConfigOption.scala
    │   │   │                                       ├── internal
    │   │   │                                           └── ESSinkFunction.scala
    │   │   │                                       ├── sink
    │   │   │                                           └── ES7Sink.scala
    │   │   │                                       └── util
    │   │   │                                           └── ElasticsearchUtils.scala
    │   ├── streampark-flink-connector-hbase
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── apache
    │   │   │           │       └── streampark
    │   │   │           │           └── flink
    │   │   │           │               └── connector
    │   │   │           │                   └── hbase
    │   │   │           │                       ├── bean
    │   │   │           │                           └── HBaseQuery.java
    │   │   │           │                       ├── function
    │   │   │           │                           ├── HBaseQueryFunction.java
    │   │   │           │                           └── HBaseResultFunction.java
    │   │   │           │                       └── source
    │   │   │           │                           └── HBaseJavaSource.java
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── connector
    │   │   │                               └── hbase
    │   │   │                                   ├── internal
    │   │   │                                       ├── HBaseSinkFunction.scala
    │   │   │                                       └── HBaseSourceFunction.scala
    │   │   │                                   ├── request
    │   │   │                                       └── HBaseRequest.scala
    │   │   │                                   ├── sink
    │   │   │                                       ├── HBaseOutputFormat.scala
    │   │   │                                       └── HBaseSink.scala
    │   │   │                                   └── source
    │   │   │                                       └── HBaseSource.scala
    │   ├── streampark-flink-connector-http
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── connector
    │   │   │                               └── http
    │   │   │                                   ├── conf
    │   │   │                                       └── HttpConfigOption.scala
    │   │   │                                   ├── function
    │   │   │                                       └── HttpSinkFunction.scala
    │   │   │                                   ├── internal
    │   │   │                                       ├── HttpSinkWriter.scala
    │   │   │                                       └── HttpWriterTask.scala
    │   │   │                                   └── sink
    │   │   │                                       └── HttpSink.scala
    │   ├── streampark-flink-connector-influx
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── apache
    │   │   │           │       └── streampark
    │   │   │           │           └── flink
    │   │   │           │               └── connector
    │   │   │           │                   └── influx
    │   │   │           │                       └── function
    │   │   │           │                           ├── InfluxFieldFunction.java
    │   │   │           │                           └── InfluxTagFunction.java
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── connector
    │   │   │                               └── influx
    │   │   │                                   ├── bean
    │   │   │                                       └── InfluxEntity.scala
    │   │   │                                   ├── function
    │   │   │                                       └── InfluxFunction.scala
    │   │   │                                   └── sink
    │   │   │                                       ├── InfluxOutputFormat.scala
    │   │   │                                       └── InfluxSink.scala
    │   ├── streampark-flink-connector-jdbc
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── apache
    │   │   │           │       └── streampark
    │   │   │           │           └── flink
    │   │   │           │               └── connector
    │   │   │           │                   └── jdbc
    │   │   │           │                       ├── sink
    │   │   │           │                           └── JdbcJavaSink.java
    │   │   │           │                       └── source
    │   │   │           │                           └── JdbcJavaSource.java
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── connector
    │   │   │                               └── jdbc
    │   │   │                                   ├── bean
    │   │   │                                       └── Transaction.scala
    │   │   │                                   ├── internal
    │   │   │                                       ├── Jdbc2PCSinkFunction.scala
    │   │   │                                       ├── JdbcASyncFunction.scala
    │   │   │                                       ├── JdbcSinkFunction.scala
    │   │   │                                       └── JdbcSourceFunction.scala
    │   │   │                                   ├── request
    │   │   │                                       └── JdbcRequest.scala
    │   │   │                                   ├── sink
    │   │   │                                       └── JdbcSink.scala
    │   │   │                                   └── source
    │   │   │                                       └── JdbcSource.scala
    │   ├── streampark-flink-connector-kafka
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── apache
    │   │   │           │       └── streampark
    │   │   │           │           └── flink
    │   │   │           │               └── connector
    │   │   │           │                   └── kafka
    │   │   │           │                       ├── sink
    │   │   │           │                           └── KafkaJavaSink.java
    │   │   │           │                       └── source
    │   │   │           │                           └── KafkaJavaSource.java
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── connector
    │   │   │                               └── kafka
    │   │   │                                   ├── bean
    │   │   │                                       ├── KafkaEqualityPartitioner.scala
    │   │   │                                       └── KafkaRecord.scala
    │   │   │                                   ├── sink
    │   │   │                                       └── KafkaSink.scala
    │   │   │                                   └── source
    │   │   │                                       └── KafkaSource.scala
    │   ├── streampark-flink-connector-mongo
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── apache
    │   │   │           │       └── streampark
    │   │   │           │           └── flink
    │   │   │           │               └── connector
    │   │   │           │                   └── mongo
    │   │   │           │                       ├── function
    │   │   │           │                           ├── MongoQueryFunction.java
    │   │   │           │                           └── MongoResultFunction.java
    │   │   │           │                       └── source
    │   │   │           │                           └── MongoJavaSource.java
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── connector
    │   │   │                               └── mongo
    │   │   │                                   ├── internal
    │   │   │                                       └── MongoSourceFunction.scala
    │   │   │                                   └── source
    │   │   │                                       └── MongoSource.scala
    │   └── streampark-flink-connector-redis
    │   │   ├── pom.xml
    │   │   └── src
    │   │       └── main
    │   │           └── scala
    │   │               └── org
    │   │                   └── apache
    │   │                       └── streampark
    │   │                           └── flink
    │   │                               └── connector
    │   │                                   └── redis
    │   │                                       ├── bean
    │   │                                           ├── RedisContainer.scala
    │   │                                           ├── RedisMapper.scala
    │   │                                           └── RedisTransaction.scala
    │   │                                       ├── conf
    │   │                                           ├── RedisConfig.scala
    │   │                                           └── RedisSinkConfigOption.scala
    │   │                                       ├── internal
    │   │                                           ├── Redis2PCSinkFunction.scala
    │   │                                           └── RedisSinkFunction.scala
    │   │                                       └── sink
    │   │                                           └── RedisSink.scala
    ├── streampark-flink-core
    │   ├── pom.xml
    │   └── src
    │   │   └── main
    │   │       └── scala
    │   │           └── org
    │   │               └── apache
    │   │                   └── streampark
    │   │                       └── flink
    │   │                           └── core
    │   │                               └── scala
    │   │                                   ├── DataStreamExt.scala
    │   │                                   ├── FlinkStreamTable.scala
    │   │                                   ├── FlinkStreaming.scala
    │   │                                   └── FlinkTable.scala
    ├── streampark-flink-kubernetes
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   └── org
    │   │       │   │   └── apache
    │   │       │   │       └── flink
    │   │       │   │           └── kubernetes
    │   │       │   │               └── kubeclient
    │   │       │   │                   └── resources
    │   │       │   │                       ├── CompKubernetesDeployment.java
    │   │       │   │                       ├── CompatibleKubernetesWatcher.java
    │   │       │   │                       └── SilentWatchCallbackHandler.java
    │   │       └── scala
    │   │       │   └── org
    │   │       │       └── apache
    │   │       │           └── streampark
    │   │       │               └── flink
    │   │       │                   └── kubernetes
    │   │       │                       ├── ChangeEventBus.scala
    │   │       │                       ├── DefaultFlinkK8sWatcher.scala
    │   │       │                       ├── FlinkK8sWatchController.scala
    │   │       │                       ├── FlinkK8sWatcher.scala
    │   │       │                       ├── FlinkK8sWatcherLazyStartAop.scala
    │   │       │                       ├── KubernetesRetriever.scala
    │   │       │                       ├── PodTemplateParser.scala
    │   │       │                       ├── PodTemplateTool.scala
    │   │       │                       ├── TrackConfig.scala
    │   │       │                       ├── enums
    │   │       │                           ├── FlinkJobState.scala
    │   │       │                           └── FlinkK8sDeployMode.scala
    │   │       │                       ├── event
    │   │       │                           ├── BuildInEvent.scala
    │   │       │                           ├── FlinkClusterMetricChangeEvent.scala
    │   │       │                           ├── FlinkJobCheckpointChangeEvent.scala
    │   │       │                           ├── FlinkJobStateEvent.scala
    │   │       │                           └── FlinkJobStatusChangeEvent.scala
    │   │       │                       ├── helper
    │   │       │                           ├── KubernetesDeploymentHelper.scala
    │   │       │                           └── KubernetesWatcherHelper.scala
    │   │       │                       ├── ingress
    │   │       │                           ├── IngressController.scala
    │   │       │                           ├── IngressStrategy.scala
    │   │       │                           ├── IngressStrategyV1.scala
    │   │       │                           └── IngressStrategyV1beta1.scala
    │   │       │                       ├── model
    │   │       │                           ├── CheckpointCV.scala
    │   │       │                           ├── ClusterKey.scala
    │   │       │                           ├── FlinkMetricCV.scala
    │   │       │                           ├── JobStatusCV.scala
    │   │       │                           ├── K8sDeploymentEventCV.scala
    │   │       │                           ├── K8sEventKey.scala
    │   │       │                           ├── K8sPodTemplates.scala
    │   │       │                           ├── SparkK8sPodTemplates.scala
    │   │       │                           └── TrackId.scala
    │   │       │                       └── watcher
    │   │       │                           ├── FlinkCheckpointWatcher.scala
    │   │       │                           ├── FlinkJobStatusWatcher.scala
    │   │       │                           ├── FlinkK8sEventWatcher.scala
    │   │       │                           ├── FlinkMetricsWatcher.scala
    │   │       │                           └── FlinkWatcher.scala
    │   │   └── test
    │   │       ├── resources
    │   │           └── d933fa6c785f0db6dccc6cc05dd43bab.json
    │   │       └── scala
    │   │           └── org
    │   │               └── apache
    │   │                   └── streampark
    │   │                       └── flink
    │   │                           └── kubernetes
    │   │                               ├── FlinkRestJsonTest.scala
    │   │                               └── PodTemplateParserTest.scala
    ├── streampark-flink-packer
    │   ├── pom.xml
    │   └── src
    │   │   ├── main
    │   │       ├── java
    │   │       │   ├── com
    │   │       │   │   └── github
    │   │       │   │   │   └── dockerjava
    │   │       │   │   │       ├── api
    │   │       │   │   │           ├── command
    │   │       │   │   │           │   ├── HackBuildImageResultCallback.java
    │   │       │   │   │           │   ├── HackPullImageResultCallback.java
    │   │       │   │   │           │   └── HackPushImageResultCallback.java
    │   │       │   │   │           └── listener
    │   │       │   │   │           │   ├── BuildImageCallbackListener.java
    │   │       │   │   │           │   ├── PullImageCallbackListener.java
    │   │       │   │   │           │   └── PushImageCallbackListener.java
    │   │       │   │   │       └── core
    │   │       │   │   │           ├── HackDockerClient.java
    │   │       │   │   │           └── command
    │   │       │   │   │               ├── HackBuildImageCmd.java
    │   │       │   │   │               ├── HackPullImageCmd.java
    │   │       │   │   │               └── HackPushImageCmd.java
    │   │       │   └── org
    │   │       │   │   └── apache
    │   │       │   │       └── streampark
    │   │       │   │           └── flink
    │   │       │   │               └── packer
    │   │       │   │                   └── pipeline
    │   │       │   │                       ├── PipelineStatusEnum.java
    │   │       │   │                       ├── PipelineStepStatusEnum.java
    │   │       │   │                       └── PipelineTypeEnum.java
    │   │       └── scala
    │   │       │   └── org
    │   │       │       └── apache
    │   │       │           └── streampark
    │   │       │               └── flink
    │   │       │                   └── packer
    │   │       │                       ├── PackerResourceGC.scala
    │   │       │                       ├── docker
    │   │       │                           ├── DockerConf.scala
    │   │       │                           ├── DockerImageExist.scala
    │   │       │                           ├── DockerRetriever.scala
    │   │       │                           ├── FlinkDockerfileTemplate.scala
    │   │       │                           ├── FlinkDockerfileTemplateTrait.scala
    │   │       │                           ├── FlinkHadoopDockerfileTemplate.scala
    │   │       │                           ├── SparkDockerfileTemplate.scala
    │   │       │                           ├── SparkDockerfileTemplateTrait.scala
    │   │       │                           ├── SparkHadoopDockerfileTemplate.scala
    │   │       │                           └── package.scala
    │   │       │                       ├── maven
    │   │       │                           ├── Artifact.scala
    │   │       │                           ├── DependencyInfo.scala
    │   │       │                           └── MavenTool.scala
    │   │       │                       └── pipeline
    │   │       │                           ├── BuildPipeline.scala
    │   │       │                           ├── BuildRequest.scala
    │   │       │                           ├── BuildResponse.scala
    │   │       │                           ├── DockerProgressWatcher.scala
    │   │       │                           ├── DockerResolveProgress.scala
    │   │       │                           ├── DockerResolveSnapshot.scala
    │   │       │                           ├── PipelineError.scala
    │   │       │                           ├── PipelineSnapshot.scala
    │   │       │                           ├── PipelineWatcher.scala
    │   │       │                           └── impl
    │   │       │                               ├── FlinkK8sApplicationBuildPipeline.scala
    │   │       │                               ├── FlinkK8sSessionBuildPipeline.scala
    │   │       │                               ├── FlinkRemoteBuildPipeline.scala
    │   │       │                               ├── FlinkYarnApplicationBuildPipeline.scala
    │   │       │                               ├── SparkK8sApplicationBuildPipeline.scala
    │   │       │                               └── SparkYarnBuildPipeline.scala
    │   │   └── test
    │   │       └── scala
    │   │           └── org
    │   │               └── apache
    │   │                   └── streampark
    │   │                       └── flink
    │   │                           └── packer
    │   │                               ├── DockerClientTest.scala
    │   │                               ├── FlinkDockerfileTemplateSpec.scala
    │   │                               ├── MavenArtifactSpec.scala
    │   │                               ├── MavenToolSpec.scala
    │   │                               └── package.scala
    ├── streampark-flink-proxy
    │   ├── pom.xml
    │   └── src
    │   │   └── main
    │   │       └── scala
    │   │           └── org
    │   │               └── apache
    │   │                   └── streampark
    │   │                       └── flink
    │   │                           └── proxy
    │   │                               └── FlinkShimsProxy.scala
    ├── streampark-flink-shims
    │   ├── pom.xml
    │   ├── streampark-flink-shims-base
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   ├── main
    │   │   │       ├── java
    │   │   │       │   └── org
    │   │   │       │   │   └── apache
    │   │   │       │   │       └── streampark
    │   │   │       │   │           └── flink
    │   │   │       │   │               └── core
    │   │   │       │   │                   ├── StreamEnvConfigFunction.java
    │   │   │       │   │                   └── TableEnvConfigFunction.java
    │   │   │       └── scala
    │   │   │       │   └── org
    │   │   │       │       └── apache
    │   │   │       │           └── streampark
    │   │   │       │               └── flink
    │   │   │       │                   ├── core
    │   │   │       │                       ├── EnhancerImplicit.scala
    │   │   │       │                       ├── FlinkClientTrait.scala
    │   │   │       │                       ├── FlinkKubernetesClientTrait.scala
    │   │   │       │                       ├── FlinkSqlExecutor.scala
    │   │   │       │                       ├── FlinkSqlValidator.scala
    │   │   │       │                       ├── FlinkStreamTableTrait.scala
    │   │   │       │                       ├── FlinkStreamingInitializer.scala
    │   │   │       │                       ├── FlinkTableInitializer.scala
    │   │   │       │                       ├── FlinkTableTrait.scala
    │   │   │       │                       ├── SqlCommandParser.scala
    │   │   │       │                       ├── StreamEnvConfig.scala
    │   │   │       │                       └── conf
    │   │   │       │                       │   ├── FlinkConfiguration.scala
    │   │   │       │                       │   ├── FlinkRunOption.scala
    │   │   │       │                       │   └── ParameterCli.scala
    │   │   │       │                   └── util
    │   │   │       │                       └── FlinkUtils.scala
    │   │   │   └── test
    │   │   │       └── java
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── RegExpTest.java
    │   ├── streampark-flink-shims-test
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── test
    │   │   │       ├── java
    │   │   │           └── org
    │   │   │           │   └── apache
    │   │   │           │       └── streampark
    │   │   │           │           └── flink
    │   │   │           │               └── core
    │   │   │           │                   └── test
    │   │   │           │                       └── FetchMillisecond.java
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── core
    │   │   │                               └── test
    │   │   │                                   ├── FlinkSqlExecuteFunSuite.scala
    │   │   │                                   └── FlinkSqlValidationFunSuite.scala
    │   ├── streampark-flink-shims_flink-1.12
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── core
    │   │   │                               ├── FlinkClusterClient.scala
    │   │   │                               ├── FlinkKubernetesClient.scala
    │   │   │                               ├── StreamTableContext.scala
    │   │   │                               ├── TableContext.scala
    │   │   │                               └── TableExt.scala
    │   ├── streampark-flink-shims_flink-1.13
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── core
    │   │   │                               ├── FlinkClusterClient.scala
    │   │   │                               ├── FlinkKubernetesClient.scala
    │   │   │                               ├── StreamTableContext.scala
    │   │   │                               ├── TableContext.scala
    │   │   │                               └── TableExt.scala
    │   ├── streampark-flink-shims_flink-1.14
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── core
    │   │   │                               ├── FlinkClusterClient.scala
    │   │   │                               ├── FlinkKubernetesClient.scala
    │   │   │                               ├── StreamTableContext.scala
    │   │   │                               ├── TableContext.scala
    │   │   │                               └── TableExt.scala
    │   ├── streampark-flink-shims_flink-1.15
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── core
    │   │   │                               ├── FlinkClusterClient.scala
    │   │   │                               ├── FlinkKubernetesClient.scala
    │   │   │                               ├── StreamTableContext.scala
    │   │   │                               ├── TableContext.scala
    │   │   │                               └── TableExt.scala
    │   ├── streampark-flink-shims_flink-1.16
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── core
    │   │   │                               ├── FlinkClusterClient.scala
    │   │   │                               ├── FlinkKubernetesClient.scala
    │   │   │                               ├── StreamTableContext.scala
    │   │   │                               ├── TableContext.scala
    │   │   │                               └── TableExt.scala
    │   ├── streampark-flink-shims_flink-1.17
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── core
    │   │   │                               ├── FlinkClusterClient.scala
    │   │   │                               ├── FlinkKubernetesClient.scala
    │   │   │                               ├── StreamTableContext.scala
    │   │   │                               ├── TableContext.scala
    │   │   │                               └── TableExt.scala
    │   ├── streampark-flink-shims_flink-1.18
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── core
    │   │   │                               ├── FlinkClusterClient.scala
    │   │   │                               ├── FlinkKubernetesClient.scala
    │   │   │                               ├── StreamTableContext.scala
    │   │   │                               ├── TableContext.scala
    │   │   │                               └── TableExt.scala
    │   ├── streampark-flink-shims_flink-1.19
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── flink
    │   │   │                           └── core
    │   │   │                               ├── FlinkClusterClient.scala
    │   │   │                               ├── FlinkKubernetesClient.scala
    │   │   │                               ├── StreamTableContext.scala
    │   │   │                               ├── TableContext.scala
    │   │   │                               └── TableExt.scala
    │   └── streampark-flink-shims_flink-1.20
    │   │   ├── pom.xml
    │   │   └── src
    │   │       └── main
    │   │           └── scala
    │   │               └── org
    │   │                   └── apache
    │   │                       └── streampark
    │   │                           └── flink
    │   │                               └── core
    │   │                                   ├── FlinkClusterClient.scala
    │   │                                   ├── FlinkKubernetesClient.scala
    │   │                                   ├── StreamTableContext.scala
    │   │                                   ├── TableContext.scala
    │   │                                   └── TableExt.scala
    ├── streampark-flink-sqlclient
    │   ├── pom.xml
    │   └── src
    │   │   └── main
    │   │       └── scala
    │   │           └── org
    │   │               └── apache
    │   │                   └── streampark
    │   │                       └── flink
    │   │                           └── cli
    │   │                               └── SqlClient.scala
    └── streampark-flink-udf
    │   ├── pom.xml
    │   └── src
    │       └── main
    │           └── java
    │               └── org
    │                   └── apache
    │                       └── streampark
    │                           └── flink
    │                               └── udf
    │                                   ├── DateFormat.java
    │                                   ├── HashCode.java
    │                                   └── Length.java
├── streampark-shaded
    ├── pom.xml
    ├── streampark-shaded-jackson
    │   └── pom.xml
    └── streampark-shaded-slf4j
    │   └── pom.xml
├── streampark-spark
    ├── pom.xml
    ├── streampark-spark-cli
    │   ├── create_app.sh
    │   ├── create_conf.sh
    │   ├── default.properties
    │   └── pom.xml
    ├── streampark-spark-client
    │   ├── pom.xml
    │   ├── streampark-spark-client-api
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── spark
    │   │   │                           └── client
    │   │   │                               ├── SparkClient.scala
    │   │   │                               ├── bean
    │   │   │                                   ├── CancelRequest.scala
    │   │   │                                   ├── CancelResponse.scala
    │   │   │                                   ├── SubmitRequest.scala
    │   │   │                                   └── SubmitResponse.scala
    │   │   │                               ├── conf
    │   │   │                                   └── SparkConfiguration.scala
    │   │   │                               └── proxy
    │   │   │                                   └── SparkShimsProxy.scala
    │   └── streampark-spark-client-core
    │   │   ├── pom.xml
    │   │   └── src
    │   │       └── main
    │   │           └── scala
    │   │               └── org
    │   │                   └── apache
    │   │                       └── streampark
    │   │                           └── spark
    │   │                               └── client
    │   │                                   ├── SparkClientEndpoint.scala
    │   │                                   ├── impl
    │   │                                       └── YarnClient.scala
    │   │                                   └── trait
    │   │                                       └── SparkClientTrait.scala
    ├── streampark-spark-connector
    │   ├── pom.xml
    │   ├── streampark-spark-connector-base
    │   │   ├── pom.xml
    │   │   └── src
    │   │   │   └── main
    │   │   │       └── scala
    │   │   │           └── org
    │   │   │               └── apache
    │   │   │                   └── streampark
    │   │   │                       └── spark
    │   │   │                           └── connector
    │   │   │                               ├── sink
    │   │   │                                   ├── ShowSink.scala
    │   │   │                                   └── Sink.scala
    │   │   │                               └── source
    │   │   │                                   └── Source.scala
    │   └── streampark-spark-connector-kafka
    │   │   ├── pom.xml
    │   │   └── src
    │   │       └── main
    │   │           └── scala
    │   │               └── org
    │   │                   └── apache
    │   │                       └── streampark
    │   │                           └── spark
    │   │                               └── connector
    │   │                                   └── kafka
    │   │                                       ├── offset
    │   │                                           ├── DefaultOffset.scala
    │   │                                           ├── HBaseOffset.scala
    │   │                                           ├── KafkaClient.scala
    │   │                                           ├── MySQLOffset.scala
    │   │                                           ├── Offset.scala
    │   │                                           └── RedisOffset.scala
    │   │                                       ├── sink
    │   │                                           └── KafkaSink.scala
    │   │                                       ├── source
    │   │                                           └── KafkaSource.scala
    │   │                                       └── writer
    │   │                                           ├── DStreamKafkaWriter.scala
    │   │                                           ├── IterKafkaWriter.scala
    │   │                                           ├── KafkaWriter.scala
    │   │                                           ├── RDDKafkaWriter.scala
    │   │                                           └── SimpleKafkaWriter.scala
    ├── streampark-spark-core
    │   ├── pom.xml
    │   └── src
    │   │   └── main
    │   │       └── scala
    │   │           └── org
    │   │               └── apache
    │   │                   └── streampark
    │   │                       └── spark
    │   │                           └── core
    │   │                               ├── Spark.scala
    │   │                               ├── SparkBatch.scala
    │   │                               ├── SparkStreaming.scala
    │   │                               ├── serializable
    │   │                                   ├── MultipleAvroOutputsFormat.scala
    │   │                                   ├── MultipleOutputer.scala
    │   │                                   ├── MultipleOutputsFormat.scala
    │   │                                   ├── MultipleTextOutputsFormat.scala
    │   │                                   ├── SerializationExtensions.scala
    │   │                                   └── TextOutputFormat.scala
    │   │                               └── util
    │   │                                   ├── ParameterTool.java
    │   │                                   ├── SQLContextUtil.scala
    │   │                                   ├── SparkSqlValidator.scala
    │   │                                   └── SqlCommandParser.scala
    └── streampark-spark-sqlclient
    │   ├── pom.xml
    │   └── src
    │       └── main
    │           └── scala
    │               └── org
    │                   └── apache
    │                       └── streampark
    │                           └── spark
    │                               └── cli
    │                                   └── SqlClient.scala
└── tools
    ├── checkstyle
        ├── .scalafmt.conf
        ├── checkstyle.xml
        ├── copyright.txt
        ├── scalastyle-config.xml
        ├── spotless_streampark_formatter.xml
        └── suppressions.xml
    └── dependencies
        ├── check-LICENSE.sh
        └── known-dependencies.txt


/.dlc.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "ignorePatterns": [
 3 |     {
 4 |       "pattern": "^http://localhost"
 5 |     },
 6 |     {
 7 |       "pattern": "^https://mvnrepository.com"
 8 |     },
 9 |     {
10 |       "pattern": "^https://img.shields.io"
11 |     },
12 |     {
13 |       "pattern": "^https://tokei.rs"
14 |     },
15 |     {
16 |       "pattern": "^https://json.org/"
17 |     },
18 |     {
19 |       "pattern": "^https://opencollective.com"
20 |     },
21 |     {
22 |       "pattern": "^https://twitter.com*"
23 |     },
24 |     {
25 |       "pattern": "^/"
26 |     }
27 |   ],
28 |   "timeout": "30s",
29 |   "retryOn429": true,
30 |   "retryCount": 10,
31 |   "fallbackRetryDelay": "1000s",
32 |   "aliveStatusCodes": [
33 |     0,
34 |     200,
35 |     401,
36 |     403
37 |   ]
38 | }
39 | 


--------------------------------------------------------------------------------
/.git-blame-ignore-revs:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #    http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 
18 | # PR-943: Improve checkstyle and add import package rules
19 | 243d840fc5f0f46020ca3fe584606870b0b821bb
20 | # PR-2213: added spotless-plugin and checkstyle improvement
21 | 39cc162be89fd861a88d3a385ee9e8db7b9564d8
22 | # PR-2625: [Improve] spotless plugin support scala code format
23 | dec2af903f9381e4875bd885edc8e9d5d7720c9b
24 | 


--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #    http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 
18 | * text eol=lf
19 | *.jpg -text
20 | *.jpeg -text
21 | *.png -text
22 | *.eot -text
23 | *.ttf -text
24 | 


--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #     http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 
18 | blank_issues_enabled: false
19 | contact_links:
20 |   - name: Ask a question or get support
21 |     url: https://github.com/apache/streampark/discussions/
22 |     about: Ask a question or request support for StreamPark
23 | 


--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
 1 | # Licensed to Apache Software Foundation (ASF) under one or more contributor
 2 | # license agreements. See the NOTICE file distributed with
 3 | # this work for additional information regarding copyright
 4 | # ownership. Apache Software Foundation (ASF) licenses this file to you under
 5 | # the Apache License, Version 2.0 (the "License"); you may
 6 | # not use this file except in compliance with the License.
 7 | # You may obtain a copy of the License at
 8 | #
 9 | #     http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied.  See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 | 
18 | [submodule ".github/actions/workflow-telemetry-action"]
19 | 	path = .github/actions/workflow-telemetry-action
20 | 	url = https://github.com/catchpoint/workflow-telemetry-action
21 | 


--------------------------------------------------------------------------------
/.idea/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/.idea/icon.png


--------------------------------------------------------------------------------
/NOTICE:
--------------------------------------------------------------------------------
 1 | Apache StreamPark
 2 | Copyright 2022-2025 The Apache Software Foundation
 3 | 
 4 | This product includes software developed at
 5 | The Apache Software Foundation (http://www.apache.org/).
 6 | 
 7 | -----------------------------------------------------------------------
 8 | This product contains code from the Apache Maven Wrapper Project:
 9 | 
10 | Apache Maven Wrapper
11 | Copyright 2013-2022 The Apache Software Foundation
12 | 
13 | The original idea and initial implementation of the maven-wrapper module is derived
14 | from the Gradle Wrapper which was written originally by Hans Dockter and Adam Murdoch.
15 | Copyright 2007 the original author or authors.
16 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/NOTICE:
--------------------------------------------------------------------------------
 1 | Apache StreamPark
 2 | Copyright 2022-2025 The Apache Software Foundation
 3 | 
 4 | This product includes software developed at
 5 | The Apache Software Foundation (http://www.apache.org/).
 6 | 
 7 | -----------------------------------------------------------------------
 8 | This product contains code from the Apache Maven Wrapper Project:
 9 | 
10 | Apache Maven Wrapper
11 | Copyright 2013-2022 The Apache Software Foundation
12 | 
13 | The original idea and initial implementation of the maven-wrapper module is derived
14 | from the Gradle Wrapper which was written originally by Hans Dockter and Adam Murdoch.
15 | Copyright 2007 the original author or authors.
16 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-aopalliance-aopalliance.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Public Domain, URL: , Distribution: , Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-ch.qos.logback-logback-classic.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-v10.html, http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-ch.qos.logback-logback-core.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-v10.html, http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.auth0-java-jwt.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The MIT License (MIT), URL: https://raw.githubusercontent.com/auth0/java-jwt/master/LICENSE, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.beachape-enumeratum-2.12.txt:
--------------------------------------------------------------------------------
1 | License: {Name: MIT, URL: http://opensource.org/licenses/MIT, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.beachape-enumeratum-macros-2.12.txt:
--------------------------------------------------------------------------------
1 | License: {Name: MIT, URL: http://opensource.org/licenses/MIT, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.esotericsoftware.kryo-kryo.txt:
--------------------------------------------------------------------------------
1 | http://www.opensource.org/licenses/bsd-license.php


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.esotericsoftware.minlog-minlog.txt:
--------------------------------------------------------------------------------
1 | License: {Name: New BSD License, URL: http://www.opensource.org/licenses/bsd-license.php, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.github.luben-zstd-jni.txt:
--------------------------------------------------------------------------------
1 | https://opensource.org/licenses/BSD-2-Clause;description=BSD 2-Clause License


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.google.protobuf-protobuf-java.txt:
--------------------------------------------------------------------------------
1 | http://www.opensource.org/licenses/bsd-license.php


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.h2database-h2.txt:
--------------------------------------------------------------------------------
1 | https://h2database.com/html/license.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.jcraft-jsch.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Revised BSD, URL: http://www.jcraft.com/jsch/LICENSE.txt, Distribution: , Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.jcraft-jzlib.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Revised BSD, URL: http://www.jcraft.com/jzlib/LICENSE.txt, Distribution: , Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.microsoft.sqlserver-mssql-jdbc.txt:
--------------------------------------------------------------------------------
1 | http://www.opensource.org/licenses/mit-license.php


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.sun.jersey-jersey-client.txt:
--------------------------------------------------------------------------------
1 | http://glassfish.java.net/public/CDDL+GPL_1_1.html, http://glassfish.java.net/public/CDDL+GPL_1_1.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.sun.jersey-jersey-core.txt:
--------------------------------------------------------------------------------
1 | http://glassfish.java.net/public/CDDL+GPL_1_1.html, http://glassfish.java.net/public/CDDL+GPL_1_1.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.sun.jersey-jersey-json.txt:
--------------------------------------------------------------------------------
1 | http://glassfish.java.net/public/CDDL+GPL_1_1.html, http://glassfish.java.net/public/CDDL+GPL_1_1.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.sun.jersey-jersey-server.txt:
--------------------------------------------------------------------------------
1 | http://glassfish.java.net/public/CDDL+GPL_1_1.html, http://glassfish.java.net/public/CDDL+GPL_1_1.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.sun.mail-javax.mail.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/dist-material/release-docs/licenses/license-com.sun.mail-javax.mail.txt


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-com.sun.xml.bind-jaxb-impl.txt:
--------------------------------------------------------------------------------
1 | License: {Name: CDDL 1.1, URL: https://glassfish.java.net/public/CDDL+GPL_1_1.html, Distribution: repo, Comments: , }
2 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-io.opentracing-opentracing-api.txt:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 |     Copyright 2016-2019 The OpenTracing Authors
 4 | 
 5 |     Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 6 |     in compliance with the License. You may obtain a copy of the License at
 7 | 
 8 |     http://www.apache.org/licenses/LICENSE-2.0
 9 | 
10 |     Unless required by applicable law or agreed to in writing, software distributed under the License
11 |     is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 |     or implied. See the License for the specific language governing permissions and limitations under
13 |     the License.
14 | 
15 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-io.opentracing-opentracing-noop.txt:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 |     Copyright 2016-2019 The OpenTracing Authors
 4 | 
 5 |     Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 6 |     in compliance with the License. You may obtain a copy of the License at
 7 | 
 8 |     http://www.apache.org/licenses/LICENSE-2.0
 9 | 
10 |     Unless required by applicable law or agreed to in writing, software distributed under the License
11 |     is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 |     or implied. See the License for the specific language governing permissions and limitations under
13 |     the License.
14 | 
15 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-io.opentracing-opentracing-util.txt:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 |     Copyright 2016-2019 The OpenTracing Authors
 4 | 
 5 |     Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 6 |     in compliance with the License. You may obtain a copy of the License at
 7 | 
 8 |     http://www.apache.org/licenses/LICENSE-2.0
 9 | 
10 |     Unless required by applicable law or agreed to in writing, software distributed under the License
11 |     is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12 |     or implied. See the License for the specific language governing permissions and limitations under
13 |     the License.
14 | 
15 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-jakarta.servlet-jakarta.servlet-api.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-2.0, https://www.gnu.org/software/classpath/license.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-javax.activation-activation.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/dist-material/release-docs/licenses/license-javax.activation-activation.txt


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-javax.activation-javax.activation-api.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/dist-material/release-docs/licenses/license-javax.activation-javax.activation-api.txt


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-javax.mail-mail.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/dist-material/release-docs/licenses/license-javax.mail-mail.txt


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-javax.xml.stream-stax-api.txt:
--------------------------------------------------------------------------------
1 | License: {Name: GNU General Public Library, URL: http://www.gnu.org/licenses/gpl.txt, Distribution: repo, Comments: , }
2 | License: {Name: COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0, URL: http://www.sun.com/cddl/cddl.html, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-net.sf.jopt-simple-jopt-simple.txt:
--------------------------------------------------------------------------------
1 | http://www.opensource.org/licenses/mit-license.php


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.aspectj-aspectjweaver.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Eclipse Public License - v 2.0, URL: https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.bouncycastle-bcpkix-jdk15on.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Bouncy Castle Licence, URL: https://www.bouncycastle.org/licence.html, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.bouncycastle-bcprov-jdk15on.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Bouncy Castle Licence, URL: https://www.bouncycastle.org/licence.html, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.eclipse.aether-aether-api.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-v10.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.eclipse.aether-aether-connector-basic.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-v10.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.eclipse.aether-aether-impl.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-v10.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.eclipse.aether-aether-spi.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-v10.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.eclipse.aether-aether-transport-file.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-v10.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.eclipse.aether-aether-transport-http.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-v10.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.eclipse.aether-aether-util.txt:
--------------------------------------------------------------------------------
1 | http://www.eclipse.org/legal/epl-v10.html


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.fusesource.leveldbjni-leveldbjni-all.txt:
--------------------------------------------------------------------------------
1 | http://www.opensource.org/licenses/BSD-3-Clause


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.hdrhistogram-HdrHistogram.txt:
--------------------------------------------------------------------------------
1 | http://creativecommons.org/publicdomain/zero/1.0/, https://opensource.org/licenses/BSD-2-Clause


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.influxdb-influxdb-java.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The MIT License (MIT), URL: http://www.opensource.org/licenses/mit-license.php, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.jruby.jcodings-jcodings.txt:
--------------------------------------------------------------------------------
1 | License: {Name: MIT License, URL: http://www.opensource.org/licenses/mit-license.php, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.jruby.joni-joni.txt:
--------------------------------------------------------------------------------
1 | License: {Name: MIT License, URL: http://www.opensource.org/licenses/mit-license.php, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.latencyutils-LatencyUtils.txt:
--------------------------------------------------------------------------------
1 | License: {Name: Public Domain, per Creative Commons CC0, URL: http://creativecommons.org/publicdomain/zero/1.0/, Distribution: , Comments: 
2 |                 * This code was Written by Gil Tene of Azul Systems, and released to the
3 |                 * public domain, as explained at http://creativecommons.org/publicdomain/zero/1.0/
4 |             , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-org.reactivestreams-reactive-streams.txt:
--------------------------------------------------------------------------------
1 | License: {Name: CC0, URL: http://creativecommons.org/publicdomain/zero/1.0/, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-redis.clients-jedis.txt:
--------------------------------------------------------------------------------
1 | http://github.com/xetorthio/jedis/raw/master/LICENSE.txt


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/license-xmlenc-xmlenc.txt:
--------------------------------------------------------------------------------
1 | License: {Name: The BSD License, URL: http://www.opensource.org/licenses/bsd-license.php, Distribution: repo, Comments: , }


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license--ctrl-tinycolor.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) Scott Cooper <scttcper@gmail.com>
2 | 
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 | 
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 | 
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license--vue-compiler-sfc-node-modules-magic-string.txt:
--------------------------------------------------------------------------------
1 | Copyright 2018 Rich Harris
2 | 
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 | 
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 | 
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license--vue-reactivity-transform-node-modules-magic-string.txt:
--------------------------------------------------------------------------------
1 | Copyright 2018 Rich Harris
2 | 
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 | 
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 | 
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license-async-validator.txt:
--------------------------------------------------------------------------------
 1 | The MIT License (MIT)
 2 | 
 3 | Copyright (c) 2014-present yiminghe
 4 | 
 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 6 | 
 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 8 | 
 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license-axios.txt:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2014-present Matt Zabriskie & Collaborators
2 | 
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 | 
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 | 
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license-core-js.txt:
--------------------------------------------------------------------------------
 1 | Copyright (c) 2014-2023 Denis Pushkarev
 2 | 
 3 | Permission is hereby granted, free of charge, to any person obtaining a copy
 4 | of this software and associated documentation files (the "Software"), to deal
 5 | in the Software without restriction, including without limitation the rights
 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 7 | copies of the Software, and to permit persons to whom the Software is
 8 | furnished to do so, subject to the following conditions:
 9 | 
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 | 
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license-csstype.txt:
--------------------------------------------------------------------------------
 1 | Copyright (c) 2017-2018 Fredrik Nicol
 2 | 
 3 | Permission is hereby granted, free of charge, to any person obtaining a copy
 4 | of this software and associated documentation files (the "Software"), to deal
 5 | in the Software without restriction, including without limitation the rights
 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 7 | copies of the Software, and to permit persons to whom the Software is
 8 | furnished to do so, subject to the following conditions:
 9 | 
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 | 
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | SOFTWARE.
20 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license-dom-align.txt:
--------------------------------------------------------------------------------
 1 | The MIT License (MIT)
 2 | 
 3 | Copyright (c) 2014-present yiminghe
 4 | 
 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 6 | 
 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 8 | 
 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license-estree-walker.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015-20 [these people](https://github.com/Rich-Harris/estree-walker/graphs/contributors)
2 | 
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 | 
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 | 
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license-function-bind.txt:
--------------------------------------------------------------------------------
 1 | Copyright (c) 2013 Raynos.
 2 | 
 3 | Permission is hereby granted, free of charge, to any person obtaining a copy
 4 | of this software and associated documentation files (the "Software"), to deal
 5 | in the Software without restriction, including without limitation the rights
 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 7 | copies of the Software, and to permit persons to whom the Software is
 8 | furnished to do so, subject to the following conditions:
 9 | 
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 | 
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 | 
21 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license-nprogress.txt:
--------------------------------------------------------------------------------
 1 | Copyright (c) 2013-2014 Rico Sta. Cruz
 2 | 
 3 | Permission is hereby granted, free of charge, to any person obtaining a copy
 4 | of this software and associated documentation files (the "Software"), to deal
 5 | in the Software without restriction, including without limitation the rights
 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 7 | copies of the Software, and to permit persons to whom the Software is
 8 | furnished to do so, subject to the following conditions:
 9 | 
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 | 
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 | 


--------------------------------------------------------------------------------
/dist-material/release-docs/licenses/ui-licenses/license-picocolors.txt:
--------------------------------------------------------------------------------
 1 | ISC License
 2 | 
 3 | Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov
 4 | 
 5 | Permission to use, copy, modify, and/or distribute this software for any
 6 | purpose with or without fee is hereby granted, provided that the above
 7 | copyright notice and this permission notice appear in all copies.
 8 | 
 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 | 


--------------------------------------------------------------------------------
/streampark-common/src/main/java/org/apache/streampark/common/enums/CatalogType.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.common.enums;
19 | 
20 | /** catalog type */
21 | public enum CatalogType {
22 |     MYSQL,
23 |     PGSQL,
24 |     ORACLE,
25 |     JDBC,
26 |     HIVE,
27 |     PAIMON,
28 |     CUSTOM
29 | }
30 | 


--------------------------------------------------------------------------------
/streampark-common/src/main/scala/org/apache/streampark/common/enums/ApiType.scala:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.common.enums
19 | 
20 | object ApiType extends Enumeration {
21 |   type ApiType = Value
22 |   val JAVA, SCALA = Value
23 | }
24 | 


--------------------------------------------------------------------------------
/streampark-common/src/main/scala/org/apache/streampark/common/enums/PlannerType.scala:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.common.enums
19 | 
20 | object PlannerType extends Enumeration {
21 |   type PlannerType = Value
22 |   val BLINK, OLD, ANY = Value
23 | }
24 | 


--------------------------------------------------------------------------------
/streampark-common/src/main/scala/org/apache/streampark/common/enums/TableMode.scala:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.common.enums
19 | 
20 | object TableMode extends Enumeration {
21 |   type TableMode = Value
22 |   val BATCH, STREAMING = Value
23 | }
24 | 


--------------------------------------------------------------------------------
/streampark-common/src/test/resources/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-common/src/test/resources/.gitkeep


--------------------------------------------------------------------------------
/streampark-console/streampark-console-service/.gitignore:
--------------------------------------------------------------------------------
1 | # War
2 | 
3 | static/


--------------------------------------------------------------------------------
/streampark-console/streampark-console-service/src/main/assembly/client/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-console/streampark-console-service/src/main/assembly/client/.gitkeep


--------------------------------------------------------------------------------
/streampark-console/streampark-console-service/src/main/assembly/conf/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-console/streampark-console-service/src/main/assembly/conf/.gitkeep


--------------------------------------------------------------------------------
/streampark-console/streampark-console-service/src/main/assembly/logs/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-console/streampark-console-service/src/main/assembly/logs/.gitkeep


--------------------------------------------------------------------------------
/streampark-console/streampark-console-service/src/main/assembly/plugins/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-console/streampark-console-service/src/main/assembly/plugins/.gitkeep


--------------------------------------------------------------------------------
/streampark-console/streampark-console-service/src/main/assembly/python/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-console/streampark-console-service/src/main/assembly/python/.gitkeep


--------------------------------------------------------------------------------
/streampark-console/streampark-console-service/src/main/assembly/script/upgrade/pgsql/2.1.2.sql:
--------------------------------------------------------------------------------
 1 | /*
 2 | * Licensed to the Apache Software Foundation (ASF) under one or more
 3 | * contributor license agreements.  See the NOTICE file distributed with
 4 | * this work for additional information regarding copyright ownership.
 5 | * The ASF licenses this file to You under the Apache License, Version 2.0
 6 | * (the "License"); you may not use this file except in compliance with
 7 | * the License.  You may obtain a copy of the License at
 8 | *
 9 | *    http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 | 
18 | alter table "public"."t_flink_app"
19 |     add column "dependency" text collate "pg_catalog"."default";
20 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-service/src/main/assembly/temp/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-console/streampark-console-service/src/main/assembly/temp/.gitkeep


--------------------------------------------------------------------------------
/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SqlCompleteService.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.console.core.service;
19 | 
20 | import java.util.List;
21 | 
22 | public interface SqlCompleteService {
23 | 
24 |     List<String> getComplete(String sql);
25 | }
26 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/.env:
--------------------------------------------------------------------------------
 1 | # Licensed to the Apache Software Foundation (ASF) under one or more
 2 | # contributor license agreements.  See the NOTICE file distributed with
 3 | # this work for additional information regarding copyright ownership.
 4 | # The ASF licenses this file to You under the Apache License, Version 2.0
 5 | # (the "License"); you may not use this file except in compliance with
 6 | # the License.  You may obtain a copy of the License at
 7 | #
 8 | #    http://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | 
16 | # port
17 | VITE_PORT=10001
18 | 
19 | # spa-title
20 | VITE_GLOB_APP_TITLE="Apache StreamPark"
21 | 
22 | # spa shortname
23 | VITE_GLOB_APP_SHORT_NAME="StreamPark"
24 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/.eslintignore:
--------------------------------------------------------------------------------
 1 | # Licensed to the Apache Software Foundation (ASF) under one or more
 2 | # contributor license agreements.  See the NOTICE file distributed with
 3 | # this work for additional information regarding copyright ownership.
 4 | # The ASF licenses this file to You under the Apache License, Version 2.0
 5 | # (the "License"); you may not use this file except in compliance with
 6 | # the License.  You may obtain a copy of the License at
 7 | #
 8 | #    http://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | 
16 | *.sh
17 | node_modules
18 | *.md
19 | *.woff
20 | *.ttf
21 | .vscode
22 | .idea
23 | dist
24 | /public
25 | /docs
26 | .husky
27 | .local
28 | /bin
29 | Dockerfile
30 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/.gitignore:
--------------------------------------------------------------------------------
 1 | node_modules
 2 | .DS_Store
 3 | dist
 4 | .cache
 5 | 
 6 | .local
 7 | # local env files
 8 | .env.local
 9 | .env.*.local
10 | .eslintcache
11 | 
12 | # Log files
13 | npm-debug.log*
14 | yarn-debug.log*
15 | yarn-error.log*
16 | pnpm-debug.log*
17 | 
18 | # Editor directories and files
19 | .idea
20 | # .vscode
21 | *.suo
22 | *.ntvs*
23 | *.njsproj
24 | *.sln
25 | *.sw?
26 | 
27 | package-lock.json
28 | pnpm-lock.yaml
29 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/.npmrc:
--------------------------------------------------------------------------------
 1 | # Licensed to the Apache Software Foundation (ASF) under one or more
 2 | # contributor license agreements.  See the NOTICE file distributed with
 3 | # this work for additional information regarding copyright ownership.
 4 | # The ASF licenses this file to You under the Apache License, Version 2.0
 5 | # (the "License"); you may not use this file except in compliance with
 6 | # the License.  You may obtain a copy of the License at
 7 | #
 8 | #    http://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | 
16 | package-manager-strict=false
17 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/.prettierignore:
--------------------------------------------------------------------------------
 1 | # Licensed to the Apache Software Foundation (ASF) under one or more
 2 | # contributor license agreements.  See the NOTICE file distributed with
 3 | # this work for additional information regarding copyright ownership.
 4 | # The ASF licenses this file to You under the Apache License, Version 2.0
 5 | # (the "License"); you may not use this file except in compliance with
 6 | # the License.  You may obtain a copy of the License at
 7 | #
 8 | #    http://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | 
16 | /dist/*
17 | .local
18 | .output.js
19 | /node_modules/**
20 | 
21 | **/*.svg
22 | **/*.sh
23 | 
24 | /public/*
25 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/.stylelintignore:
--------------------------------------------------------------------------------
 1 | # Licensed to the Apache Software Foundation (ASF) under one or more
 2 | # contributor license agreements.  See the NOTICE file distributed with
 3 | # this work for additional information regarding copyright ownership.
 4 | # The ASF licenses this file to You under the Apache License, Version 2.0
 5 | # (the "License"); you may not use this file except in compliance with
 6 | # the License.  You may obtain a copy of the License at
 7 | #
 8 | #    http://www.apache.org/licenses/LICENSE-2.0
 9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | /dist/*
16 | /public/*
17 | public/*
18 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/build/constant.ts:
--------------------------------------------------------------------------------
1 | /**
2 |  * The name of the configuration file entered in the production environment
3 |  */
4 | export const GLOB_CONFIG_FILE_NAME = '_app.config.js';
5 | 
6 | export const OUTPUT_DIR = 'dist';
7 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/build/getConfigFileName.ts:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Get the configuration file variable name
 3 |  * @param env
 4 |  */
 5 | export const getConfigFileName = (env: Record<string, any>) => {
 6 |   return `__PRODUCTION__${env.VITE_GLOB_APP_SHORT_NAME || '__APP'}__CONF__`
 7 |     .toUpperCase()
 8 |     .replace(/\s/g, '');
 9 | };
10 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/build/vite/plugin/compress.ts:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Used to package and output gzip. Note that this does not work properly in Vite, the specific reason is still being investigated
 3 |  * https://github.com/anncwb/vite-plugin-compression
 4 |  */
 5 | import type { PluginOption } from 'vite';
 6 | import compressPlugin from 'vite-plugin-compression';
 7 | 
 8 | export function configCompressPlugin(
 9 |   compress: 'gzip' | 'brotli' | 'none',
10 |   deleteOriginFile = false,
11 | ): PluginOption | PluginOption[] {
12 |   const compressList = compress.split(',');
13 | 
14 |   const plugins: PluginOption[] = [];
15 | 
16 |   if (compressList.includes('gzip')) {
17 |     plugins.push(
18 |       compressPlugin({
19 |         ext: '.gz',
20 |         deleteOriginFile,
21 |       }),
22 |     );
23 |   }
24 | 
25 |   if (compressList.includes('brotli')) {
26 |     plugins.push(
27 |       compressPlugin({
28 |         ext: '.br',
29 |         algorithm: 'brotliCompress',
30 |         deleteOriginFile,
31 |       }),
32 |     );
33 |   }
34 |   return plugins;
35 | }
36 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/build/vite/plugin/html.ts:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Plugin to minimize and use ejs template syntax in index.html.
 3 |  * https://github.com/anncwb/vite-plugin-html
 4 |  */
 5 | import type { PluginOption } from 'vite';
 6 | import { createHtmlPlugin } from 'vite-plugin-html-transform';
 7 | 
 8 | export function configHtmlPlugin(isBuild: boolean) {
 9 |   const htmlPlugin: PluginOption[] = createHtmlPlugin({
10 |     minify: isBuild,
11 |   });
12 |   return htmlPlugin;
13 | }
14 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/build/vite/plugin/imagemin.ts:
--------------------------------------------------------------------------------
 1 | // Image resource files used to compress the output of the production environment
 2 | // https://github.com/anncwb/vite-plugin-imagemin
 3 | import viteImagemin from 'vite-plugin-imagemin';
 4 | 
 5 | export function configImageminPlugin() {
 6 |   const plugin = viteImagemin({
 7 |     gifsicle: {
 8 |       optimizationLevel: 7,
 9 |       interlaced: false,
10 |     },
11 |     optipng: {
12 |       optimizationLevel: 7,
13 |     },
14 |     mozjpeg: {
15 |       quality: 20,
16 |     },
17 |     pngquant: {
18 |       quality: [0.8, 0.9],
19 |       speed: 4,
20 |     },
21 |     svgo: {
22 |       plugins: [
23 |         {
24 |           name: 'removeViewBox',
25 |         },
26 |         {
27 |           name: 'removeEmptyAttrs',
28 |           active: false,
29 |         },
30 |       ],
31 |     },
32 |   });
33 |   return plugin;
34 | }
35 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/build/vite/plugin/svgSprite.ts:
--------------------------------------------------------------------------------
 1 | /**
 2 |  *  Vite Plugin for fast creating SVG sprites.
 3 |  * https://github.com/anncwb/vite-plugin-svg-icons
 4 |  */
 5 | 
 6 | import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
 7 | import path from 'path';
 8 | 
 9 | export function configSvgIconsPlugin(isBuild: boolean) {
10 |   const svgIconsPlugin = createSvgIconsPlugin({
11 |     iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
12 |     svgoOptions: isBuild,
13 |     // default
14 |     symbolId: 'icon-[dir]-[name]',
15 |   });
16 |   return svgIconsPlugin;
17 | }
18 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/build/vite/plugin/visualizer.ts:
--------------------------------------------------------------------------------
 1 | import visualizer from 'rollup-plugin-visualizer';
 2 | import { isReportMode } from '../../utils';
 3 | 
 4 | export function configVisualizerConfig() {
 5 |   if (isReportMode()) {
 6 |     return visualizer({
 7 |       filename: './node_modules/.cache/visualizer/stats.html',
 8 |       open: true,
 9 |       gzipSize: true,
10 |       brotliSize: true,
11 |     }) as Plugin;
12 |   }
13 |   return [];
14 | }
15 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/build/vite/proxy.ts:
--------------------------------------------------------------------------------
 1 | import type { ProxyOptions } from 'vite';
 2 | 
 3 | type ProxyItem = [string, string];
 4 | 
 5 | type ProxyList = ProxyItem[];
 6 | 
 7 | type ProxyTargetList = Record<string, ProxyOptions>;
 8 | 
 9 | const httpsRE = /^https:\/\//;
10 | 
11 | /**
12 |  * Generate proxy
13 |  * @param list
14 |  */
15 | export function createProxy(list: ProxyList = []) {
16 |   const ret: ProxyTargetList = {};
17 |   for (const [prefix, target] of list) {
18 |     const isHttps = httpsRE.test(target);
19 | 
20 |     // https://github.com/http-party/node-http-proxy#options
21 |     ret[prefix] = {
22 |       target: target,
23 |       changeOrigin: true,
24 |       ws: true,
25 |       rewrite: (path) => path.replace(new RegExp(`^${prefix}`), ''),
26 |       // https is require secure=false
27 |       ...(isHttps ? { secure: false } : {}),
28 |     };
29 |   }
30 |   return ret;
31 | }
32 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/build/vite/utils/hash.ts:
--------------------------------------------------------------------------------
1 | import { createHash } from 'node:crypto';
2 | 
3 | function createContentHash(content: string, hashLSize = 12) {
4 |   const hash = createHash('sha256').update(content);
5 |   return hash.digest('hex').slice(0, hashLSize);
6 | }
7 | 
8 | export { createContentHash };
9 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/postcss.config.js:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | module.exports = {
18 |   plugins: {
19 |     autoprefixer: {},
20 |   },
21 | };
22 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/prettier.config.js:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | module.exports = {
18 |   printWidth: 100,
19 |   semi: true,
20 |   vueIndentScriptAndStyle: true,
21 |   singleQuote: true,
22 |   trailingComma: 'all',
23 |   proseWrap: 'never',
24 |   htmlWhitespaceSensitivity: 'strict',
25 |   endOfLine: 'auto',
26 | };
27 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-console/streampark-console-webapp/public/favicon.ico


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/App.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <ConfigProvider :locale="getAntdLocale">
 3 |     <AppProvider>
 4 |       <RouterView />
 5 |     </AppProvider>
 6 |   </ConfigProvider>
 7 | </template>
 8 | 
 9 | <script lang="ts" setup>
10 |   import { ConfigProvider } from 'ant-design-vue';
11 |   import { AppProvider } from '/@/components/Application';
12 |   import { useTitle } from '/@/hooks/web/useTitle';
13 |   import { useLocale } from '/@/locales/useLocale';
14 | 
15 |   import 'dayjs/locale/zh-cn';
16 |   // support Multi-language
17 |   const { getAntdLocale } = useLocale();
18 | 
19 |   // Listening to page changes and dynamically changing site titles
20 |   useTitle();
21 | </script>
22 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/api/flink/config.type.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | export interface HadoopConf {
18 |   hadoop: Hadoop;
19 |   hive: any;
20 | }
21 | 
22 | interface Hadoop {
23 |   'core-site.xml': string;
24 |   'hdfs-site.xml': string;
25 |   'yarn-site.xml': string;
26 | }
27 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/api/index.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | import * as process from 'node:process';
18 | 
19 | export function baseUrl() {
20 |   if (process.env.NODE_ENV === 'production') {
21 |     return `${location.protocol}//${location.host}`;
22 |   }
23 |   return '';
24 | }
25 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/api/setting/types/yarnQueue.type.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | export interface YarnQueue {
18 |   id: number;
19 |   teamId: number;
20 |   queueLabel: string;
21 |   description: string;
22 |   createTime: string;
23 |   modifyTime: string;
24 | }
25 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/api/system/model/uploadModel.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | export interface UploadApiResult {
18 |   message: string;
19 |   code: number;
20 |   url: string;
21 | }
22 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/api.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1721919310491" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12755" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M409.6 64l-0.064 128H505.6V64h76.8v128h96V64h76.8v128H896v140.736l128 0.064v76.8l-128-0.064v96l128 0.064v76.8l-128-0.064v96l128 0.064v76.8l-128-0.064V896h-140.8v128h-76.8v-128H582.4v128H505.6v-128H409.536l0.064 128H332.8l-0.064-128H192v-140.864L64 755.2v-76.8l128-0.064v-96L64 582.4V505.6l128-0.064v-96L64 409.6V332.8l128-0.064V192h140.736L332.8 64h76.8z m409.6 204.8H268.8v550.4h550.4V268.8zM448 435.2l64 198.4h-51.2L448 588.8h-57.6l-12.8 44.8h-51.2l64-198.4H448z m153.6-6.4c44.8 0 83.2 12.8 83.2 64 0 44.8-38.4 70.4-76.8 70.4h-25.6v64h-51.2V428.8h70.4z m166.4 0v198.4h-51.2V428.8h51.2z m-352 38.4c-6.4 19.2-12.8 44.8-12.8 64l-6.4 19.2h38.4l-6.4-19.2c-5.12-15.36-10.24-34.816-12.096-51.84L416 467.2z m172.8 0h-19.2v57.6h25.6c25.6 0 32-12.8 32-32s-12.8-25.6-38.4-25.6z" fill="#1677ff" p-id="12756"></path></svg>


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/block.svg:
--------------------------------------------------------------------------------
1 | <svg  width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg">
2 |   <path fill="currentColor" d="M42.5,-66.2C57.1,-56.7,72.5,-48.4,81.1,-35.3C89.8,-22.2,91.8,-4.4,89.6,13C87.3,30.4,80.7,47.4,69.5,60.1C58.3,72.9,42.4,81.5,25.9,84.6C9.5,87.8,-7.4,85.4,-22.7,79.8C-37.9,74.1,-51.5,65.2,-60.9,53.3C-70.4,41.4,-75.8,26.6,-79,10.8C-82.1,-5,-83.1,-21.7,-77.7,-36.4C-72.4,-51,-60.7,-63.7,-46.7,-73.5C-32.7,-83.3,-16.4,-90.1,-1.2,-88.2C13.9,-86.3,27.8,-75.7,42.5,-66.2Z" transform="translate(100 100)" />
3 | </svg>
4 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/code.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620569843782" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2413" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M522.126222 105.244444l112.241778 18.659556-132.494222 794.908444-112.241778-18.716444L522.126222 105.187556z m235.292445 197.632L968.248889 513.706667l-210.887111 210.887111-80.497778-80.440889 130.446222-130.503111-130.446222-130.389334 80.497778-80.440888zM267.946667 301.795556l80.440889 80.440888-130.446223 130.446223 130.446223 130.446222-80.440889 80.440889-210.887111-210.887111L267.946667 301.795556z" fill="#1677ff" p-id="2414"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/fjar.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1737381843737" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2307" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M176 64A112 112 0 0 0 64 176v672c0 61.824 50.176 112 112 112h672A112 112 0 0 0 960 848V176A112 112 0 0 0 848 64H176zM160 176a16 16 0 0 1 16-16h672a16 16 0 0 1 16 16v672a16 16 0 0 1-16 16H176a16 16 0 0 1-16-16V176z m106.24 506.112V335.36h243.52v81.024h-159.36v55.68h147.072V552.32H350.4v129.792H266.304z m311.36-13.632c19.008 13.824 41.6 20.16 66.624 20.16 34.048 0 63.36-8.896 84.352-30.144 20.608-20.992 29.12-50.24 29.12-84.096V335.36h-85.248v237.888c0 15.872-3.456 23.808-6.72 27.584-2.688 3.2-7.68 6.4-19.2 6.4-9.344 0-14.592-2.112-17.664-4.288a15.808 15.808 0 0 1-5.504-8l-4.864-14.592H534.912l4.16 24.832c4.48 26.368 17.28 48 38.528 63.36z" fill="#1677ff" p-id="2308"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/format.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1618914051851" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1224" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M40.96 81.92v40.96h942.08V81.92z m0 204.8v40.96h593.92v-40.96z m919.04 0a20.64384 20.64384 0 0 0-12.16512 5.75488l-204.8 204.8a20.45952 20.45952 0 0 0 0 29.45024l204.8 204.8A20.52096 20.52096 0 0 0 983.04 716.8V307.2a20.56192 20.56192 0 0 0-23.04-20.48zM942.08 357.13024v309.76L787.18976 512zM40.96 491.52v40.96h593.92v-40.96z m0 204.8v40.96h593.92v-40.96z m0 204.8v40.96h942.08v-40.96z" fill="#1677ff" p-id="1225"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/group.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1683865708492" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16803" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M128 64h256a64 64 0 0 1 64 64v256a64 64 0 0 1-64 64H128a64 64 0 0 1-64-64V128a64 64 0 0 1 64-64z m512 0h256a64 64 0 0 1 64 64v256a64 64 0 0 1-64 64h-256a64 64 0 0 1-64-64V128a64 64 0 0 1 64-64zM128 576h256a64 64 0 0 1 64 64v256a64 64 0 0 1-64 64H128a64 64 0 0 1-64-64v-256a64 64 0 0 1 64-64z m512 0h256a64 64 0 0 1 64 64v256a64 64 0 0 1-64 64h-256a64 64 0 0 1-64-64v-256a64 64 0 0 1 64-64zM128 128v256h256V128H128z m512 0v256h256V128h-256z m-512 512v256h256v-256H128z m512 0v256h256v-256h-256z" fill="#1677ff" p-id="16804"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/host.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620483171283" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2986" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M384.147 702.87s13.481-191.162 191.675-191.674h127.785V86.446C703.54 38.718 665.653 0 618.884 0H85.454C38.684 0 0.797 38.655 0.797 86.445v935.884h191.676V894.547c-4.218-214.485 191.674-191.676 191.674-191.676zM128.582 127.848h447.24V255.63h-447.24V127.847z m0 319.458V319.522h447.24v127.783h-447.24z m702.806 319.458s-24.47-198.383-191.675-191.676c0 0-189.438 4.346-191.674 191.676 0 0-187.906-12.205-191.675 127.784-0.127 153.85 127.783 127.782 127.783 127.782H895.28s126.759-3.896 127.783-127.782c6.134-158.198-191.675-127.784-191.675-127.784z" fill="#1677ff" p-id="2987"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/http.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1694830808867" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9591" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M918.016 489.984l0-41.984-86.016 0 0 41.984 86.016 0zM918.016 384q25.984 0 45.013333 18.986667t18.986667 45.013333l0 41.984q0 25.984-18.986667 45.013333t-45.013333 18.986667l-86.016 0 0 86.016-64 0 0-256 150.016 0zM534.016 448l0-64 192 0 0 64-64 0 0 192-64 0 0-192-64 0zM297.984 448l0-64 192 0 0 64-64 0 0 192-64 0 0-192-64 0zM192 470.016l0-86.016 64 0 0 256-64 0 0-105.984-86.016 0 0 105.984-64 0 0-256 64 0 0 86.016 86.016 0z" fill="#1890ff" p-id="9592"></path></svg>


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/keys.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1619083508780" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1530" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M881.472 196.096A249.6 249.6 0 0 0 480.256 480l-309.568 309.376 5.76 111.744 111.744 5.76 44.8-44.8s-58.752-58.752-39.168-78.336 78.208 39.04 78.336 39.168l39.168-39.168s-58.752-58.816-39.168-78.336 78.272 39.04 78.272 39.04l-3.264 3.264 42.432-42.432c-0.192-0.32-58.368-58.88-39.168-78.08s78.336 39.168 78.336 39.168l-14.336 14.016 83.2-83.2a249.6 249.6 0 0 0 283.776-401.216z m-117.44 235.008a83.2 83.2 0 1 1 0-117.504 83.2 83.2 0 0 1 0 117.504z" fill="#1677ff" p-id="1531"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/mail.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1618998650897" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1348" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M960 128H64a64 64 0 0 0-64 64v640a64 64 0 0 0 64 64h896a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64z m-64 128v26.88L512 502.336 128 282.88V256zM128 768V430.272l352.256 201.28a64 64 0 0 0 63.488 0L896 430.272V768z" fill="#1677ff" p-id="1349"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/management.svg:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 2 |   "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 3 | <svg t="1618998703919" class="icon" viewBox="0 0 1024 1024" version="1.1"
 4 |      xmlns="http://www.w3.org/2000/svg" p-id="1636" xmlns:xlink="http://www.w3.org/1999/xlink"
 5 |      width="200" height="200">
 6 |   <defs>
 7 |     <style type="text/css"></style>
 8 |   </defs>
 9 |   <path
10 |     d="M384 384 192 512l192-320 192 192 128-128 128 256-128-64L576 576 384 384zM960 768l-320 0 0-128 320 0L960 768zM896 576 896 192c0-38.4-25.6-64-64-64L192 128C153.6 128 128 153.6 128 192l0 384c0 38.4 25.6 64 64 64l384 0 0 128-32 64c0 0 115.2 0 160 0s64 128 64 128L256 960c0 0 19.2-128 64-128s160 0 160 0L448 768 160 768C64 768 64 678.4 64 640L64 128c0-38.4 25.6-64 64-64l768 0c38.4 0 64 25.6 64 64l0 448L896 576z"
11 |     p-id="10003"></path>
12 | </svg>
13 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/mapping.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620565615707" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2201" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M781.952 627.936c-48.832 0-92.16 30.4-108.736 76.48h-242.304a150.336 150.336 0 0 0-16.608-39.616l250.624-250.624a152.16 152.16 0 0 0 199.04-38.72c46.976-61.696 41.44-148.32-12.896-202.688a154.464 154.464 0 0 0-202.72-12.896 154.176 154.176 0 0 0-38.72 199.04l-250.592 250.592a156.096 156.096 0 0 0-78.336-21.184v-235.872a116 116 0 0 0 75.552-128.064 114.784 114.784 0 0 0-113.312-95.84A114.784 114.784 0 0 0 129.6 224.384c-9.216 55.264 22.112 109.632 75.552 128.064v257.056a153.792 153.792 0 0 0-70.944 173.248 154.016 154.016 0 0 0 149.28 113.312c70.016 0 129.92-47.904 147.424-115.168h241.408c19.328 55.296 77.376 86.624 134.496 73.728 57.152-12.928 94.912-67.264 88.48-125.312-5.536-57.152-55.296-101.376-113.344-101.376z" fill="#1677ff" p-id="2202"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/message.svg:
--------------------------------------------------------------------------------
 1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 2 |   "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
 3 | <svg t="1656160087714" class="icon" viewBox="0 0 1024 1024" version="1.1"
 4 |      xmlns="http://www.w3.org/2000/svg" p-id="2389" xmlns:xlink="http://www.w3.org/1999/xlink"
 5 |      width="200" height="200">
 6 |   <path
 7 |     d="M512 67.168c-247.04 0-448 172.256-448 384 0 116.512 63.04 226.048 174.048 301.408l84.16 52.032c-3.68 23.552-18.752 74.496-33.44 115.936-4.256 12.064-0.928 25.504 8.448 34.176 6.016 5.568 13.824 8.512 21.728 8.512 4.416 0 8.832-0.896 13.024-2.752 36.416-16.224 147.456-68.96 187.584-125.376C763.136 831.616 960 660.704 960 451.168 960 239.424 759.04 67.168 512 67.168zM580.224 543.968 384.96 543.968c-17.664 0-32-14.336-32-32s14.336-32 32-32l195.264 0c17.696 0 32 14.336 32 32S597.92 543.968 580.224 543.968zM640.928 415.968 384.96 415.968c-17.664 0-32-14.336-32-32s14.336-32 32-32l255.968 0c17.696 0 32 14.336 32 32S658.624 415.968 640.928 415.968z"
 8 |     p-id="2390" fill="#1890ff">
 9 |   </path>
10 | </svg>
11 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/pause.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620565668773" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2202" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M735.9 64.9c-51.2 0-96 44.7-96 95.8v702.6c0 51.1 44.8 95.8 96 95.8s96-44.7 96-95.8V160.7c0-51.1-44.8-95.8-96-95.8z m-447.8 0c-51.2 0-96 44.7-96 95.8v702.6c0 51.1 44.8 95.8 96 95.8s96-44.7 96-95.8V160.7c-0.1-51.1-44.9-95.8-96-95.8z" fill="#1677ff" p-id="2203"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/plus.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620567175366" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2292" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 0a51.2 51.2 0 0 1 51.2 51.2l-0.085333 409.514667L972.8 460.8a51.2 51.2 0 0 1 0 102.4l-409.685333-0.085333L563.2 972.8a51.2 51.2 0 0 1-102.4 0l-0.085333-409.685333L51.2 563.2a51.2 51.2 0 0 1 0-102.4l409.514667-0.085333L460.8 51.2A51.2 51.2 0 0 1 512 0z" fill="#1677ff" p-id="2293"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/rollback.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620567180128" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2434" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M235.52 139.946667c10.24-20.48 37.546667-23.893333 51.2-6.826667l23.893333 30.72c47.786667-20.48 102.4-34.133333 157.013334-34.133333 211.626667 0 385.706667 170.666667 385.706666 385.706666s-170.666667 385.706667-385.706666 385.706667c-51.2 0-98.986667-10.24-146.773334-27.306667-20.48-10.24-30.72-34.133333-23.893333-54.613333s34.133333-30.72 54.613333-23.893333c34.133333 13.653333 75.093333 20.48 112.64 20.48 163.84 0 300.373333-133.12 300.373334-300.373334s-133.12-300.373333-300.373334-300.373333c-34.133333 0-68.266667 6.826667-102.4 17.066667l27.306667 34.133333c13.653333 17.066667 3.413333 44.373333-17.066667 47.786667L204.8 341.333333c-23.893333 3.413333-40.96-17.066667-30.72-40.96l61.44-160.426666z" fill="#1677ff" p-id="2435"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/see.svg:
--------------------------------------------------------------------------------
1 | <svg t="1620578490626" class="icon" viewBox="0 0 1152 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2806" width="200" height="200"><path d="M576 288a221.88 221.88 0 0 0-62.48 10A110.8 110.8 0 0 1 528 352a112 112 0 0 1-112 112 110.8 110.8 0 0 1-54-14.48A223.42 223.42 0 1 0 576 288z m569.04 194.8C1036.58 271.18 821.86 128 576 128S115.36 271.28 6.96 482.82a64.7 64.7 0 0 0 0 58.38C115.42 752.82 330.14 896 576 896s460.64-143.28 569.04-354.82a64.7 64.7 0 0 0 0-58.38zM576 800c-197.3 0-378.18-110-475.86-288C197.82 334 378.68 224 576 224s378.18 110 475.86 288C954.2 690 773.32 800 576 800z" fill="#1677ff" p-id="2807"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/shutdown.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//Wa3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620565630041" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2201" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M267.306667 162.432l48.938666 69.930667a341.333333 341.333333 0 1 0 391.509334 0l48.938666-69.930667A426.154667 426.154667 0 0 1 938.666667 512c0 235.648-191.018667 426.666667-426.666667 426.666667S85.333333 747.648 85.333333 512a426.154667 426.154667 0 0 1 181.973334-349.568zM469.333333 512V85.333333h85.333334v426.666667h-85.333334z" fill="#1677ff" p-id="2202"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/ssh.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1694830905072" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="22900" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M192 384c-25.6 0-42.666667 21.333333-42.666667 42.666667v74.666666c0 21.333333 17.066667 42.666667 42.666667 42.666667H298.666667v32H149.333333V640h170.666667c25.6 0 42.666667-21.333333 42.666667-42.666667v-74.666666c0-21.333333-17.066667-42.666667-42.666667-42.666667H213.333333v-32h149.333334V384h-170.666667m256 0c-25.6 0-42.666667 21.333333-42.666667 42.666667v74.666666c0 21.333333 17.066667 42.666667 42.666667 42.666667H554.666667v32H405.333333V640h170.666667c25.6 0 42.666667-21.333333 42.666667-42.666667v-74.666666c0-21.333333-17.066667-42.666667-42.666667-42.666667H469.333333v-32h149.333334V384h-170.666667m213.333333 0v256H725.333333v-106.666667h85.333334V640h64V384H810.666667v85.333333h-85.333334V384h-64z" p-id="22901" fill="#1890ff"></path></svg>


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/swap.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620569737761" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2525" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M170.666667 384h554.666666l-68.266666 51.2a42.666667 42.666667 0 0 0-8.533334 59.733333 42.666667 42.666667 0 0 0 34.133334 17.066667 42.666667 42.666667 0 0 0 25.6-8.533333l170.666666-128a42.666667 42.666667 0 0 0 0-67.84l-164.693333-128a42.666667 42.666667 0 0 0-52.48 67.413333L728.746667 298.666667H170.666667a42.666667 42.666667 0 0 0 0 85.333333zM853.333333 682.666667H298.666667l68.266666-51.2a42.666667 42.666667 0 0 0-51.2-68.266667l-170.666666 128a42.666667 42.666667 0 0 0 0 67.84l164.693333 128a42.666667 42.666667 0 0 0 26.026667 8.96 42.666667 42.666667 0 0 0 33.706666-16.64 42.666667 42.666667 0 0 0-7.253333-59.733333L295.253333 768H853.333333a42.666667 42.666667 0 0 0 0-85.333333z" fill="#1677ff" p-id="2526"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/thunderbolt.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620565648345" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2201" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M848 359.3H627.7L825.8 109c4.1-5.3 0.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3 0.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z" fill="#1677ff" p-id="2202"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/upload.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1620567349845" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5581" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M662.63 545.37l-128-128a32 32 0 0 0-45.25 0l-128 128a32 32 0 1 0 45.25 45.25L480 517.25V872a32 32 0 0 0 64 0V517.25l73.37 73.37a32 32 0 1 0 45.25-45.25z" fill="#148AFF" p-id="5582"></path><path d="M752 760H640a32 32 0 0 1 0-64h112c79.4 0 144-64.6 144-144a144 144 0 0 0-132.45-143.54 32 32 0 0 1-29.24-28C720.6 268.46 625 184 512 184s-208.6 84.46-222.31 196.45a32 32 0 0 1-29.24 28A144 144 0 0 0 128 552c0 79.4 64.6 144 144 144h112a32 32 0 0 1 0 64H272c-114.69 0-208-93.31-208-208a208.08 208.08 0 0 1 166.23-203.79C258 216.5 375 120 512 120s254 96.5 281.77 228.21A208.08 208.08 0 0 1 960 552c0 114.69-93.31 208-208 208z" fill="#148AFF" p-id="5583"></path></svg>


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/user.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1625734109822" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3676" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M621.6 611.2C847 647.5 912 805.4 912 862.8c0 78.5-275.5 97.2-400 97.2s-400-18.7-400-97.2c0-56.4 64.1-217.4 289.6-251.6C416 609 435 563.3 422.7 555 348.8 504.9 292 418.1 292 278.1 292 158.8 383.3 64 512 64s220 94.8 220 214.1c0 137.9-59.8 226.8-133.9 277.4-11.4 7.9 9.3 53.4 23.5 55.7z m0 0" fill="#1677ff" p-id="3677"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/icons/workspace.svg:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1615699653925" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2205" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M753.664 28.672V860.16L28.672 751.616l726.016 244.736 241.664-100.352V129.024L753.664 28.672zM499.712 169.984L277.504 389.12 143.36 288.768 89.088 307.2 225.28 441.344 89.088 576.512l55.296 18.432 134.144-100.352 222.208 220.16 133.12-56.32V226.304l-134.144-56.32z m0 156.672v230.4L347.136 441.344l152.576-114.688z" fill="#1677ff" p-id="2206"></path></svg>
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/images/join_wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-console/streampark-console-webapp/src/assets/images/join_wechat.png


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/images/logo-text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-console/streampark-console-webapp/src/assets/images/logo-text.png


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/assets/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/apache/streampark/4997c4e0741c99e8c78e1eba282ab50d3589e942/streampark-console/streampark-console-webapp/src/assets/images/logo.png


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Application/index.ts:
--------------------------------------------------------------------------------
 1 | import { withInstall } from '/@/utils';
 2 | 
 3 | import appLogo from './src/AppLogo.vue';
 4 | import appProvider from './src/AppProvider.vue';
 5 | import appLocalePicker from './src/AppLocalePicker.vue';
 6 | import appDarkModeToggle from './src/AppDarkModeToggle.vue';
 7 | 
 8 | export { useAppProviderContext } from './src/useAppContext';
 9 | 
10 | export const AppLogo = withInstall(appLogo);
11 | export const AppProvider = withInstall(appProvider);
12 | export const AppLocalePicker = withInstall(appLocalePicker);
13 | export const AppDarkModeToggle = withInstall(appDarkModeToggle);
14 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Application/src/useAppContext.ts:
--------------------------------------------------------------------------------
 1 | import { InjectionKey, Ref } from 'vue';
 2 | import { createContext, useContext } from '/@/hooks/core/useContext';
 3 | 
 4 | export interface AppProviderContextProps {
 5 |   prefixCls: Ref<string>;
 6 |   isMobile: Ref<boolean>;
 7 | }
 8 | 
 9 | const key: InjectionKey<AppProviderContextProps> = Symbol();
10 | 
11 | export function createAppProviderContext(context: AppProviderContextProps) {
12 |   return createContext<AppProviderContextProps>(context, key);
13 | }
14 | 
15 | export function useAppProviderContext() {
16 |   return useContext<AppProviderContextProps>(key);
17 | }
18 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Authority/index.ts:
--------------------------------------------------------------------------------
1 | import { withInstall } from '/@/utils';
2 | import authority from './src/Authority.vue';
3 | 
4 | export const Authority = withInstall(authority);
5 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Basic/index.ts:
--------------------------------------------------------------------------------
1 | import { withInstall } from '/@/utils';
2 | import basicArrow from './src/BasicArrow.vue';
3 | import basicTitle from './src/BasicTitle.vue';
4 | import basicHelp from './src/BasicHelp.vue';
5 | 
6 | export const BasicArrow = withInstall(basicArrow);
7 | export const BasicTitle = withInstall(basicTitle);
8 | export const BasicHelp = withInstall(basicHelp);
9 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Button/index.ts:
--------------------------------------------------------------------------------
 1 | import { withInstall } from '/@/utils';
 2 | import type { ExtractPropTypes } from 'vue';
 3 | import button from './src/BasicButton.vue';
 4 | import popConfirmButton from './src/PopConfirmButton.vue';
 5 | import { buttonProps } from './src/props';
 6 | 
 7 | export const Button = withInstall(button);
 8 | export const PopConfirmButton = withInstall(popConfirmButton);
 9 | export declare type ButtonProps = Partial<ExtractPropTypes<typeof buttonProps>>;
10 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Button/src/props.ts:
--------------------------------------------------------------------------------
 1 | export const buttonProps = {
 2 |   color: {
 3 |     type: String,
 4 |     validator: (v) => ['error', 'warning', 'success', 'primary', ''].includes(v),
 5 |   },
 6 |   loading: { type: Boolean },
 7 |   disabled: { type: Boolean },
 8 |   /**
 9 |    * Text before icon.
10 |    */
11 |   preIcon: { type: String },
12 |   /**
13 |    * Text after icon.
14 |    */
15 |   postIcon: { type: String },
16 |   /**
17 |    * preIcon and postIcon icon size.
18 |    * @default: 14
19 |    */
20 |   iconSize: { type: Number, default: 14 },
21 |   onClick: { type: Function as PropType<(...args) => any>, default: null },
22 | };
23 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Container/index.ts:
--------------------------------------------------------------------------------
1 | import { withInstall } from '/@/utils';
2 | import collapseContainer from './src/collapse/CollapseContainer.vue';
3 | import scrollContainer from './src/ScrollContainer.vue';
4 | 
5 | export const CollapseContainer = withInstall(collapseContainer);
6 | export const ScrollContainer = withInstall(scrollContainer);
7 | 
8 | export * from './src/typing';
9 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Container/src/typing.ts:
--------------------------------------------------------------------------------
 1 | export type ScrollType = 'default' | 'main';
 2 | 
 3 | export interface CollapseContainerOptions {
 4 |   canExpand?: boolean;
 5 |   title?: string;
 6 |   helpMessage?: Array<any> | string;
 7 | }
 8 | export interface ScrollContainerOptions {
 9 |   enableScroll?: boolean;
10 |   type?: ScrollType;
11 | }
12 | 
13 | export type ScrollActionType = RefType<{
14 |   scrollBottom: () => void;
15 |   getScrollWrap: () => Nullable<HTMLElement>;
16 |   scrollTo: (top: number) => void;
17 | }>;
18 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/ContextMenu/index.ts:
--------------------------------------------------------------------------------
1 | export { createContextMenu, destroyContextMenu } from './src/createContextMenu';
2 | 
3 | export * from './src/typing';
4 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/ContextMenu/src/typing.ts:
--------------------------------------------------------------------------------
 1 | export interface Axis {
 2 |   x: number;
 3 |   y: number;
 4 | }
 5 | 
 6 | export interface ContextMenuItem {
 7 |   label: string;
 8 |   icon?: string;
 9 |   hidden?: boolean;
10 |   disabled?: boolean;
11 |   handler?: Fn;
12 |   divider?: boolean;
13 |   children?: ContextMenuItem[];
14 | }
15 | export interface CreateContextOptions {
16 |   event: MouseEvent;
17 |   icon?: string;
18 |   styles?: any;
19 |   items?: ContextMenuItem[];
20 | }
21 | 
22 | export interface ContextMenuProps {
23 |   event?: MouseEvent;
24 |   styles?: any;
25 |   items: ContextMenuItem[];
26 |   customEvent?: MouseEvent;
27 |   axis?: Axis;
28 |   width?: number;
29 |   showIcon?: boolean;
30 | }
31 | 
32 | export interface ItemContentProps {
33 |   showIcon: boolean | undefined;
34 |   item: ContextMenuItem;
35 |   handler: Fn;
36 | }
37 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Description/index.ts:
--------------------------------------------------------------------------------
1 | import { withInstall } from '/@/utils';
2 | import description from './src/Description.vue';
3 | 
4 | export * from './src/typing';
5 | export { useDescription } from './src/useDescription';
6 | export const Description = withInstall(description);
7 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Description/src/useDescription.ts:
--------------------------------------------------------------------------------
 1 | import type { DescriptionProps, DescInstance, UseDescReturnType } from './typing';
 2 | import { ref, getCurrentInstance, unref } from 'vue';
 3 | import { isProdMode } from '/@/utils/env';
 4 | 
 5 | export function useDescription(props?: Partial<DescriptionProps>): UseDescReturnType {
 6 |   if (!getCurrentInstance()) {
 7 |     throw new Error('useDescription() can only be used inside setup() or functional components!');
 8 |   }
 9 |   const desc = ref<Nullable<DescInstance>>(null);
10 |   const loaded = ref(false);
11 | 
12 |   function register(instance: DescInstance) {
13 |     if (unref(loaded) && isProdMode()) {
14 |       return;
15 |     }
16 |     desc.value = instance;
17 |     props && instance.setDescProps(props);
18 |     loaded.value = true;
19 |   }
20 | 
21 |   const methods: DescInstance = {
22 |     setDescProps: (descProps: Partial<DescriptionProps>): void => {
23 |       unref(desc)?.setDescProps(descProps);
24 |     },
25 |   };
26 | 
27 |   return [register, methods];
28 | }
29 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Drawer/index.ts:
--------------------------------------------------------------------------------
1 | import { withInstall } from '/@/utils';
2 | import basicDrawer from './src/BasicDrawer.vue';
3 | 
4 | export const BasicDrawer = withInstall(basicDrawer);
5 | export * from './src/typing';
6 | export { useDrawer, useDrawerInner } from './src/useDrawer';
7 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Dropdown/index.ts:
--------------------------------------------------------------------------------
1 | import { withInstall } from '/@/utils';
2 | import dropdown from './src/Dropdown.vue';
3 | 
4 | export * from './src/typing';
5 | export const Dropdown = withInstall(dropdown);
6 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Dropdown/src/typing.ts:
--------------------------------------------------------------------------------
 1 | export interface DropMenu {
 2 |   onClick?: Fn;
 3 |   to?: string;
 4 |   icon?: string;
 5 |   event: string | number;
 6 |   text: string;
 7 |   disabled?: boolean;
 8 |   divider?: boolean;
 9 | }
10 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Form/index.ts:
--------------------------------------------------------------------------------
 1 | import BasicForm from './src/BasicForm.vue';
 2 | 
 3 | export * from './src/types/form';
 4 | export * from './src/types/formItem';
 5 | 
 6 | export { useComponentRegister } from './src/hooks/useComponentRegister';
 7 | export { useForm } from './src/hooks/useForm';
 8 | 
 9 | export { default as ApiSelect } from './src/components/ApiSelect.vue';
10 | export { default as RadioButtonGroup } from './src/components/RadioButtonGroup.vue';
11 | export { default as ApiTreeSelect } from './src/components/ApiTreeSelect.vue';
12 | export { default as ApiTree } from './src/components/ApiTree.vue';
13 | export { default as ApiRadioGroup } from './src/components/ApiRadioGroup.vue';
14 | export { default as ApiCascader } from './src/components/ApiCascader.vue';
15 | 
16 | export { BasicForm };
17 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Form/src/hooks/useComponentRegister.ts:
--------------------------------------------------------------------------------
 1 | import type { ComponentType } from '../types/index';
 2 | import { tryOnUnmounted } from '@vueuse/core';
 3 | import { add, del } from '../componentMap';
 4 | import type { Component } from 'vue';
 5 | 
 6 | export function useComponentRegister(compName: ComponentType, comp: Component) {
 7 |   add(compName, comp);
 8 |   tryOnUnmounted(() => {
 9 |     del(compName);
10 |   });
11 | }
12 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Form/src/hooks/useFormContext.ts:
--------------------------------------------------------------------------------
 1 | import type { InjectionKey } from 'vue';
 2 | import { createContext, useContext } from '/@/hooks/core/useContext';
 3 | 
 4 | export interface FormContextProps {
 5 |   resetAction: () => Promise<void>;
 6 |   submitAction: () => Promise<void>;
 7 | }
 8 | 
 9 | const key: InjectionKey<FormContextProps> = Symbol();
10 | 
11 | export function createFormContext(context: FormContextProps) {
12 |   return createContext<FormContextProps>(context, key);
13 | }
14 | 
15 | export function useFormContext() {
16 |   return useContext<FormContextProps>(key);
17 | }
18 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Form/src/types/hooks.ts:
--------------------------------------------------------------------------------
1 | export interface AdvanceState {
2 |   isAdvanced: boolean;
3 |   hideAdvanceBtn: boolean;
4 |   isLoad: boolean;
5 |   actionSpan: number;
6 | }
7 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Icon/index.ts:
--------------------------------------------------------------------------------
1 | import Icon from './src/Icon.vue';
2 | import SvgIcon from './src/SvgIcon.vue';
3 | import IconPicker from './src/IconPicker.vue';
4 | 
5 | export { Icon, IconPicker, SvgIcon };
6 | 
7 | export default Icon;
8 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/LinkBadge/index.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | import LinkBadge from './src/LinkBadge.vue';
18 | 
19 | export { LinkBadge };
20 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Loading/index.ts:
--------------------------------------------------------------------------------
1 | import Loading from './src/Loading.vue';
2 | 
3 | export { Loading };
4 | export { useLoading } from './src/useLoading';
5 | export { createLoading } from './src/createLoading';
6 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Loading/src/typing.ts:
--------------------------------------------------------------------------------
 1 | import { SizeEnum } from '/@/enums/sizeEnum';
 2 | 
 3 | export interface LoadingProps {
 4 |   tip: string;
 5 |   size: SizeEnum;
 6 |   absolute: boolean;
 7 |   loading: boolean;
 8 |   background: string;
 9 |   theme: 'dark' | 'light';
10 | }
11 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Menu/index.ts:
--------------------------------------------------------------------------------
1 | import BasicMenu from './src/BasicMenu.vue';
2 | 
3 | export { BasicMenu };
4 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Menu/src/components/BasicMenuItem.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <MenuItem :key="item.path">
 3 |     <MenuItemContent v-bind="$props" :item="item" />
 4 |   </MenuItem>
 5 | </template>
 6 | <script lang="ts">
 7 |   import { defineComponent } from 'vue';
 8 |   import { Menu } from 'ant-design-vue';
 9 |   import { itemProps } from '../props';
10 | 
11 |   import MenuItemContent from './MenuItemContent.vue';
12 |   export default defineComponent({
13 |     name: 'BasicMenuItem',
14 |     components: { MenuItem: Menu.Item, MenuItemContent },
15 |     props: itemProps,
16 |     setup() {
17 |       return {};
18 |     },
19 |   });
20 | </script>
21 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Menu/src/components/MenuItemContent.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <span :class="`${prefixCls}- flex items-center `">
 3 |     <Icon v-if="getIcon" :icon="getIcon" :size="18" :class="`${prefixCls}-wrapper__icon mr-2`" />
 4 |     {{ getI18nName }}
 5 |   </span>
 6 | </template>
 7 | <script lang="ts">
 8 |   import { computed, defineComponent } from 'vue';
 9 | 
10 |   import Icon from '/@/components/Icon/index';
11 |   import { useI18n } from '/@/hooks/web/useI18n';
12 |   import { useDesign } from '/@/hooks/web/useDesign';
13 |   import { contentProps } from '../props';
14 |   const { t } = useI18n();
15 | 
16 |   export default defineComponent({
17 |     name: 'MenuItemContent',
18 |     components: {
19 |       Icon,
20 |     },
21 |     props: contentProps,
22 |     setup(props) {
23 |       const { prefixCls } = useDesign('basic-menu-item-content');
24 |       const getI18nName = computed(() => t(props.item?.name));
25 |       const getIcon = computed(() => props.item?.icon);
26 | 
27 |       return {
28 |         prefixCls,
29 |         getI18nName,
30 |         getIcon,
31 |       };
32 |     },
33 |   });
34 | </script>
35 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Menu/src/types.ts:
--------------------------------------------------------------------------------
 1 | // import { ComputedRef } from 'vue';
 2 | // import { ThemeEnum } from '/@/enums/appEnum';
 3 | // import { MenuModeEnum } from '/@/enums/menuEnum';
 4 | export interface MenuState {
 5 |   defaultSelectedKeys: string[];
 6 | 
 7 |   // mode: MenuModeEnum;
 8 | 
 9 |   // theme: ComputedRef<ThemeEnum> | ThemeEnum;
10 | 
11 |   // indent
12 |   inlineIndent?: number;
13 | 
14 |   openKeys: string[];
15 | 
16 |   selectedKeys: string[];
17 | 
18 |   collapsedOpenKeys: string[];
19 | }
20 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Modal/index.ts:
--------------------------------------------------------------------------------
1 | import { withInstall } from '/@/utils';
2 | import './src/index.less';
3 | import basicModal from './src/BasicModal.vue';
4 | 
5 | export const BasicModal = withInstall(basicModal);
6 | export { useModalContext } from './src/hooks/useModalContext';
7 | export { useModal, useModalInner } from './src/hooks/useModal';
8 | export * from './src/typing';
9 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Modal/src/components/Modal.tsx:
--------------------------------------------------------------------------------
 1 | import { Modal } from 'ant-design-vue';
 2 | import { defineComponent, toRefs, unref } from 'vue';
 3 | import { basicProps } from '../props';
 4 | import { useModalDragMove } from '../hooks/useModalDrag';
 5 | import { extendSlots } from '/@/utils/helper/tsxHelper';
 6 | 
 7 | export default defineComponent({
 8 |   name: 'Modal',
 9 |   inheritAttrs: false,
10 |   props: basicProps,
11 |   emits: ['cancel'],
12 |   setup(props, { attrs, slots, emit }) {
13 |     const { visible, draggable, destroyOnClose } = toRefs(props);
14 |     useModalDragMove({
15 |       visible,
16 |       destroyOnClose,
17 |       draggable,
18 |     });
19 | 
20 |     const onCancel = (e: Event) => {
21 |       emit('cancel', e);
22 |     };
23 | 
24 |     return () => {
25 |       const propsData = { ...unref(attrs), ...props, onCancel } as Recordable;
26 |       return <Modal {...propsData}>{extendSlots(slots)}</Modal>;
27 |     };
28 |   },
29 | });
30 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Modal/src/components/ModalFooter.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <div>
 3 |     <slot name="insertFooter"></slot>
 4 |     <a-button v-bind="cancelButtonProps" @click="handleCancel" v-if="showCancelBtn">
 5 |       {{ cancelText }}
 6 |     </a-button>
 7 |     <slot name="centerFooter"></slot>
 8 |     <a-button
 9 |       :type="okType"
10 |       @click="handleOk"
11 |       :loading="confirmLoading"
12 |       v-bind="okButtonProps"
13 |       v-if="showOkBtn"
14 |     >
15 |       {{ okText }}
16 |     </a-button>
17 |     <slot name="appendFooter"></slot>
18 |   </div>
19 | </template>
20 | <script lang="ts">
21 |   import { defineComponent } from 'vue';
22 | 
23 |   import { basicProps } from '../props';
24 |   export default defineComponent({
25 |     name: 'BasicModalFooter',
26 |     props: basicProps,
27 |     emits: ['ok', 'cancel'],
28 |     setup(_, { emit }) {
29 |       function handleOk(e: Event) {
30 |         emit('ok', e);
31 |       }
32 | 
33 |       function handleCancel(e: Event) {
34 |         emit('cancel', e);
35 |       }
36 | 
37 |       return { handleOk, handleCancel };
38 |     },
39 |   });
40 | </script>
41 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Modal/src/components/ModalHeader.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <BasicTitle :helpMessage="helpMessage">
 3 |     {{ title }}
 4 |   </BasicTitle>
 5 | </template>
 6 | <script lang="ts">
 7 |   import type { PropType } from 'vue';
 8 |   import { defineComponent } from 'vue';
 9 |   import { BasicTitle } from '/@/components/Basic';
10 | 
11 |   export default defineComponent({
12 |     name: 'BasicModalHeader',
13 |     components: { BasicTitle },
14 |     props: {
15 |       helpMessage: {
16 |         type: [String, Array] as PropType<string | string[]>,
17 |       },
18 |       title: { type: String },
19 |     },
20 |     emits: ['dblclick'],
21 |   });
22 | </script>
23 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Modal/src/hooks/useModalContext.ts:
--------------------------------------------------------------------------------
 1 | import { InjectionKey } from 'vue';
 2 | import { createContext, useContext } from '/@/hooks/core/useContext';
 3 | 
 4 | export interface ModalContextProps {
 5 |   redoModalHeight: () => void;
 6 | }
 7 | 
 8 | const key: InjectionKey<ModalContextProps> = Symbol();
 9 | 
10 | export function createModalContext(context: ModalContextProps) {
11 |   return createContext<ModalContextProps>(context, key);
12 | }
13 | 
14 | export function useModalContext() {
15 |   return useContext<ModalContextProps>(key);
16 | }
17 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/OpenApi/index.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | import { withInstall } from '/@/utils';
18 | 
19 | import openApi from './src';
20 | 
21 | export const OpenApi = withInstall(openApi);
22 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Page/index.ts:
--------------------------------------------------------------------------------
 1 | import { withInstall } from '/@/utils';
 2 | 
 3 | import pageFooter from './src/PageFooter.vue';
 4 | import pageWrapper from './src/PageWrapper.vue';
 5 | 
 6 | export const PageFooter = withInstall(pageFooter);
 7 | export const PageWrapper = withInstall(pageWrapper);
 8 | 
 9 | export const PageWrapperFixedHeightKey = 'PageWrapperFixedHeight';
10 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Scrollbar/index.ts:
--------------------------------------------------------------------------------
1 | /**
2 |  * copy from element-ui
3 |  */
4 | 
5 | import Scrollbar from './src/Scrollbar.vue';
6 | 
7 | export { Scrollbar };
8 | export type { ScrollbarType } from './src/types';
9 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Scrollbar/src/types.d.ts:
--------------------------------------------------------------------------------
 1 | export interface BarMapItem {
 2 |   offset: string;
 3 |   scroll: string;
 4 |   scrollSize: string;
 5 |   size: string;
 6 |   key: string;
 7 |   axis: string;
 8 |   client: string;
 9 |   direction: string;
10 | }
11 | export interface BarMap {
12 |   vertical: BarMapItem;
13 |   horizontal: BarMapItem;
14 | }
15 | 
16 | export interface ScrollbarType {
17 |   wrap: ElRef;
18 | }
19 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/SimpleMenu/index.ts:
--------------------------------------------------------------------------------
1 | export { default as SimpleMenu } from './src/SimpleMenu.vue';
2 | export { default as SimpleMenuTag } from './src/SimpleMenuTag.vue';
3 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/components/types.ts:
--------------------------------------------------------------------------------
 1 | import { Ref } from 'vue';
 2 | 
 3 | export interface Props {
 4 |   theme: string;
 5 |   activeName?: string | number | undefined;
 6 |   openNames: string[];
 7 |   accordion: boolean;
 8 |   width: string;
 9 |   collapsedWidth: string;
10 |   indentSize: number;
11 |   collapse: boolean;
12 |   activeSubMenuNames: (string | number)[];
13 | }
14 | 
15 | export interface SubMenuProvider {
16 |   addSubMenu: (name: string | number, update?: boolean) => void;
17 |   removeSubMenu: (name: string | number, update?: boolean) => void;
18 |   removeAll: () => void;
19 |   sliceIndex: (index: number) => void;
20 |   isRemoveAllPopup: Ref<boolean>;
21 |   getOpenNames: () => (string | number)[];
22 |   handleMouseleave?: Fn;
23 |   level: number;
24 |   props: Props;
25 | }
26 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/components/useSimpleMenuContext.ts:
--------------------------------------------------------------------------------
 1 | import type { InjectionKey, Ref } from 'vue';
 2 | import type { Emitter } from '/@/utils/mitt';
 3 | import { createContext, useContext } from '/@/hooks/core/useContext';
 4 | 
 5 | export interface SimpleRootMenuContextProps {
 6 |   rootMenuEmitter: Emitter;
 7 |   activeName: Ref<string | number>;
 8 | }
 9 | 
10 | const key: InjectionKey<SimpleRootMenuContextProps> = Symbol();
11 | 
12 | export function createSimpleRootMenuContext(context: SimpleRootMenuContextProps) {
13 |   return createContext<SimpleRootMenuContextProps>(context, key, { readonly: false, native: true });
14 | }
15 | 
16 | export function useSimpleRootMenuContext() {
17 |   return useContext<SimpleRootMenuContextProps>(key);
18 | }
19 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/types.ts:
--------------------------------------------------------------------------------
1 | export interface MenuState {
2 |   activeName: string;
3 |   openNames: string[];
4 |   activeSubMenuNames: string[];
5 | }
6 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Table/index.ts:
--------------------------------------------------------------------------------
 1 | export { default as BasicTable } from './src/BasicTable.vue';
 2 | export { default as TableAction } from './src/components/TableAction.vue';
 3 | export { default as EditTableHeaderIcon } from './src/components/EditTableHeaderIcon.vue';
 4 | export { default as TableImg } from './src/components/TableImg.vue';
 5 | 
 6 | export * from './src/types/table';
 7 | export * from './src/types/pagination';
 8 | export * from './src/types/tableAction';
 9 | export { useTable } from './src/hooks/useTable';
10 | export type { FormSchema, FormProps } from '/@/components/Form/src/types/form';
11 | export type { EditRecordRow } from './src/components/editable';
12 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Table/src/components/EditTableHeaderIcon.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <span>
 3 |     <slot></slot>
 4 |     {{ title }}
 5 |     <FormOutlined />
 6 |   </span>
 7 | </template>
 8 | <script lang="ts">
 9 |   import { defineComponent } from 'vue';
10 |   import { FormOutlined } from '@ant-design/icons-vue';
11 |   export default defineComponent({
12 |     name: 'EditTableHeaderIcon',
13 |     components: { FormOutlined },
14 |     props: { title: { type: String, default: '' } },
15 |   });
16 | </script>
17 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Table/src/components/editable/helper.ts:
--------------------------------------------------------------------------------
 1 | import { ComponentType } from '../../types/componentType';
 2 | import { useI18n } from '/@/hooks/web/useI18n';
 3 | 
 4 | const { t } = useI18n();
 5 | 
 6 | /**
 7 |  * @description: placeholder
 8 |  */
 9 | export function createPlaceholderMessage(component: ComponentType) {
10 |   if (component.includes('Input') || component.includes('AutoComplete')) {
11 |     return t('common.inputText');
12 |   }
13 |   if (component.includes('Picker')) {
14 |     return t('common.chooseText');
15 |   }
16 | 
17 |   if (
18 |     component.includes('Select') ||
19 |     component.includes('Checkbox') ||
20 |     component.includes('Radio') ||
21 |     component.includes('Switch') ||
22 |     component.includes('DatePicker') ||
23 |     component.includes('TimePicker')
24 |   ) {
25 |     return t('common.chooseText');
26 |   }
27 |   return '';
28 | }
29 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Table/src/components/settings/RedoSetting.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <Tooltip placement="top">
 3 |     <template #title>
 4 |       <span>{{ t('common.redo') }}</span>
 5 |     </template>
 6 |     <RedoOutlined @click="redo" />
 7 |   </Tooltip>
 8 | </template>
 9 | <script lang="ts">
10 |   import { defineComponent } from 'vue';
11 |   import { Tooltip } from 'ant-design-vue';
12 |   import { RedoOutlined } from '@ant-design/icons-vue';
13 |   import { useI18n } from '/@/hooks/web/useI18n';
14 |   import { useTableContext } from '../../hooks/useTableContext';
15 | 
16 |   export default defineComponent({
17 |     name: 'RedoSetting',
18 |     components: {
19 |       RedoOutlined,
20 |       Tooltip,
21 |     },
22 |     setup() {
23 |       const table = useTableContext();
24 |       const { t } = useI18n();
25 | 
26 |       function redo() {
27 |         table.reload();
28 |       }
29 | 
30 |       return { redo, t };
31 |     },
32 |   });
33 | </script>
34 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Table/src/const.ts:
--------------------------------------------------------------------------------
 1 | import componentSetting from '/@/settings/componentSetting';
 2 | 
 3 | const { table } = componentSetting;
 4 | 
 5 | const {
 6 |   pageSizeOptions,
 7 |   defaultPageSize,
 8 |   fetchSetting,
 9 |   defaultSize,
10 |   defaultSortFn,
11 |   defaultFilterFn,
12 | } = table;
13 | 
14 | export const ROW_KEY = 'key';
15 | 
16 | // Optional display number per page;
17 | export const PAGE_SIZE_OPTIONS = pageSizeOptions;
18 | 
19 | // Number of items displayed per page
20 | export const PAGE_SIZE = defaultPageSize;
21 | 
22 | // Common interface field settings
23 | export const FETCH_SETTING = fetchSetting;
24 | 
25 | // Default Size
26 | export const DEFAULT_SIZE = defaultSize;
27 | 
28 | // Configure general sort function
29 | export const DEFAULT_SORT_FN = defaultSortFn;
30 | 
31 | export const DEFAULT_FILTER_FN = defaultFilterFn;
32 | 
33 | //  Default layout of table cells
34 | export const DEFAULT_ALIGN = 'left';
35 | 
36 | export const INDEX_COLUMN_FLAG = 'INDEX';
37 | 
38 | export const ACTION_COLUMN_FLAG = 'ACTION';
39 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Table/src/hooks/useLoading.ts:
--------------------------------------------------------------------------------
 1 | import { ref, ComputedRef, unref, computed, watch } from 'vue';
 2 | import type { BasicTableProps } from '../types/table';
 3 | 
 4 | export function useLoading(props: ComputedRef<BasicTableProps>) {
 5 |   const loadingRef = ref(unref(props).loading);
 6 | 
 7 |   watch(
 8 |     () => unref(props).loading,
 9 |     (loading) => {
10 |       loadingRef.value = loading;
11 |     },
12 |   );
13 | 
14 |   const getLoading = computed(() => unref(loadingRef));
15 | 
16 |   function setLoading(loading: boolean) {
17 |     loadingRef.value = loading;
18 |   }
19 | 
20 |   return { getLoading, setLoading };
21 | }
22 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Table/src/hooks/useTableContext.ts:
--------------------------------------------------------------------------------
 1 | import type { Ref } from 'vue';
 2 | import type { BasicTableProps, TableActionType } from '../types/table';
 3 | import { provide, inject, ComputedRef } from 'vue';
 4 | 
 5 | const key = Symbol('basic-table');
 6 | 
 7 | type Instance = TableActionType & {
 8 |   wrapRef: Ref<Nullable<HTMLElement>>;
 9 |   tableFullScreen: Ref<boolean>;
10 |   getBindValues: ComputedRef<Recordable>;
11 | };
12 | 
13 | type RetInstance = Omit<Instance, 'getBindValues'> & {
14 |   getBindValues: ComputedRef<BasicTableProps>;
15 | };
16 | 
17 | export function createTableContext(instance: Instance) {
18 |   provide(key, instance);
19 | }
20 | 
21 | export function useTableContext(): RetInstance {
22 |   return inject(key) as RetInstance;
23 | }
24 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Table/src/hooks/useTableStyle.ts:
--------------------------------------------------------------------------------
 1 | import type { ComputedRef } from 'vue';
 2 | import type { BasicTableProps, TableCustomRecord } from '../types/table';
 3 | import { unref } from 'vue';
 4 | import { isFunction } from '/@/utils/is';
 5 | 
 6 | export function useTableStyle(propsRef: ComputedRef<BasicTableProps>, prefixCls: string) {
 7 |   function getRowClassName(record: TableCustomRecord, index: number) {
 8 |     const { striped, rowClassName } = unref(propsRef);
 9 |     const classNames: string[] = [];
10 |     if (striped) {
11 |       classNames.push((index || 0) % 2 === 1 ? `${prefixCls}-row__striped` : '');
12 |     }
13 |     if (rowClassName && isFunction(rowClassName)) {
14 |       classNames.push(rowClassName(record, index));
15 |     }
16 |     return classNames.filter((cls) => !!cls).join(' ');
17 |   }
18 | 
19 |   return { getRowClassName };
20 | }
21 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Table/src/types/componentType.ts:
--------------------------------------------------------------------------------
 1 | export type ComponentType =
 2 |   | 'Input'
 3 |   | 'InputNumber'
 4 |   | 'Select'
 5 |   | 'ApiSelect'
 6 |   | 'AutoComplete'
 7 |   | 'ApiTreeSelect'
 8 |   | 'Checkbox'
 9 |   | 'Switch'
10 |   | 'DatePicker'
11 |   | 'TimePicker';
12 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Tree/index.ts:
--------------------------------------------------------------------------------
1 | import BasicTree from './src/BasicTree.vue';
2 | import './style';
3 | 
4 | export { BasicTree };
5 | export type { ContextMenuItem } from '/@/hooks/web/useContextMenu';
6 | export * from './src/types/tree';
7 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Tree/src/TreeIcon.ts:
--------------------------------------------------------------------------------
 1 | import type { VNode, FunctionalComponent } from 'vue';
 2 | 
 3 | import { h } from 'vue';
 4 | import { isString } from '/@/utils/is';
 5 | import { Icon } from '/@/components/Icon';
 6 | 
 7 | export const TreeIcon: FunctionalComponent = ({ icon }: { icon: VNode | string }) => {
 8 |   if (!icon) return null;
 9 |   if (isString(icon)) {
10 |     return h(Icon, { icon, class: 'mr-1' });
11 |   }
12 |   return Icon;
13 | };
14 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Tree/style/index.less:
--------------------------------------------------------------------------------
 1 | @tree-prefix-cls: ~'@{namespace}-tree';
 2 | 
 3 | .@{tree-prefix-cls} {
 4 |   background-color: @component-background;
 5 | 
 6 |   .ant-tree-node-content-wrapper {
 7 |     position: relative;
 8 | 
 9 |     .ant-tree-title {
10 |       position: absolute;
11 |       left: 0;
12 |       width: 100%;
13 |       overflow: hidden;
14 |       text-overflow: ellipsis;
15 |       white-space: nowrap;
16 |     }
17 |   }
18 | 
19 |   &__title {
20 |     position: relative;
21 |     display: flex;
22 |     align-items: center;
23 |     width: 100%;
24 |     padding-right: 10px;
25 | 
26 |     &:hover {
27 |       .@{tree-prefix-cls}__action {
28 |         visibility: visible;
29 |       }
30 |     }
31 |   }
32 | 
33 |   &__content {
34 |     overflow: hidden;
35 |   }
36 | 
37 |   &__actions {
38 |     position: absolute;
39 |     //top: 2px;
40 |     right: 3px;
41 |     display: flex;
42 |   }
43 | 
44 |   &__action {
45 |     margin-left: 4px;
46 |     visibility: hidden;
47 |   }
48 | 
49 |   &-header {
50 |     border-bottom: 1px solid @border-color-base;
51 |   }
52 | }
53 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/Tree/style/index.ts:
--------------------------------------------------------------------------------
1 | import './index.less';
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/components/registerGlobComp.ts:
--------------------------------------------------------------------------------
1 | import type { App } from 'vue';
2 | import { Button } from './Button';
3 | import { Input, Layout } from 'ant-design-vue';
4 | 
5 | export function registerGlobComp(app: App) {
6 |   app.use(Input).use(Button).use(Layout);
7 | }
8 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/design/ant/input.less:
--------------------------------------------------------------------------------
 1 | @import (reference) '../color.less';
 2 | 
 3 | // input
 4 | .ant-input {
 5 |   &-number {
 6 |     min-width: 110px;
 7 |   }
 8 | }
 9 | 
10 | .ant-input-affix-wrapper .ant-input-suffix {
11 |   right: 9px;
12 | }
13 | 
14 | .ant-input-clear-icon {
15 |   margin-right: 5px;
16 | }
17 | 
18 | .ant-input-affix-wrapper-textarea-with-clear-btn {
19 |   padding: 0 !important;
20 | 
21 |   textarea.ant-input {
22 |     padding: 4px;
23 |   }
24 | }
25 | 
26 | [data-theme="dark"] {
27 | 
28 |   .ant-input-group.ant-input-group-compact>* {
29 |     border-right-color: transparent;
30 |   }
31 | 
32 |   .ant-input-group-addon {
33 |     background-color: transparent !important;
34 |   }
35 | 
36 |   .ant-picker-input>input[disabled],
37 |   .ant-input[disabled] {
38 |     color: #939393 !important;
39 |   }
40 | 
41 |   .ant-picker-input>input:not(:focus) {
42 |     border-color: transparent !important;
43 |   }
44 | }
45 | 
46 | .custom-input-group.ant-input-group-compact>*:not(:last-child) {
47 |   border-right-width: 0 !important;
48 | }
49 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/design/config.less:
--------------------------------------------------------------------------------
1 | @import (reference) 'color.less';
2 | @import (reference) 'var/index.less';
3 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/design/transition/base.less:
--------------------------------------------------------------------------------
 1 | .transition-default() {
 2 | 
 3 |   &-enter-active,
 4 |   &-leave-active {
 5 |     transition: 0.3s cubic-bezier(0.25, 0.8, 0.5, 1) !important;
 6 |   }
 7 | 
 8 |   &-move {
 9 |     transition: transform 0.4s;
10 |   }
11 | }
12 | 
13 | .expand-transition {
14 |   .transition-default();
15 | }
16 | 
17 | .expand-x-transition {
18 |   .transition-default();
19 | }
20 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/design/transition/index.less:
--------------------------------------------------------------------------------
 1 | @import './base.less';
 2 | @import './fade.less';
 3 | @import './scale.less';
 4 | @import './slide.less';
 5 | @import './scroll.less';
 6 | @import './zoom.less';
 7 | 
 8 | .collapse-transition {
 9 |   transition: 0.2s height ease-in-out, 0.2s padding-top ease-in-out, 0.2s padding-bottom ease-in-out;
10 | }
11 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/design/transition/scale.less:
--------------------------------------------------------------------------------
 1 | .scale-transition {
 2 |   .transition-default();
 3 | 
 4 |   &-enter-from,
 5 |   &-leave,
 6 |   &-leave-to {
 7 |     opacity: 0;
 8 |     transform: scale(0);
 9 |   }
10 | }
11 | 
12 | .scale-rotate-transition {
13 |   .transition-default();
14 | 
15 |   &-enter-from,
16 |   &-leave,
17 |   &-leave-to {
18 |     opacity: 0;
19 |     transform: scale(0) rotate(-45deg);
20 |   }
21 | }
22 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/design/transition/slide.less:
--------------------------------------------------------------------------------
 1 | .slide-y-transition {
 2 |   .transition-default();
 3 | 
 4 |   &-enter-from,
 5 |   &-leave-to {
 6 |     opacity: 0;
 7 |     transform: translateY(-15px);
 8 |   }
 9 | }
10 | 
11 | .slide-y-reverse-transition {
12 |   .transition-default();
13 | 
14 |   &-enter-from,
15 |   &-leave-to {
16 |     opacity: 0;
17 |     transform: translateY(15px);
18 |   }
19 | }
20 | 
21 | .slide-x-transition {
22 |   .transition-default();
23 | 
24 |   &-enter-from,
25 |   &-leave-to {
26 |     opacity: 0;
27 |     transform: translateX(-15px);
28 |   }
29 | }
30 | 
31 | .slide-x-reverse-transition {
32 |   .transition-default();
33 | 
34 |   &-enter-from,
35 |   &-leave-to {
36 |     opacity: 0;
37 |     transform: translateX(15px);
38 |   }
39 | }
40 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/design/transition/zoom.less:
--------------------------------------------------------------------------------
 1 | // zoom-out
 2 | .zoom-out-enter-active,
 3 | .zoom-out-leave-active {
 4 |   transition: opacity 0.1 ease-in-out, transform 0.15s ease-out;
 5 | }
 6 | 
 7 | .zoom-out-enter-from,
 8 | .zoom-out-leave-to {
 9 |   opacity: 0;
10 |   transform: scale(0);
11 | }
12 | 
13 | // zoom-fade
14 | .zoom-fade-enter-active,
15 | .zoom-fade-leave-active {
16 |   transition: transform 0.2s, opacity 0.3s ease-out;
17 | }
18 | 
19 | .zoom-fade-enter-from {
20 |   opacity: 0;
21 |   transform: scale(0.92);
22 | }
23 | 
24 | .zoom-fade-leave-to {
25 |   opacity: 0;
26 |   transform: scale(1.06);
27 | }
28 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/design/var/breakpoint.less:
--------------------------------------------------------------------------------
 1 | // =================================
 2 | // ==============Screen breakpoints============
 3 | // =================================
 4 | 
 5 | // Extra small screen / phone
 6 | @screen-xs: 480px;
 7 | @screen-xs-min: @screen-xs;
 8 | 
 9 | // Small screen / tablet
10 | @screen-sm: 576px;
11 | @screen-sm-min: @screen-sm;
12 | 
13 | // Medium screen / desktop
14 | @screen-md: 768px;
15 | @screen-md-min: @screen-md;
16 | 
17 | // Large screen / wide desktop
18 | @screen-lg: 992px;
19 | @screen-lg-min: @screen-lg;
20 | 
21 | // Extra large screen / full hd
22 | @screen-xl: 1200px;
23 | @screen-xl-min: @screen-xl;
24 | 
25 | // Extra extra large screen / large desktop
26 | @screen-2xl: 1600px;
27 | @screen-2xl-min: @screen-2xl;
28 | 
29 | @screen-xs-max: (@screen-sm-min - 1px);
30 | @screen-sm-max: (@screen-md-min - 1px);
31 | @screen-md-max: (@screen-lg-min - 1px);
32 | @screen-lg-max: (@screen-xl-min - 1px);
33 | @screen-xl-max: (@screen-2xl-min - 1px);
34 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/design/var/easing.less:
--------------------------------------------------------------------------------
 1 | // =================================
 2 | // ==============Animation function-===========
 3 | // =================================
 4 | 
 5 | @ease-base-out: cubic-bezier(0.7, 0.3, 0.1, 1);
 6 | @ease-base-in: cubic-bezier(0.9, 0, 0.3, 0.7);
 7 | @ease-out: cubic-bezier(0.215, 0.61, 0.355, 1);
 8 | @ease-in: cubic-bezier(0.55, 0.055, 0.675, 0.19);
 9 | @ease-in-out: cubic-bezier(0.645, 0.045, 0.355, 1);
10 | @ease-out-back: cubic-bezier(0.12, 0.4, 0.29, 1.46);
11 | @ease-in-back: cubic-bezier(0.71, -0.46, 0.88, 0.6);
12 | @ease-in-out-back: cubic-bezier(0.71, -0.46, 0.29, 1.46);
13 | @ease-out-circ: cubic-bezier(0.08, 0.82, 0.17, 1);
14 | @ease-in-circ: cubic-bezier(0.6, 0.04, 0.98, 0.34);
15 | @ease-in-out-circ: cubic-bezier(0.78, 0.14, 0.15, 0.86);
16 | @ease-out-quint: cubic-bezier(0.23, 1, 0.32, 1);
17 | @ease-in-quint: cubic-bezier(0.755, 0.05, 0.855, 0.06);
18 | @ease-in-out-quint: cubic-bezier(0.86, 0, 0.07, 1);
19 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/design/var/index.less:
--------------------------------------------------------------------------------
 1 | @import (reference) '../color.less';
 2 | @import 'easing';
 3 | @import 'breakpoint';
 4 | 
 5 | @namespace: streampark;
 6 | 
 7 | // tabs
 8 | @multiple-height: 30px;
 9 | 
10 | // headers
11 | @header-height: 64px;
12 | 
13 | // logo width
14 | @logo-width: 64px;
15 | 
16 | //
17 | @side-drag-z-index: 200;
18 | 
19 | @page-loading-z-index: 10000;
20 | 
21 | @lock-page-z-index: 3000;
22 | 
23 | @layout-header-fixed-z-index: 500;
24 | 
25 | @multiple-tab-fixed-z-index: 505;
26 | 
27 | @layout-sider-fixed-z-index: 510;
28 | 
29 | @layout-mix-sider-fixed-z-index: 550;
30 | 
31 | @preview-comp-z-index: 1000;
32 | 
33 | @page-footer-z-index: 99;
34 | 
35 | .bem(@n; @content) {
36 |   @{namespace}-@{n} {
37 |     @content();
38 |   }
39 | }
40 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/directives/index.ts:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Configure and register global directives
 3 |  */
 4 | import type { App } from 'vue';
 5 | import { setupPermissionDirective } from './permission';
 6 | import { setupLoadingDirective } from './loading';
 7 | 
 8 | export function setupGlobDirectives(app: App) {
 9 |   setupPermissionDirective(app);
10 |   setupLoadingDirective(app);
11 | }
12 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/directives/permission.ts:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Global authority directive
 3 |  * Used for fine-grained control of component permissions
 4 |  * @Example v-auth="app:edit"
 5 |  */
 6 | import type { App, Directive, DirectiveBinding } from 'vue';
 7 | 
 8 | import { usePermission } from '/@/hooks/web/usePermission';
 9 | 
10 | function isAuth(el: Element, binding: any) {
11 |   const { hasPermission } = usePermission();
12 | 
13 |   const value = binding.value;
14 |   if (!value) return;
15 |   if (!hasPermission(value)) {
16 |     el.parentNode?.removeChild(el);
17 |   }
18 | }
19 | 
20 | const mounted = (el: Element, binding: DirectiveBinding<any>) => {
21 |   isAuth(el, binding);
22 | };
23 | 
24 | const authDirective: Directive = {
25 |   mounted,
26 | };
27 | 
28 | export function setupPermissionDirective(app: App) {
29 |   app.directive('auth', authDirective);
30 | }
31 | 
32 | export default authDirective;
33 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/appEnum.ts:
--------------------------------------------------------------------------------
 1 | export const SIDE_BAR_MINI_WIDTH = 48;
 2 | export const SIDE_BAR_SHOW_TIT_MINI_WIDTH = 80;
 3 | 
 4 | export enum ContentEnum {
 5 |   // auto width
 6 |   FULL = 'full',
 7 |   // fixed width
 8 |   FIXED = 'fixed',
 9 | }
10 | 
11 | // menu theme enum
12 | export enum ThemeEnum {
13 |   DARK = 'dark',
14 |   LIGHT = 'light',
15 | }
16 | 
17 | export enum SettingButtonPositionEnum {
18 |   AUTO = 'auto',
19 |   HEADER = 'header',
20 |   FIXED = 'fixed',
21 | }
22 | 
23 | export enum SessionTimeoutProcessingEnum {
24 |   ROUTE_JUMP,
25 |   PAGE_COVERAGE,
26 | }
27 | 
28 | /**
29 |  * Access mode
30 |  */
31 | export enum PermissionModeEnum {
32 |   // role
33 |   ROLE = 'ROLE',
34 |   // black
35 |   BACK = 'BACK',
36 |   // route mapping
37 |   ROUTE_MAPPING = 'ROUTE_MAPPING',
38 | }
39 | 
40 | // Route switching animation
41 | export enum RouterTransitionEnum {
42 |   ZOOM_FADE = 'zoom-fade',
43 |   ZOOM_OUT = 'zoom-out',
44 |   FADE_SIDE = 'fade-slide',
45 |   FADE = 'fade',
46 |   FADE_BOTTOM = 'fade-bottom',
47 |   FADE_SCALE = 'fade-scale',
48 | }
49 | 
50 | export enum AuthUserName {
51 |   ADMIN = 'admin',
52 | }
53 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/breakpointEnum.ts:
--------------------------------------------------------------------------------
 1 | export enum sizeEnum {
 2 |   XS = 'XS',
 3 |   SM = 'SM',
 4 |   MD = 'MD',
 5 |   LG = 'LG',
 6 |   XL = 'XL',
 7 |   XXL = 'XXL',
 8 | }
 9 | 
10 | export enum screenEnum {
11 |   XS = 480,
12 |   SM = 576,
13 |   MD = 768,
14 |   LG = 992,
15 |   XL = 1200,
16 |   XXL = 1600,
17 | }
18 | 
19 | const screenMap = new Map<sizeEnum, number>();
20 | 
21 | screenMap.set(sizeEnum.XS, screenEnum.XS);
22 | screenMap.set(sizeEnum.SM, screenEnum.SM);
23 | screenMap.set(sizeEnum.MD, screenEnum.MD);
24 | screenMap.set(sizeEnum.LG, screenEnum.LG);
25 | screenMap.set(sizeEnum.XL, screenEnum.XL);
26 | screenMap.set(sizeEnum.XXL, screenEnum.XXL);
27 | 
28 | export { screenMap };
29 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/cacheEnum.ts:
--------------------------------------------------------------------------------
 1 | // token key
 2 | export const TOKEN_KEY = 'TOKEN__';
 3 | 
 4 | export const PERMISSION_KEY = 'PERMISSION__';
 5 | // expire key
 6 | export const EXPIRE_KEY = 'EXPIRE__';
 7 | 
 8 | export const LOCALE_KEY = 'LOCALE__';
 9 | 
10 | // user info key
11 | export const USER_INFO_KEY = 'USER__INFO__';
12 | 
13 | // role info key
14 | export const ROLES_KEY = 'ROLES__KEY__';
15 | 
16 | // project config key
17 | export const PROJ_CFG_KEY = 'PROJ__CFG__KEY__';
18 | 
19 | // lock info
20 | export const LOCK_INFO_KEY = 'LOCK__INFO__KEY__';
21 | 
22 | export const MULTIPLE_TABS_KEY = 'MULTIPLE_TABS__KEY__';
23 | 
24 | export const APP_DARK_MODE_KEY_ = '__APP__DARK__MODE__';
25 | 
26 | //teamId
27 | export const APP_TEAMID_KEY_ = '__APP__TEAMID__';
28 | 
29 | // base global local key
30 | export const APP_LOCAL_CACHE_KEY = 'COMMON__LOCAL__KEY__';
31 | 
32 | // base global session key
33 | export const APP_SESSION_CACHE_KEY = 'COMMON__SESSION__KEY__';
34 | 
35 | export enum CacheTypeEnum {
36 |   SESSION,
37 |   LOCAL,
38 | }
39 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/exceptionEnum.ts:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @description: Exception related enumeration
 3 |  */
 4 | export enum ExceptionEnum {
 5 |   // page not access
 6 |   PAGE_NOT_ACCESS = 403,
 7 | 
 8 |   // page not found
 9 |   PAGE_NOT_FOUND = 404,
10 | 
11 |   // error
12 |   ERROR = 500,
13 | 
14 |   // net work error
15 |   NET_WORK_ERROR = 10000,
16 | 
17 |   // No data on the page. In fact, it is not an exception page
18 |   PAGE_NOT_DATA = 10100,
19 | }
20 | 
21 | export enum ErrorTypeEnum {
22 |   VUE = 'vue',
23 |   SCRIPT = 'script',
24 |   RESOURCE = 'resource',
25 |   AJAX = 'ajax',
26 |   PROMISE = 'promise',
27 | }
28 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/formEnum.ts:
--------------------------------------------------------------------------------
1 | export const enum FormTypeEnum {
2 |   Create = 'create',
3 |   Edit = 'edit',
4 |   View = 'view',
5 | }
6 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/httpEnum.ts:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @description: Request result set
 3 |  */
 4 | export enum ResultEnum {
 5 |   SUCCESS = '200',
 6 |   ERROR = 1,
 7 |   TIMEOUT = '401',
 8 |   TYPE = 'success',
 9 | }
10 | 
11 | /**
12 |  * @description: request method
13 |  */
14 | export enum RequestEnum {
15 |   GET = 'GET',
16 |   POST = 'POST',
17 |   PUT = 'PUT',
18 |   DELETE = 'DELETE',
19 | }
20 | 
21 | /**
22 |  * @description:  contentType
23 |  */
24 | export enum ContentTypeEnum {
25 |   // json
26 |   JSON = 'application/json;charset=UTF-8',
27 |   // form-data qs
28 |   FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8',
29 |   // form-data  upload
30 |   FORM_DATA = 'multipart/form-data;charset=UTF-8',
31 | }
32 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/menuEnum.ts:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * @description: menu type
 3 |  */
 4 | export enum MenuTypeEnum {
 5 |   // left menu
 6 |   SIDEBAR = 'sidebar',
 7 | 
 8 |   MIX_SIDEBAR = 'mix-sidebar',
 9 |   // mixin menu
10 |   MIX = 'mix',
11 |   // top menu
12 |   TOP_MENU = 'top-menu',
13 | }
14 | 
15 | // Folding trigger position
16 | export enum TriggerEnum {
17 |   NONE = 'NONE',
18 |   FOOTER = 'FOOTER',
19 |   HEADER = 'HEADER',
20 | }
21 | 
22 | export type Mode = 'vertical' | 'vertical-right' | 'horizontal' | 'inline';
23 | 
24 | // menu mode
25 | export enum MenuModeEnum {
26 |   VERTICAL = 'vertical',
27 |   HORIZONTAL = 'horizontal',
28 |   VERTICAL_RIGHT = 'vertical-right',
29 |   INLINE = 'inline',
30 | }
31 | 
32 | export enum MenuSplitTyeEnum {
33 |   NONE,
34 |   TOP,
35 |   LEFT,
36 | }
37 | 
38 | export enum TopMenuAlignEnum {
39 |   CENTER = 'center',
40 |   START = 'start',
41 |   END = 'end',
42 | }
43 | 
44 | export enum MixSidebarTriggerEnum {
45 |   HOVER = 'hover',
46 |   CLICK = 'click',
47 | }
48 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/pageEnum.ts:
--------------------------------------------------------------------------------
 1 | export enum PageEnum {
 2 |   // basic login path
 3 |   BASE_LOGIN = '/login',
 4 |   // basic home path
 5 |   BASE_HOME = '/flink/app',
 6 |   // BASE_HOME = '/dashboard',
 7 |   // error page path
 8 |   ERROR_PAGE = '/exception',
 9 |   // error log page path
10 |   ERROR_LOG_PAGE = '/error-log/list',
11 |   // other login path
12 |   SSO_LOGIN = '/sso/signin',
13 | }
14 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/projectEnum.ts:
--------------------------------------------------------------------------------
 1 | export enum ProjectTypeEnum {
 2 |   FLINK = 1,
 3 |   SPARK = 2,
 4 | }
 5 | 
 6 | export enum CVSTypeEnum {
 7 |   GIT = 1,
 8 |   SVN = 2,
 9 | }
10 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/roleEnum.ts:
--------------------------------------------------------------------------------
1 | export enum RoleEnum {
2 |   // super admin
3 |   SUPER = 'super',
4 | 
5 |   // tester
6 |   TEST = 'test',
7 | }
8 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/enums/sizeEnum.ts:
--------------------------------------------------------------------------------
 1 | export enum SizeEnum {
 2 |   DEFAULT = 'default',
 3 |   SMALL = 'small',
 4 |   LARGE = 'large',
 5 | }
 6 | 
 7 | export enum SizeNumberEnum {
 8 |   DEFAULT = 48,
 9 |   SMALL = 16,
10 |   LARGE = 64,
11 | }
12 | 
13 | export const sizeMap: Map<SizeEnum, SizeNumberEnum> = (() => {
14 |   const map = new Map<SizeEnum, SizeNumberEnum>();
15 |   map.set(SizeEnum.DEFAULT, SizeNumberEnum.DEFAULT);
16 |   map.set(SizeEnum.SMALL, SizeNumberEnum.SMALL);
17 |   map.set(SizeEnum.LARGE, SizeNumberEnum.LARGE);
18 |   return map;
19 | })();
20 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/component/usePageContext.ts:
--------------------------------------------------------------------------------
 1 | import type { InjectionKey, ComputedRef, Ref } from 'vue';
 2 | import { createContext, useContext } from '/@/hooks/core/useContext';
 3 | 
 4 | export interface PageContextProps {
 5 |   contentHeight: ComputedRef<number>;
 6 |   pageHeight: Ref<number>;
 7 |   setPageHeight: (height: number) => Promise<void>;
 8 | }
 9 | 
10 | const key: InjectionKey<PageContextProps> = Symbol();
11 | 
12 | export function createPageContext(context: PageContextProps) {
13 |   return createContext<PageContextProps>(context, key, { native: true });
14 | }
15 | 
16 | export function usePageContext() {
17 |   return useContext<PageContextProps>(key);
18 | }
19 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/core/onMountedOrActivated.ts:
--------------------------------------------------------------------------------
 1 | import { nextTick, onMounted, onActivated } from 'vue';
 2 | 
 3 | export function onMountedOrActivated(hook: Fn) {
 4 |   let mounted: boolean;
 5 | 
 6 |   onMounted(() => {
 7 |     hook();
 8 |     nextTick(() => {
 9 |       mounted = true;
10 |     });
11 |   });
12 | 
13 |   onActivated(() => {
14 |     if (mounted) {
15 |       hook();
16 |     }
17 |   });
18 | }
19 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/core/useLockFn.ts:
--------------------------------------------------------------------------------
 1 | import { ref, unref } from 'vue';
 2 | 
 3 | export function useLockFn<P extends any[] = any[], V = any>(fn: (...args: P) => Promise<V>) {
 4 |   const lockRef = ref(false);
 5 |   return async function (...args: P) {
 6 |     if (unref(lockRef)) return;
 7 |     lockRef.value = true;
 8 |     try {
 9 |       const ret = await fn(...args);
10 |       lockRef.value = false;
11 |       return ret;
12 |     } catch (e) {
13 |       lockRef.value = false;
14 |       throw e;
15 |     }
16 |   };
17 | }
18 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/core/useRefs.ts:
--------------------------------------------------------------------------------
 1 | import type { Ref } from 'vue';
 2 | import { ref, onBeforeUpdate } from 'vue';
 3 | 
 4 | export function useRefs(): [Ref<HTMLElement[]>, (index: number) => (el: HTMLElement) => void] {
 5 |   const refs = ref([]) as Ref<HTMLElement[]>;
 6 | 
 7 |   onBeforeUpdate(() => {
 8 |     refs.value = [];
 9 |   });
10 | 
11 |   const setRefs = (index: number) => (el: HTMLElement) => {
12 |     refs.value[index] = el;
13 |   };
14 | 
15 |   return [refs, setRefs];
16 | }
17 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/event/useWindowSizeFn.ts:
--------------------------------------------------------------------------------
 1 | import { tryOnMounted, tryOnUnmounted, useDebounceFn } from '@vueuse/core';
 2 | 
 3 | interface WindowSizeOptions {
 4 |   once?: boolean;
 5 |   immediate?: boolean;
 6 |   listenerOptions?: AddEventListenerOptions | boolean;
 7 | }
 8 | 
 9 | export function useWindowSizeFn<T>(fn: Fn<T>, wait = 150, options?: WindowSizeOptions) {
10 |   let handler = () => {
11 |     fn();
12 |   };
13 |   const handleSize = useDebounceFn(handler, wait);
14 |   handler = handleSize;
15 | 
16 |   const start = () => {
17 |     if (options && options.immediate) {
18 |       handler();
19 |     }
20 |     window.addEventListener('resize', handler);
21 |   };
22 | 
23 |   const stop = () => {
24 |     window.removeEventListener('resize', handler);
25 |   };
26 | 
27 |   tryOnMounted(() => {
28 |     start();
29 |   });
30 | 
31 |   tryOnUnmounted(() => {
32 |     stop();
33 |   });
34 |   return [start, stop];
35 | }
36 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/setting/index.ts:
--------------------------------------------------------------------------------
 1 | import type { GlobConfig } from '/#/config';
 2 | 
 3 | import { warn } from '/@/utils/log';
 4 | import { getAppEnvConfig } from '/@/utils/env';
 5 | 
 6 | export const useGlobSetting = (): Readonly<GlobConfig> => {
 7 |   const {
 8 |     VITE_GLOB_APP_TITLE,
 9 |     VITE_GLOB_API_URL,
10 |     VITE_GLOB_APP_SHORT_NAME,
11 |     VITE_GLOB_API_URL_PREFIX,
12 |     VITE_GLOB_UPLOAD_URL,
13 |   } = getAppEnvConfig();
14 | 
15 |   if (!/[a-zA-Z\_]*/.test(VITE_GLOB_APP_SHORT_NAME)) {
16 |     warn(
17 |       `VITE_GLOB_APP_SHORT_NAME Variables can only be characters/underscores, please modify in the environment variables and re-running.`,
18 |     );
19 |   }
20 | 
21 |   // Take global configuration
22 |   const glob: Readonly<GlobConfig> = {
23 |     title: VITE_GLOB_APP_TITLE,
24 |     apiUrl: VITE_GLOB_API_URL,
25 |     shortName: VITE_GLOB_APP_SHORT_NAME,
26 |     urlPrefix: VITE_GLOB_API_URL_PREFIX,
27 |     uploadUrl: VITE_GLOB_UPLOAD_URL,
28 |   };
29 |   return glob as Readonly<GlobConfig>;
30 | };
31 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/setting/useMultipleTabSetting.ts:
--------------------------------------------------------------------------------
 1 | import type { MultiTabsSetting } from '/#/config';
 2 | 
 3 | import { computed } from 'vue';
 4 | 
 5 | import { useAppStore } from '/@/store/modules/app';
 6 | 
 7 | export function useMultipleTabSetting() {
 8 |   const appStore = useAppStore();
 9 | 
10 |   const getShowMultipleTab = computed(() => appStore.getMultiTabsSetting.show);
11 | 
12 |   const getShowQuick = computed(() => appStore.getMultiTabsSetting.showQuick);
13 | 
14 |   const getShowRedo = computed(() => appStore.getMultiTabsSetting.showRedo);
15 | 
16 |   const getShowFold = computed(() => appStore.getMultiTabsSetting.showFold);
17 | 
18 |   function setMultipleTabSetting(multiTabsSetting: Partial<MultiTabsSetting>) {
19 |     appStore.setProjectConfig({ multiTabsSetting });
20 |   }
21 |   return {
22 |     setMultipleTabSetting,
23 |     getShowMultipleTab,
24 |     getShowQuick,
25 |     getShowRedo,
26 |     getShowFold,
27 |   };
28 | }
29 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/setting/useTransitionSetting.ts:
--------------------------------------------------------------------------------
 1 | import type { TransitionSetting } from '/#/config';
 2 | 
 3 | import { computed } from 'vue';
 4 | 
 5 | import { useAppStore } from '/@/store/modules/app';
 6 | 
 7 | export function useTransitionSetting() {
 8 |   const appStore = useAppStore();
 9 | 
10 |   const getEnableTransition = computed(() => appStore.getTransitionSetting?.enable);
11 | 
12 |   const getOpenNProgress = computed(() => appStore.getTransitionSetting?.openNProgress);
13 | 
14 |   const getOpenPageLoading = computed((): boolean => {
15 |     return !!appStore.getTransitionSetting?.openPageLoading;
16 |   });
17 | 
18 |   const getBasicTransition = computed(() => appStore.getTransitionSetting?.basicTransition);
19 | 
20 |   function setTransitionSetting(transitionSetting: Partial<TransitionSetting>) {
21 |     appStore.setProjectConfig({ transitionSetting });
22 |   }
23 |   return {
24 |     setTransitionSetting,
25 | 
26 |     getEnableTransition,
27 |     getOpenNProgress,
28 |     getOpenPageLoading,
29 |     getBasicTransition,
30 |   };
31 | }
32 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/web/useAppInject.ts:
--------------------------------------------------------------------------------
 1 | import { useAppProviderContext } from '/@/components/Application';
 2 | import { computed, unref } from 'vue';
 3 | 
 4 | export function useAppInject() {
 5 |   const values = useAppProviderContext();
 6 | 
 7 |   return {
 8 |     getIsMobile: computed(() => unref(values.isMobile)),
 9 |   };
10 | }
11 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/web/useContextMenu.ts:
--------------------------------------------------------------------------------
 1 | import { onUnmounted, getCurrentInstance } from 'vue';
 2 | import { createContextMenu, destroyContextMenu } from '/@/components/ContextMenu';
 3 | import type { ContextMenuItem } from '/@/components/ContextMenu';
 4 | export type { ContextMenuItem };
 5 | export function useContextMenu(authRemove = true) {
 6 |   if (getCurrentInstance() && authRemove) {
 7 |     onUnmounted(() => {
 8 |       destroyContextMenu();
 9 |     });
10 |   }
11 |   return [createContextMenu, destroyContextMenu];
12 | }
13 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/web/useDesign.ts:
--------------------------------------------------------------------------------
 1 | import { useAppProviderContext } from '/@/components/Application';
 2 | // import { computed } from 'vue';
 3 | // import { lowerFirst } from 'lodash-es';
 4 | export function useDesign(scope: string) {
 5 |   const values = useAppProviderContext();
 6 |   // const $style = cssModule ? useCssModule() : {};
 7 | 
 8 |   // const style: Record<string, string> = {};
 9 |   // if (cssModule) {
10 |   //   Object.keys($style).forEach((key) => {
11 |   //     // const moduleCls = $style[key];
12 |   //     const k = key.replace(new RegExp(`^${values.prefixCls}-?`, 'ig'), '');
13 |   //     style[lowerFirst(k)] = $style[key];
14 |   //   });
15 |   // }
16 |   return {
17 |     // prefixCls: computed(() => `${values.prefixCls}-${scope}`),
18 |     prefixCls: `${values.prefixCls}-${scope}`,
19 |     prefixVar: values.prefixCls,
20 |     // style,
21 |   };
22 | }
23 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/web/useFormValidate.ts:
--------------------------------------------------------------------------------
 1 | import { computed, ref, unref } from 'vue';
 2 | import { FormItem } from '/@/components/Form/src/types/formItem';
 3 | export type FormValidateStatus = 'success' | 'warning' | 'error' | 'validating' | '';
 4 | 
 5 | export const useFormValidate = () => {
 6 |   const validateStatus = ref<FormValidateStatus>('');
 7 |   const help = ref('');
 8 | 
 9 |   const getValidateStatus = computed(() => {
10 |     return validateStatus.value;
11 |   });
12 |   const setValidateStatus = (status: FormValidateStatus) => {
13 |     validateStatus.value = status;
14 |   };
15 | 
16 |   const getHelp = computed(() => {
17 |     return help.value;
18 |   });
19 | 
20 |   const setHelp = (message: string) => {
21 |     help.value = message;
22 |   };
23 |   const getItemProp = computed((): Partial<FormItem> => {
24 |     return { validateStatus: unref(validateStatus), help: unref(help), hasFeedback: true };
25 |   });
26 |   return { getValidateStatus, setValidateStatus, getHelp, setHelp, getItemProp };
27 | };
28 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/web/useFullContent.ts:
--------------------------------------------------------------------------------
 1 | import { computed, unref } from 'vue';
 2 | 
 3 | import { useAppStore } from '/@/store/modules/app';
 4 | 
 5 | import { useRouter } from 'vue-router';
 6 | 
 7 | /**
 8 |  * @description: Full screen display content
 9 |  */
10 | export const useFullContent = () => {
11 |   const appStore = useAppStore();
12 |   const router = useRouter();
13 |   const { currentRoute } = router;
14 | 
15 |   // Whether to display the content in full screen without displaying the menu
16 |   const getFullContent = computed(() => {
17 |     // Query parameters, the full screen is displayed when the address bar has a full parameter
18 |     const route = unref(currentRoute);
19 |     const query = route.query;
20 |     if (query && Reflect.has(query, '__full__')) {
21 |       return true;
22 |     }
23 |     // Return to the configuration in the configuration file
24 |     return appStore.getProjectConfig.fullContent;
25 |   });
26 | 
27 |   return { getFullContent };
28 | };
29 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/web/usePagination.ts:
--------------------------------------------------------------------------------
 1 | import type { Ref } from 'vue';
 2 | import { ref, unref, computed } from 'vue';
 3 | 
 4 | function pagination<T = any>(list: T[], pageNo: number, pageSize: number): T[] {
 5 |   const offset = (pageNo - 1) * Number(pageSize);
 6 |   const ret =
 7 |     offset + Number(pageSize) >= list.length
 8 |       ? list.slice(offset, list.length)
 9 |       : list.slice(offset, offset + Number(pageSize));
10 |   return ret;
11 | }
12 | 
13 | export function usePagination<T = any>(list: Ref<T[]>, pageSize: number) {
14 |   const currentPage = ref(1);
15 |   const pageSizeRef = ref(pageSize);
16 | 
17 |   const getPaginationList = computed(() => {
18 |     return pagination(unref(list), unref(currentPage), unref(pageSizeRef));
19 |   });
20 | 
21 |   const getTotal = computed(() => {
22 |     return unref(list).length;
23 |   });
24 | 
25 |   function setCurrentPage(page: number) {
26 |     currentPage.value = page;
27 |   }
28 | 
29 |   function setPageSize(pageSize: number) {
30 |     pageSizeRef.value = pageSize;
31 |   }
32 | 
33 |   return { setCurrentPage, getTotal, setPageSize, getPaginationList };
34 | }
35 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/hooks/web/useSortable.ts:
--------------------------------------------------------------------------------
 1 | import { nextTick, unref } from 'vue';
 2 | import type { Ref } from 'vue';
 3 | import type { Options } from 'sortablejs';
 4 | 
 5 | export function useSortable(el: HTMLElement | Ref<HTMLElement>, options?: Options) {
 6 |   function initSortable() {
 7 |     nextTick(async () => {
 8 |       if (!el) return;
 9 | 
10 |       const Sortable = (await import('sortablejs')).default;
11 |       Sortable.create(unref(el), {
12 |         animation: 500,
13 |         delay: 400,
14 |         delayOnTouchOnly: true,
15 |         ...options,
16 |       });
17 |     });
18 |   }
19 | 
20 |   return { initSortable };
21 | }
22 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/content/useContentContext.ts:
--------------------------------------------------------------------------------
 1 | import type { InjectionKey, ComputedRef } from 'vue';
 2 | import { createContext, useContext } from '/@/hooks/core/useContext';
 3 | 
 4 | export interface ContentContextProps {
 5 |   contentHeight: ComputedRef<number>;
 6 |   setPageHeight: (height: number) => Promise<void>;
 7 | }
 8 | 
 9 | const key: InjectionKey<ContentContextProps> = Symbol();
10 | 
11 | export function createContentContext(context: ContentContextProps) {
12 |   return createContext<ContentContextProps>(context, key, { native: true });
13 | }
14 | 
15 | export function useContentContext() {
16 |   return useContext<ContentContextProps>(key);
17 | }
18 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/header/components/FullScreen.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <Tooltip :title="getTitle" placement="bottom" :mouseEnterDelay="0.5">
 3 |     <span @click="toggle">
 4 |       <FullscreenOutlined v-if="!isFullscreen" />
 5 |       <FullscreenExitOutlined v-else />
 6 |     </span>
 7 |   </Tooltip>
 8 | </template>
 9 | <script lang="ts">
10 |   import { defineComponent } from 'vue';
11 |   import { Tooltip } from 'ant-design-vue';
12 | 
13 |   import { FullscreenExitOutlined, FullscreenOutlined } from '@ant-design/icons-vue';
14 |   import { useFullscreenEvent } from '/@/hooks/event/useFullscreen';
15 |   export default defineComponent({
16 |     name: 'FullScreen',
17 |     components: { FullscreenExitOutlined, FullscreenOutlined, Tooltip },
18 | 
19 |     setup() {
20 |       const { toggle, isFullscreen, getTitle } = useFullscreenEvent(true);
21 | 
22 |       return {
23 |         getTitle,
24 |         isFullscreen,
25 |         toggle,
26 |       };
27 |     },
28 |   });
29 | </script>
30 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/header/components/Github.vue:
--------------------------------------------------------------------------------
 1 | <script lang="ts" setup name="Github">
 2 |   import { Tooltip } from 'ant-design-vue';
 3 |   import Icon from '/@/components/Icon';
 4 |   import { GITHUB_URL } from '/@/settings/siteSetting';
 5 | </script>
 6 | <template>
 7 |   <Tooltip title="Github" placement="bottom" :mouseEnterDelay="0.5">
 8 |     <a :href="GITHUB_URL" target="_blank" class="text-black hover:text-black github">
 9 |       <Icon icon="ant-design:github-outlined" class="!pl-8px" style="font-size: 19px !important" />
10 |       <img
11 |         src="https://img.shields.io/github/stars/apache/streampark.svg?sanitize=true"
12 |         class="px-5px hidden md:block"
13 |       />
14 | 
15 |       <img
16 |         src="https://img.shields.io/github/forks/apache/streampark.svg?sanitize=true"
17 |         class="pr-8px hidden md:block"
18 |       />
19 |     </a>
20 |   </Tooltip>
21 | </template>
22 | <style lang="less">
23 |   [data-theme='dark'] {
24 |     .github,
25 |     .github:hover {
26 |       color: #fff;
27 |     }
28 |   }
29 | </style>
30 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/header/components/LockScreen.vue:
--------------------------------------------------------------------------------
 1 | <script lang="ts" setup>
 2 |   import { Tooltip } from 'ant-design-vue';
 3 |   import Icon from '/@/components/Icon';
 4 |   import { useModal } from '/@/components/Modal';
 5 |   import { useI18n } from '/@/hooks/web/useI18n';
 6 |   import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
 7 |   const LockAction = createAsyncComponent(() => import('./lock/LockModal.vue'));
 8 | 
 9 |   const [register, { openModal }] = useModal();
10 |   const { t } = useI18n();
11 |   function handleLock() {
12 |     openModal(true);
13 |   }
14 | </script>
15 | <template>
16 |   <div>
17 |     <Tooltip :title="t('layout.header.tooltipLock')" placement="bottom" :mouseEnterDelay="0.5">
18 |       <Icon
19 |         icon="ant-design:lock-outlined"
20 |         class="!px-8px"
21 |         style="font-size: 19px !important"
22 |         @click="handleLock"
23 |       />
24 |     </Tooltip>
25 |     <LockAction @register="register" />
26 |   </div>
27 | </template>
28 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/header/components/index.ts:
--------------------------------------------------------------------------------
 1 | import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
 2 | import FullScreen from './FullScreen.vue';
 3 | 
 4 | export const UserDropDown = createAsyncComponent(() => import('./user-dropdown/index.vue'), {
 5 |   loading: true,
 6 | });
 7 | 
 8 | export const LayoutBreadcrumb = createAsyncComponent(() => import('./Breadcrumb.vue'));
 9 | 
10 | export const Notify = createAsyncComponent(() => import('./notify/index.vue'));
11 | /* GitHub info */
12 | export const Github = createAsyncComponent(() => import('./Github.vue'));
13 | /* Slogan */
14 | export const Slogan = createAsyncComponent(() => import('./Slogan.vue'));
15 | /* User Team */
16 | export const UserTeam = createAsyncComponent(() => import('./UserTeam.vue'));
17 | export const LockScreen = createAsyncComponent(() => import('./LockScreen.vue'));
18 | 
19 | export const ErrorAction = createAsyncComponent(() => import('./ErrorAction.vue'));
20 | 
21 | export { FullScreen };
22 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/header/components/user-dropdown/DropMenuItem.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <MenuItem :key="itemKey">
 3 |     <span class="flex items-center">
 4 |       <Icon :icon="icon" class="mr-1" />
 5 |       <span>{{ text }}</span>
 6 |     </span>
 7 |   </MenuItem>
 8 | </template>
 9 | <script lang="ts">
10 |   import { Menu } from 'ant-design-vue';
11 | 
12 |   import { computed, defineComponent, getCurrentInstance } from 'vue';
13 | 
14 |   import Icon from '/@/components/Icon/index';
15 |   import { propTypes } from '/@/utils/propTypes';
16 | 
17 |   export default defineComponent({
18 |     name: 'DropdownMenuItem',
19 |     components: { MenuItem: Menu.Item, Icon },
20 |     props: {
21 |       // eslint-disable-next-line
22 |       key: propTypes.string,
23 |       text: propTypes.string,
24 |       icon: propTypes.string,
25 |     },
26 |     setup(props) {
27 |       const instance = getCurrentInstance();
28 |       const itemKey = computed(() => props.key || instance?.vnode?.props?.key);
29 |       return { itemKey };
30 |     },
31 |   });
32 | </script>
33 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/tabs/components/TabRedo.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <span :class="`${prefixCls}__extra-redo`" @click="handleRedo">
 3 |     <RedoOutlined :spin="loading" />
 4 |   </span>
 5 | </template>
 6 | <script lang="ts">
 7 |   import { defineComponent, ref } from 'vue';
 8 |   import { RedoOutlined } from '@ant-design/icons-vue';
 9 |   import { useDesign } from '/@/hooks/web/useDesign';
10 |   import { useTabs } from '/@/hooks/web/useTabs';
11 | 
12 |   export default defineComponent({
13 |     name: 'TabRedo',
14 |     components: { RedoOutlined },
15 | 
16 |     setup() {
17 |       const loading = ref(false);
18 | 
19 |       const { prefixCls } = useDesign('multiple-tabs-content');
20 |       const { refreshPage } = useTabs();
21 | 
22 |       async function handleRedo() {
23 |         loading.value = true;
24 |         await refreshPage();
25 |         setTimeout(() => {
26 |           loading.value = false;
27 |           // Animation execution time
28 |         }, 1200);
29 |       }
30 |       return { prefixCls, handleRedo, loading };
31 |     },
32 |   });
33 | </script>
34 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/tabs/types.ts:
--------------------------------------------------------------------------------
 1 | import type { DropMenu } from '/@/components/Dropdown/index';
 2 | import type { RouteLocationNormalized } from 'vue-router';
 3 | 
 4 | export enum TabContentEnum {
 5 |   TAB_TYPE,
 6 |   EXTRA_TYPE,
 7 | }
 8 | 
 9 | export type { DropMenu };
10 | 
11 | export interface TabContentProps {
12 |   tabItem: RouteLocationNormalized;
13 |   type?: TabContentEnum;
14 |   trigger?: ('click' | 'hover' | 'contextmenu')[];
15 | }
16 | 
17 | export enum MenuEventEnum {
18 |   REFRESH_PAGE,
19 |   CLOSE_CURRENT,
20 |   CLOSE_LEFT,
21 |   CLOSE_RIGHT,
22 |   CLOSE_OTHER,
23 |   CLOSE_ALL,
24 |   SCALE,
25 | }
26 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/trigger/HeaderTrigger.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <span :class="[prefixCls, theme]" @click="toggleCollapsed">
 3 |     <MenuUnfoldOutlined v-if="getCollapsed" /> <MenuFoldOutlined v-else />
 4 |   </span>
 5 | </template>
 6 | <script lang="ts">
 7 |   import { defineComponent } from 'vue';
 8 |   import { MenuUnfoldOutlined, MenuFoldOutlined } from '@ant-design/icons-vue';
 9 |   import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
10 |   import { useDesign } from '/@/hooks/web/useDesign';
11 |   import { propTypes } from '/@/utils/propTypes';
12 | 
13 |   export default defineComponent({
14 |     name: 'HeaderTrigger',
15 |     components: { MenuUnfoldOutlined, MenuFoldOutlined },
16 |     props: {
17 |       theme: propTypes.oneOf(['light', 'dark']),
18 |     },
19 |     setup() {
20 |       const { getCollapsed, toggleCollapsed } = useMenuSetting();
21 |       const { prefixCls } = useDesign('layout-header-trigger');
22 |       return { getCollapsed, toggleCollapsed, prefixCls };
23 |     },
24 |   });
25 | </script>
26 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/trigger/SiderTrigger.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <div @click.stop="toggleCollapsed">
 3 |     <DoubleRightOutlined v-if="getCollapsed" />
 4 |     <DoubleLeftOutlined v-else />
 5 |   </div>
 6 | </template>
 7 | <script lang="ts">
 8 |   import { defineComponent } from 'vue';
 9 |   import { DoubleRightOutlined, DoubleLeftOutlined } from '@ant-design/icons-vue';
10 |   import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
11 | 
12 |   export default defineComponent({
13 |     name: 'SiderTrigger',
14 |     components: { DoubleRightOutlined, DoubleLeftOutlined },
15 |     setup() {
16 |       const { getCollapsed, toggleCollapsed } = useMenuSetting();
17 | 
18 |       return { getCollapsed, toggleCollapsed };
19 |     },
20 |   });
21 | </script>
22 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/default/trigger/index.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <SiderTrigger v-if="sider" />
 3 |   <HeaderTrigger v-else :theme="theme" />
 4 | </template>
 5 | <script lang="ts">
 6 |   import { defineComponent } from 'vue';
 7 |   import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
 8 |   import { propTypes } from '/@/utils/propTypes';
 9 |   import HeaderTrigger from './HeaderTrigger.vue';
10 | 
11 |   export default defineComponent({
12 |     name: 'LayoutTrigger',
13 |     components: {
14 |       SiderTrigger: createAsyncComponent(() => import('./SiderTrigger.vue')),
15 |       HeaderTrigger: HeaderTrigger,
16 |     },
17 |     props: {
18 |       sider: propTypes.bool.def(true),
19 |       theme: propTypes.oneOf(['light', 'dark']),
20 |     },
21 |   });
22 | </script>
23 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/layouts/page/transition.ts:
--------------------------------------------------------------------------------
 1 | import type { FunctionalComponent } from 'vue';
 2 | import type { RouteLocation } from 'vue-router';
 3 | 
 4 | export interface DefaultContext {
 5 |   Component: FunctionalComponent & { type: Recordable };
 6 |   route: RouteLocation;
 7 | }
 8 | 
 9 | export function getTransitionName({
10 |   route,
11 |   openCache,
12 |   cacheTabs,
13 |   enableTransition,
14 |   def,
15 | }: Pick<DefaultContext, 'route'> & {
16 |   enableTransition: boolean;
17 |   openCache: boolean;
18 |   def: string;
19 |   cacheTabs: string[];
20 | }): string | undefined {
21 |   if (!enableTransition) {
22 |     return undefined;
23 |   }
24 | 
25 |   const isInCache = cacheTabs.includes(route.name as string);
26 |   const transitionName = 'fade-slide';
27 |   let name: string | undefined = transitionName;
28 | 
29 |   if (openCache) {
30 |     name = isInCache && route.meta.loaded ? transitionName : undefined;
31 |   }
32 |   return name || (route.meta.transitionName as string) || def;
33 | }
34 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/locales/lang/en/routes/basic.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | export default {
18 |   login: 'Login',
19 |   errorLogList: 'Error Log',
20 |   notice: {
21 |     message: 'Notification Message',
22 |     exception: 'Abnormal Alarm',
23 |   },
24 | };
25 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/routes/basic.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | export default {
18 |   login: '登录',
19 |   errorLogList: '错误日志列表',
20 |   notice: {
21 |     message: '通知消息',
22 |     exception: '异常告警',
23 |   },
24 | };
25 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/logics/mitt/routeChange.ts:
--------------------------------------------------------------------------------
 1 | /**
 2 |  * Used to monitor routing changes to change the status of menus and tabs. There is no need to monitor the route, because the route status change is affected by the page rendering time, which will be slow
 3 |  */
 4 | 
 5 | import mitt from '/@/utils/mitt';
 6 | import type { RouteLocationNormalized } from 'vue-router';
 7 | import { getRawRoute } from '/@/utils';
 8 | 
 9 | const emitter = mitt();
10 | 
11 | const key = Symbol();
12 | 
13 | let lastChangeTab: RouteLocationNormalized;
14 | 
15 | export function setRouteChange(lastChangeRoute: RouteLocationNormalized) {
16 |   const r = getRawRoute(lastChangeRoute);
17 |   emitter.emit(key, r);
18 |   lastChangeTab = r;
19 | }
20 | 
21 | export function listenerRouteChange(
22 |   callback: (route: RouteLocationNormalized) => void,
23 |   immediate = true,
24 | ) {
25 |   emitter.on(key, callback);
26 |   immediate && lastChangeTab && callback(lastChangeTab);
27 | }
28 | 
29 | export function removeTabChangeListener() {
30 |   emitter.clear();
31 | }
32 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/logics/theme/dark.ts:
--------------------------------------------------------------------------------
 1 | import { darkCssIsReady, loadDarkThemeCss } from 'vite-plugin-theme/es/client';
 2 | import { addClass, hasClass, removeClass } from '/@/utils/domUtils';
 3 | 
 4 | export async function updateDarkTheme(mode: string | null = 'light') {
 5 |   const htmlRoot = document.getElementById('htmlRoot');
 6 |   if (!htmlRoot) {
 7 |     return;
 8 |   }
 9 |   const hasDarkClass = hasClass(htmlRoot, 'dark');
10 |   if (mode === 'dark') {
11 |     if (import.meta.env.PROD && !darkCssIsReady) {
12 |       await loadDarkThemeCss();
13 |     }
14 |     htmlRoot.setAttribute('data-theme', 'dark');
15 |     if (!hasDarkClass) {
16 |       addClass(htmlRoot, 'dark');
17 |     }
18 |   } else {
19 |     htmlRoot.setAttribute('data-theme', 'light');
20 |     if (hasDarkClass) {
21 |       removeClass(htmlRoot, 'dark');
22 |     }
23 |   }
24 | }
25 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/logics/theme/index.ts:
--------------------------------------------------------------------------------
 1 | import { getThemeColors, generateColors } from '../../../build/config/themeConfig';
 2 | 
 3 | import { replaceStyleVariables } from 'vite-plugin-theme/es/client';
 4 | import { mixLighten, mixDarken, tinycolor } from 'vite-plugin-theme/es/colorUtils';
 5 | 
 6 | export async function changeTheme(color: string) {
 7 |   const colors = generateColors({
 8 |     mixDarken,
 9 |     mixLighten,
10 |     tinycolor,
11 |     color,
12 |   });
13 | 
14 |   return await replaceStyleVariables({
15 |     colorVariables: [...getThemeColors(color), ...colors],
16 |   });
17 | }
18 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/logics/theme/updateColorWeak.ts:
--------------------------------------------------------------------------------
 1 | import { toggleClass } from './util';
 2 | 
 3 | /**
 4 |  * Change the status of the project's color weakness mode
 5 |  * @param colorWeak
 6 |  */
 7 | export function updateColorWeak(colorWeak: boolean) {
 8 |   toggleClass(colorWeak, 'color-weak', document.documentElement);
 9 | }
10 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/logics/theme/updateGrayMode.ts:
--------------------------------------------------------------------------------
 1 | import { toggleClass } from './util';
 2 | 
 3 | /**
 4 |  * Change project gray mode status
 5 |  * @param gray
 6 |  */
 7 | export function updateGrayMode(gray: boolean) {
 8 |   toggleClass(gray, 'gray-mode', document.documentElement);
 9 | }
10 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/logics/theme/util.ts:
--------------------------------------------------------------------------------
 1 | const docEle = document.documentElement;
 2 | export function toggleClass(flag: boolean, clsName: string, target?: HTMLElement) {
 3 |   const targetEl = target || document.body;
 4 |   let { className } = targetEl;
 5 |   className = className.replace(clsName, '');
 6 |   targetEl.className = flag ? `${className} ${clsName} ` : className;
 7 | }
 8 | 
 9 | export function setCssVar(prop: string, val: any, dom = docEle) {
10 |   dom.style.setProperty(prop, val);
11 | }
12 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/router/guard/stateGuard.ts:
--------------------------------------------------------------------------------
 1 | import type { Router } from 'vue-router';
 2 | import { useAppStore } from '/@/store/modules/app';
 3 | import { useMultipleTabStore } from '/@/store/modules/multipleTab';
 4 | import { useUserStore } from '/@/store/modules/user';
 5 | import { usePermissionStore } from '/@/store/modules/permission';
 6 | import { PageEnum } from '/@/enums/pageEnum';
 7 | import { removeTabChangeListener } from '/@/logics/mitt/routeChange';
 8 | 
 9 | export function createStateGuard(router: Router) {
10 |   router.afterEach((to) => {
11 |     // Just enter the login page and clear the authentication information
12 |     if (to.path === PageEnum.BASE_LOGIN) {
13 |       const tabStore = useMultipleTabStore();
14 |       const userStore = useUserStore();
15 |       const appStore = useAppStore();
16 |       const permissionStore = usePermissionStore();
17 |       appStore.resetAllState();
18 |       permissionStore.resetState();
19 |       tabStore.resetState();
20 |       userStore.resetState();
21 |       removeTabChangeListener();
22 |     }
23 |   });
24 | }
25 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/settings/designSetting.ts:
--------------------------------------------------------------------------------
 1 | import { ThemeEnum } from '../enums/appEnum';
 2 | 
 3 | export const prefixCls = 'streampark';
 4 | 
 5 | export const darkMode = ThemeEnum.LIGHT;
 6 | 
 7 | // app theme preset color
 8 | export const APP_PRESET_COLOR_LIST: string[] = [
 9 |   '#1677ff',
10 |   '#0084f4',
11 |   '#009688',
12 |   '#536dfe',
13 |   '#ff5c93',
14 |   '#ee4f12',
15 |   '#0096c7',
16 |   '#9c27b0',
17 |   '#ff9800',
18 | ];
19 | 
20 | // header preset color
21 | export const HEADER_PRESET_BG_COLOR_LIST: string[] = [
22 |   '#ffffff',
23 |   '#151515',
24 |   '#009688',
25 |   '#5172DC',
26 |   '#018ffb',
27 |   '#409eff',
28 |   '#e74c3c',
29 |   '#24292e',
30 |   '#394664',
31 |   '#001529',
32 |   '#383f45',
33 | ];
34 | 
35 | // sider preset color
36 | export const SIDE_BAR_BG_COLOR_LIST: string[] = [
37 |   '#001529',
38 |   '#212121',
39 |   '#273352',
40 |   '#ffffff',
41 |   '#191b24',
42 |   '#191a23',
43 |   '#304156',
44 |   '#001628',
45 |   '#28333E',
46 |   '#344058',
47 |   '#383f45',
48 | ];
49 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/settings/encryptionSetting.ts:
--------------------------------------------------------------------------------
 1 | import { isDevMode } from '/@/utils/env';
 2 | 
 3 | // System default cache time, in seconds
 4 | export const DEFAULT_CACHE_TIME = 60 * 60 * 24 * 7;
 5 | 
 6 | // aes encryption key
 7 | export const cacheCipher = {
 8 |   key: '_11111000001111@',
 9 |   iv: '@11111000001111_',
10 | };
11 | 
12 | // Whether the system cache is encrypted using aes
13 | export const enableStorageEncryption = !isDevMode();
14 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/settings/localeSetting.ts:
--------------------------------------------------------------------------------
 1 | import type { DropMenu } from '../components/Dropdown';
 2 | import type { LocaleSetting, LocaleType } from '/#/config';
 3 | 
 4 | export const LOCALE: { [key: string]: LocaleType } = {
 5 |   ZH_CN: 'zh_CN',
 6 |   EN_US: 'en',
 7 | };
 8 | 
 9 | export const localeSetting: LocaleSetting = {
10 |   showPicker: true,
11 |   // Locale
12 |   locale: LOCALE.EN_US,
13 |   // Default locale
14 |   fallback: LOCALE.EN_US,
15 |   // available Locales
16 |   availableLocales: [LOCALE.ZH_CN, LOCALE.EN_US],
17 | };
18 | 
19 | // locale list
20 | export const localeList: DropMenu[] = [
21 |   {
22 |     text: '简体中文',
23 |     event: LOCALE.ZH_CN,
24 |   },
25 |   {
26 |     text: 'English',
27 |     event: LOCALE.EN_US,
28 |   },
29 | ];
30 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/settings/siteSetting.ts:
--------------------------------------------------------------------------------
 1 | // github repo url
 2 | export const GITHUB_URL = 'https://github.com/apache/streampark';
 3 | 
 4 | // doc
 5 | export const DOC_URL = 'https://streampark.apache.org/docs/get-started/introduction';
 6 | 
 7 | // site url
 8 | export const SITE_URL = 'https://streampark.apache.org';
 9 | 
10 | // twitter url
11 | export const TWITTER_URL = 'https://x.com/ASFStreampark';
12 | 
13 | // email url
14 | export const EMAIL_URL = 'https://lists.apache.org/list.html?dev@streampark.apache.org';
15 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/store/index.ts:
--------------------------------------------------------------------------------
 1 | import type { App } from 'vue';
 2 | import { createPinia } from 'pinia';
 3 | 
 4 | const store = createPinia();
 5 | 
 6 | export function setupStore(app: App<Element>) {
 7 |   app.use(store);
 8 | }
 9 | 
10 | export { store };
11 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/store/modules/flinkApplication.ts:
--------------------------------------------------------------------------------
 1 | import { defineStore } from 'pinia';
 2 | 
 3 | interface FlinkApplicationState {
 4 |   appId: Nullable<string>;
 5 | }
 6 | export const useFlinkAppStore = defineStore({
 7 |   id: 'flink-application',
 8 |   state: (): FlinkApplicationState => ({
 9 |     appId: null,
10 |   }),
11 |   getters: {
12 |     getApplicationId(): Nullable<string> {
13 |       return this.appId;
14 |     },
15 |   },
16 |   actions: {
17 |     setApplicationId(appId: string): void {
18 |       this.appId = appId;
19 |     },
20 |     clearApplicationId() {
21 |       this.appId = null;
22 |     },
23 |   },
24 | });
25 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/utils/helper/tsxHelper.tsx:
--------------------------------------------------------------------------------
 1 | import { Slots } from 'vue';
 2 | import { isFunction } from '/@/utils/is';
 3 | 
 4 | /**
 5 |  * @description:  Get slot to prevent empty error
 6 |  */
 7 | export function getSlot(slots: Slots, slot = 'default', data?: any) {
 8 |   if (!slots || !Reflect.has(slots, slot)) {
 9 |     return null;
10 |   }
11 |   if (!isFunction(slots[slot])) {
12 |     console.error(`${slot} is not a function!`);
13 |     return null;
14 |   }
15 |   const slotFn = slots[slot];
16 |   if (!slotFn) return null;
17 |   return slotFn(data);
18 | }
19 | 
20 | /**
21 |  * extends slots
22 |  * @param slots
23 |  * @param excludeKeys
24 |  */
25 | export function extendSlots(slots: Slots, excludeKeys: string[] = []) {
26 |   const slotKeys = Object.keys(slots);
27 |   const ret: any = {};
28 |   slotKeys.map((key) => {
29 |     if (excludeKeys.includes(key)) {
30 |       return null;
31 |     }
32 |     ret[key] = () => getSlot(slots, key);
33 |   });
34 |   return ret;
35 | }
36 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/utils/http/axios/axiosRetry.ts:
--------------------------------------------------------------------------------
 1 | import { AxiosError, AxiosInstance } from 'axios';
 2 | /**
 3 |  *  Request a retry mechanism
 4 |  */
 5 | 
 6 | export class AxiosRetry {
 7 |   /**
 8 |    * retry
 9 |    */
10 |   retry(AxiosInstance: AxiosInstance, error: AxiosError) {
11 |     // @ts-ignore
12 |     const { config } = error.response;
13 |     const { waitTime, count } = config?.requestOptions?.retryRequest;
14 |     config.__retryCount = config.__retryCount || 0;
15 |     if (config.__retryCount >= count) {
16 |       return Promise.reject(error);
17 |     }
18 |     config.__retryCount += 1;
19 |     return this.delay(waitTime).then(() => AxiosInstance(config));
20 |   }
21 | 
22 |   /**
23 |    * delay
24 |    */
25 |   private delay(waitTime: number) {
26 |     return new Promise((resolve) => setTimeout(resolve, waitTime));
27 |   }
28 | }
29 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/utils/log.ts:
--------------------------------------------------------------------------------
 1 | const projectName = import.meta.env.VITE_GLOB_APP_TITLE;
 2 | 
 3 | export function warn(message: string) {
 4 |   console.warn(`[${projectName} warn]:${message}`);
 5 | }
 6 | 
 7 | export function error(message: string) {
 8 |   throw new Error(`[${projectName} error]:${message}`);
 9 | }
10 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/utils/propTypes.ts:
--------------------------------------------------------------------------------
 1 | import { CSSProperties, VNodeChild } from 'vue';
 2 | import VueTypes, {
 3 |   toValidableType,
 4 |   createTypes,
 5 |   VueTypeValidableDef,
 6 |   VueTypesInterface,
 7 | } from 'vue-types';
 8 | 
 9 | export default class ProjectTypes extends VueTypes {
10 |   // a native-like validator that supports the `.validable` method
11 |   static get positive() {
12 |     return toValidableType('positive', {
13 |       type: Number,
14 |       validator: (v) => v > 0,
15 |     });
16 |   }
17 | }
18 | 
19 | export type VueNode = VNodeChild | JSX.Element;
20 | 
21 | type PropTypes = VueTypesInterface & {
22 |   readonly style: VueTypeValidableDef<CSSProperties>;
23 |   readonly VNodeChild: VueTypeValidableDef<VueNode>;
24 |   // readonly trueBool: VueTypeValidableDef<boolean>;
25 | };
26 | 
27 | const propTypes = createTypes({
28 |   func: undefined,
29 |   bool: undefined,
30 |   string: undefined,
31 |   number: undefined,
32 |   object: undefined,
33 |   integer: undefined,
34 | }) as PropTypes;
35 | export { propTypes };
36 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/utils/uuid.ts:
--------------------------------------------------------------------------------
 1 | const hexList: string[] = [];
 2 | for (let i = 0; i <= 15; i++) {
 3 |   hexList[i] = i.toString(16);
 4 | }
 5 | 
 6 | export function buildUUID(): string {
 7 |   let uuid = '';
 8 |   for (let i = 1; i <= 36; i++) {
 9 |     if (i === 9 || i === 14 || i === 19 || i === 24) {
10 |       uuid += '-';
11 |     } else if (i === 15) {
12 |       uuid += 4;
13 |     } else if (i === 20) {
14 |       uuid += hexList[(Math.random() * 4) | 8];
15 |     } else {
16 |       uuid += hexList[(Math.random() * 16) | 0];
17 |     }
18 |   }
19 |   return uuid.replace(/-/g, '');
20 | }
21 | 
22 | let unique = 0;
23 | export function buildShortUUID(prefix = ''): string {
24 |   const time = Date.now();
25 |   const random = Math.floor(Math.random() * 1000000000);
26 |   unique++;
27 |   return prefix + '_' + random + unique + String(time);
28 | }
29 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/views/base/error-log/DetailModal.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <BasicModal :width="800" :title="t('sys.errorLog.tableActionDesc')" v-bind="$attrs">
 3 |     <Description :data="info" @register="register" />
 4 |   </BasicModal>
 5 | </template>
 6 | <script lang="ts" setup>
 7 |   import type { PropType } from 'vue';
 8 |   import type { ErrorLogInfo } from '/#/store';
 9 |   import { BasicModal } from '/@/components/Modal/index';
10 |   import { Description, useDescription } from '/@/components/Description/index';
11 |   import { useI18n } from '/@/hooks/web/useI18n';
12 |   import { getDescSchema } from './data';
13 | 
14 |   defineProps({
15 |     info: {
16 |       type: Object as PropType<ErrorLogInfo>,
17 |       default: null,
18 |     },
19 |   });
20 | 
21 |   const { t } = useI18n();
22 | 
23 |   const [register] = useDescription({
24 |     column: 2,
25 |     schema: getDescSchema()!,
26 |   });
27 | </script>
28 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/views/base/exception/index.ts:
--------------------------------------------------------------------------------
1 | export { default as Exception } from './Exception.vue';
2 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/views/base/lock/index.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <transition name="fade-bottom" mode="out-in">
 3 |     <LockPage v-if="getIsLock" />
 4 |   </transition>
 5 | </template>
 6 | <script lang="ts" setup>
 7 |   import { computed } from 'vue';
 8 |   import LockPage from './LockPage.vue';
 9 |   import { useLockStore } from '/@/store/modules/lock';
10 | 
11 |   const lockStore = useLockStore();
12 |   const getIsLock = computed(() => lockStore?.getLockInfo?.isLock ?? false);
13 | </script>
14 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/views/base/redirect/index.vue:
--------------------------------------------------------------------------------
 1 | <template>
 2 |   <div></div>
 3 | </template>
 4 | <script lang="ts" setup>
 5 |   import { unref } from 'vue';
 6 |   import { useRouter } from 'vue-router';
 7 | 
 8 |   const { currentRoute, replace } = useRouter();
 9 | 
10 |   const { params, query } = unref(currentRoute);
11 |   const { path, _redirect_type = 'path' } = params;
12 | 
13 |   Reflect.deleteProperty(params, '_redirect_type');
14 |   Reflect.deleteProperty(params, 'path');
15 | 
16 |   const _path = Array.isArray(path) ? path.join('/') : path;
17 | 
18 |   if (_redirect_type === 'name') {
19 |     replace({
20 |       name: _path,
21 |       query,
22 |       params,
23 |     });
24 |   } else {
25 |     replace({
26 |       path: _path.startsWith('/') ? _path : '/' + _path,
27 |       query,
28 |     });
29 |   }
30 | </script>
31 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/views/flink/home/components/index.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | export { default as FlinkEnvDrawer } from './Drawer.vue';
18 | export { default as FlinkEnvModal } from './Modal.vue';
19 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/views/setting/alarm/components/index.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | export { default as DetailModal } from './DetailModal.vue';
18 | export { default as AlertModal } from './AlertModal.vue';
19 | export { default as AlertTypeInfo } from './AlertTypeInfo.vue';
20 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/views/setting/extlink/components/index.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | export { default as ExternalLinkModal } from './Modal.vue';
18 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/src/views/spark/home/components/index.ts:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    https://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | export { default as SparkEnvModal } from './Modal.vue';
18 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/types/index.d.ts:
--------------------------------------------------------------------------------
 1 | declare interface Fn<T = any, R = T> {
 2 |   (...arg: T[]): R;
 3 | }
 4 | 
 5 | declare interface PromiseFn<T = any, R = T> {
 6 |   (...arg: T[]): Promise<R>;
 7 | }
 8 | 
 9 | declare type RefType<T> = T | null;
10 | 
11 | declare type LabelValueOptions = {
12 |   label: string;
13 |   value: any;
14 |   [key: string]: string | number | boolean;
15 | }[];
16 | 
17 | declare type EmitType = (event: string, ...args: any[]) => void;
18 | 
19 | declare type TargetContext = '_self' | '_blank';
20 | 
21 | declare interface ComponentElRef<T extends HTMLElement = HTMLDivElement> {
22 |   $el: T;
23 | }
24 | 
25 | declare type ComponentRef<T extends HTMLElement = HTMLDivElement> = ComponentElRef<T> | null;
26 | 
27 | declare type ElRef<T extends HTMLElement = HTMLDivElement> = Nullable<T>;
28 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/types/module.d.ts:
--------------------------------------------------------------------------------
 1 | declare module '*.vue' {
 2 |   import { DefineComponent } from 'vue';
 3 |   const Component: DefineComponent<{}, {}, any>;
 4 |   export default Component;
 5 | }
 6 | 
 7 | declare module 'ant-design-vue/es/locale/*' {
 8 |   import { Locale } from 'ant-design-vue/types/locale-provider';
 9 |   const locale: Locale & ReadonlyRecordable;
10 |   export default locale as Locale & ReadonlyRecordable;
11 | }
12 | 
13 | declare module 'virtual:*' {
14 |   const result: any;
15 |   export default result;
16 | }
17 | 


--------------------------------------------------------------------------------
/streampark-console/streampark-console-webapp/types/utils.d.ts:
--------------------------------------------------------------------------------
1 | import type { ComputedRef, Ref } from 'vue';
2 | 
3 | export type DynamicProps<T> = {
4 |   [P in keyof T]: Ref<T[P]> | T[P] | ComputedRef<T[P]>;
5 | };
6 | 


--------------------------------------------------------------------------------
/streampark-e2e/streampark-e2e-case/src/test/java/org/apache/streampark/e2e/pages/system/entity/UserManagementStatus.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.e2e.pages.system.entity;
19 | 
20 | public enum UserManagementStatus {
21 |     LOCKED, EFFECTIVE
22 | }
23 | 


--------------------------------------------------------------------------------
/streampark-e2e/streampark-e2e-case/src/test/java/org/apache/streampark/e2e/pages/system/entity/UserManagementUserType.java:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.e2e.pages.system.entity;
19 | 
20 | public enum UserManagementUserType {
21 |     ADMIN, USER
22 | }
23 | 


--------------------------------------------------------------------------------
/streampark-e2e/streampark-e2e-case/src/test/resources/docker/basic/Dockerfile:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #    http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 
18 | FROM apache/streampark:ci
19 | 


--------------------------------------------------------------------------------
/streampark-e2e/streampark-e2e-case/src/test/resources/docker/environment/Dockerfile:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #    http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 
18 | FROM apache/streampark:ci
19 | 


--------------------------------------------------------------------------------
/streampark-e2e/streampark-e2e-case/src/test/resources/docker/flink-1.16-on-remote/Dockerfile:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #     http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 
18 | FROM apache/streampark:ci
19 | 


--------------------------------------------------------------------------------
/streampark-e2e/streampark-e2e-case/src/test/resources/docker/flink-1.17-on-remote/Dockerfile:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #     http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 
18 | FROM apache/streampark:ci
19 | 


--------------------------------------------------------------------------------
/streampark-e2e/streampark-e2e-case/src/test/resources/docker/flink-1.18-on-remote/Dockerfile:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #     http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 
18 | FROM apache/streampark:ci
19 | 


--------------------------------------------------------------------------------
/streampark-e2e/streampark-e2e-case/src/test/resources/docker/flink-1.20-on-remote/Dockerfile:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #     http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 
18 | FROM apache/streampark:ci
19 | 


--------------------------------------------------------------------------------
/streampark-flink/streampark-flink-client/streampark-flink-client-api/src/main/scala/org/apache/streampark/flink/client/bean/CancelResponse.scala:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.flink.client.bean
19 | 
20 | case class CancelResponse(savepointDir: String)
21 | 


--------------------------------------------------------------------------------
/streampark-flink/streampark-flink-client/streampark-flink-client-api/src/main/scala/org/apache/streampark/flink/client/bean/DeployResponse.scala:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.flink.client.bean
19 | 
20 | case class DeployResponse(address: String = null, clusterId: String = null, error: Throwable = null)
21 | 


--------------------------------------------------------------------------------
/streampark-flink/streampark-flink-client/streampark-flink-client-api/src/main/scala/org/apache/streampark/flink/client/bean/SavepointResponse.scala:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.flink.client.bean
19 | 
20 | /** Result class of trigger savepoint presents savepoint path. */
21 | case class SavepointResponse(savepointDir: String)
22 | 


--------------------------------------------------------------------------------
/streampark-flink/streampark-flink-client/streampark-flink-client-api/src/main/scala/org/apache/streampark/flink/client/bean/ShutDownResponse.scala:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.flink.client.bean
19 | 
20 | case class ShutDownResponse(clusterId: String)
21 | 


--------------------------------------------------------------------------------
/streampark-flink/streampark-flink-client/streampark-flink-client-core/src/main/resources/META-INF/services/org.apache.flink.client.deployment.StandaloneClientFactory:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #    http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 


--------------------------------------------------------------------------------
/streampark-flink/streampark-flink-client/streampark-flink-client-core/src/main/resources/META-INF/services/org.apache.flink.kubernetes.KubernetesClusterClientFactory:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #    http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 


--------------------------------------------------------------------------------
/streampark-flink/streampark-flink-client/streampark-flink-client-core/src/main/resources/META-INF/services/org.apache.flink.yarn.YarnClusterClientFactory:
--------------------------------------------------------------------------------
 1 | #
 2 | # Licensed to the Apache Software Foundation (ASF) under one or more
 3 | # contributor license agreements.  See the NOTICE file distributed with
 4 | # this work for additional information regarding copyright ownership.
 5 | # The ASF licenses this file to You under the Apache License, Version 2.0
 6 | # (the "License"); you may not use this file except in compliance with
 7 | # the License.  You may obtain a copy of the License at
 8 | #
 9 | #    http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 | #
17 | 


--------------------------------------------------------------------------------
/streampark-flink/streampark-flink-kubernetes/src/main/scala/org/apache/streampark/flink/kubernetes/event/BuildInEvent.scala:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.flink.kubernetes.event
19 | 
20 | trait BuildInEvent {}
21 | 


--------------------------------------------------------------------------------
/streampark-spark/streampark-spark-client/streampark-spark-client-api/src/main/scala/org/apache/streampark/spark/client/bean/CancelResponse.scala:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.spark.client.bean
19 | 
20 | case class CancelResponse(savePoint: String)
21 | 


--------------------------------------------------------------------------------
/streampark-spark/streampark-spark-client/streampark-spark-client-api/src/main/scala/org/apache/streampark/spark/client/conf/SparkConfiguration.scala:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | package org.apache.streampark.spark.client.conf
19 | 
20 | object SparkConfiguration {}
21 | 


--------------------------------------------------------------------------------
/tools/checkstyle/copyright.txt:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * Licensed to the Apache Software Foundation (ASF) under one or more
 3 |  * contributor license agreements.  See the NOTICE file distributed with
 4 |  * this work for additional information regarding copyright ownership.
 5 |  * The ASF licenses this file to You under the Apache License, Version 2.0
 6 |  * (the "License"); you may not use this file except in compliance with
 7 |  * the License.  You may obtain a copy of the License at
 8 |  *
 9 |  *    http://www.apache.org/licenses/LICENSE-2.0
10 |  *
11 |  * Unless required by applicable law or agreed to in writing, software
12 |  * distributed under the License is distributed on an "AS IS" BASIS,
13 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 |  * See the License for the specific language governing permissions and
15 |  * limitations under the License.
16 |  */
17 | 
18 | 


--------------------------------------------------------------------------------