├── .github
└── workflows
│ └── main.yml
├── .gitignore
├── .idea
├── .gitignore
└── misc.xml
├── CHANGELOG.md
├── LICENSE
├── README.md
├── README_zh_CN.md
├── client
├── client-common
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── bin
│ │ └── common.py
│ │ ├── conf
│ │ └── logback.xml
│ │ └── java
│ │ └── com
│ │ └── aliyun
│ │ └── dataworks
│ │ └── client
│ │ └── command
│ │ ├── AppMeta.java
│ │ ├── AppType.java
│ │ ├── CommandApp.java
│ │ ├── CommandAppEntrance.java
│ │ └── CommandAppFactory.java
├── client-spark-utils
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── com
│ │ │ └── aliyun
│ │ │ └── dataworks
│ │ │ └── client
│ │ │ └── utils
│ │ │ └── spark
│ │ │ └── command
│ │ │ ├── AbstractAppHandle.java
│ │ │ ├── AbstractCommandBuilder.java
│ │ │ ├── AbstractLauncher.java
│ │ │ ├── ChildProcAppHandle.java
│ │ │ ├── CommandBuilderUtils.java
│ │ │ ├── FilteredObjectInputStream.java
│ │ │ ├── InProcessAppHandle.java
│ │ │ ├── InProcessLauncher.java
│ │ │ ├── LauncherConnection.java
│ │ │ ├── LauncherProtocol.java
│ │ │ ├── LauncherServer.java
│ │ │ ├── NamedThreadFactory.java
│ │ │ ├── OutputRedirector.java
│ │ │ ├── SparkAppHandle.java
│ │ │ ├── SparkClassCommandBuilder.java
│ │ │ ├── SparkLauncher.java
│ │ │ ├── SparkSubmitCommandBuilder.java
│ │ │ ├── SparkSubmitCommandUtils.java
│ │ │ └── SparkSubmitOptionParser.java
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── aliyun
│ │ └── dataworks
│ │ └── client
│ │ └── utils
│ │ └── spark
│ │ └── command
│ │ └── SparkSubmitCommandUtilsTest.java
├── client-toolkits
│ ├── package.xml
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── bin
│ │ │ └── spec.py
│ │ ├── conf
│ │ │ └── apps.json
│ │ └── java
│ │ │ └── com
│ │ │ └── aliyun
│ │ │ └── dataworks
│ │ │ └── client
│ │ │ └── toolkits
│ │ │ └── command
│ │ │ ├── DataWorksSpecToolkit.java
│ │ │ └── SpecCommandApp.java
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── aliyun
│ │ └── dataworks
│ │ └── AppTest.java
├── migrationx-transformer
│ └── src
│ │ └── main
│ │ ├── python
│ │ ├── airflow_dag_parser
│ │ │ ├── README.MD
│ │ │ ├── __init__.py
│ │ │ ├── common
│ │ │ │ ├── __init__.py
│ │ │ │ ├── configs.py
│ │ │ │ ├── datax.py
│ │ │ │ └── supports.py
│ │ │ ├── connections.py
│ │ │ ├── converter
│ │ │ │ ├── __init__.py
│ │ │ │ ├── converters.py
│ │ │ │ ├── dag_converter.py
│ │ │ │ └── task_converter.py
│ │ │ ├── dag_parser.py
│ │ │ ├── downloader.py
│ │ │ ├── get_dags.py
│ │ │ ├── miscs
│ │ │ │ ├── __init__.py
│ │ │ │ └── helpers.py
│ │ │ ├── models
│ │ │ │ ├── __init__.py
│ │ │ │ ├── dw_base.py
│ │ │ │ ├── dw_eums.py
│ │ │ │ ├── dw_node.py
│ │ │ │ ├── dw_node_io.py
│ │ │ │ ├── dw_spec.py
│ │ │ │ ├── dw_workflow.py
│ │ │ │ └── products.py
│ │ │ ├── parser.py
│ │ │ ├── patch
│ │ │ │ ├── __init__.py
│ │ │ │ ├── base_hook_patch.py
│ │ │ │ ├── mysql_hook_patch.py
│ │ │ │ ├── presto_hook_patch.py
│ │ │ │ ├── presto_to_mysql_operator_patch.py
│ │ │ │ ├── spark_submit_hook_patch.py
│ │ │ │ ├── sqoop_hook_patch.py
│ │ │ │ └── task_instance_patch.py
│ │ │ └── test
│ │ │ │ ├── __init__.py
│ │ │ │ ├── code
│ │ │ │ ├── __init__.py
│ │ │ │ ├── example_bash_operator.py
│ │ │ │ ├── example_dynamic_task_mapping.py
│ │ │ │ ├── example_latest_only.py
│ │ │ │ ├── example_mysql.py
│ │ │ │ ├── example_params_trigger_ui.py
│ │ │ │ ├── example_postgres.py
│ │ │ │ ├── example_short_circuit_operator.py
│ │ │ │ ├── example_task_group.py
│ │ │ │ ├── example_trigger_controller_dag.py
│ │ │ │ ├── example_trigger_target_dag.py
│ │ │ │ ├── example_twitter_dag.py
│ │ │ │ └── tutorial.py
│ │ │ │ └── test_list_dags.py
│ │ ├── build.sh
│ │ ├── common.sh
│ │ └── setup_env.sh
│ │ └── scripts
│ │ └── drop_table.sql
├── migrationx
│ ├── migrationx-common
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── aliyun
│ │ │ │ │ └── migrationx
│ │ │ │ │ └── common
│ │ │ │ │ ├── context
│ │ │ │ │ └── TransformerContext.java
│ │ │ │ │ ├── exception
│ │ │ │ │ ├── BaseException.java
│ │ │ │ │ ├── BizException.java
│ │ │ │ │ ├── ErrorCode.java
│ │ │ │ │ ├── SysException.java
│ │ │ │ │ └── UnSupportedTypeException.java
│ │ │ │ │ ├── http
│ │ │ │ │ └── HttpClientUtil.java
│ │ │ │ │ ├── metrics
│ │ │ │ │ ├── DefaultMetricCollector.java
│ │ │ │ │ ├── DolphinMetrics.java
│ │ │ │ │ ├── DolphinMetricsCollector.java
│ │ │ │ │ ├── Metrics.java
│ │ │ │ │ ├── MetricsCollector.java
│ │ │ │ │ ├── MetricsSummary.java
│ │ │ │ │ ├── Progress.java
│ │ │ │ │ └── enums
│ │ │ │ │ │ └── CollectorType.java
│ │ │ │ │ └── utils
│ │ │ │ │ ├── BeanUtils.java
│ │ │ │ │ ├── BeanValidateUtil.java
│ │ │ │ │ ├── Config.java
│ │ │ │ │ ├── DateUtils.java
│ │ │ │ │ ├── ExecuteUtils.java
│ │ │ │ │ ├── FileNameUtils.java
│ │ │ │ │ ├── GsonUtils.java
│ │ │ │ │ ├── IntlUtils.java
│ │ │ │ │ ├── JSONUtils.java
│ │ │ │ │ ├── JdbcUtils.java
│ │ │ │ │ ├── JsonFileUtils.java
│ │ │ │ │ ├── PaginateUtils.java
│ │ │ │ │ ├── ThreadLocalUtils.java
│ │ │ │ │ ├── UuidGenerators.java
│ │ │ │ │ ├── UuidUtils.java
│ │ │ │ │ └── ZipUtils.java
│ │ │ └── resources
│ │ │ │ ├── i18n
│ │ │ │ ├── en_US.json
│ │ │ │ └── zh_CN.json
│ │ │ │ └── logback.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── migrationx
│ │ │ │ └── common
│ │ │ │ ├── context
│ │ │ │ └── TransformerContextTest.java
│ │ │ │ └── utils
│ │ │ │ └── IntlUtilsTest.java
│ │ │ └── resources
│ │ │ └── i18n
│ │ │ ├── en_US.json
│ │ │ └── zh_CN.json
│ ├── migrationx-domain
│ │ ├── migrationx-domain-adf
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── aliyun
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── migrationx
│ │ │ │ │ └── domain
│ │ │ │ │ └── adf
│ │ │ │ │ ├── AdfConf.java
│ │ │ │ │ ├── AdfPackage.java
│ │ │ │ │ ├── AdfPackageFileService.java
│ │ │ │ │ ├── AdfPackageLoader.java
│ │ │ │ │ ├── Factory.java
│ │ │ │ │ ├── Identity.java
│ │ │ │ │ ├── LinkedService.java
│ │ │ │ │ ├── Pipeline.java
│ │ │ │ │ ├── RequestPayload.java
│ │ │ │ │ ├── Tags.java
│ │ │ │ │ └── Trigger.java
│ │ │ │ └── test
│ │ │ │ ├── java
│ │ │ │ └── AdfPackageLoaderTest.java
│ │ │ │ └── resources
│ │ │ │ └── triggers.json
│ │ ├── migrationx-domain-airflow
│ │ │ ├── .gitignore
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── aliyun
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── migrationx
│ │ │ │ │ └── domain
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── airflow
│ │ │ │ │ ├── AirflowDumpItem.java
│ │ │ │ │ ├── AirflowNode.java
│ │ │ │ │ ├── AirflowWorkflow.java
│ │ │ │ │ └── OperatorType.java
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── AppTest.java
│ │ ├── migrationx-domain-aliyunemr
│ │ │ ├── .gitignore
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── aliyun
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── migrationx
│ │ │ │ │ └── domain
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── aliyunemr
│ │ │ │ │ ├── AliyunEmrExportRequest.java
│ │ │ │ │ ├── AliyunEmrExporterConstants.java
│ │ │ │ │ ├── AliyunEmrProject.java
│ │ │ │ │ ├── AliyunEmrService.java
│ │ │ │ │ ├── CronUtil.java
│ │ │ │ │ ├── Flow.java
│ │ │ │ │ ├── PackageInfo.java
│ │ │ │ │ └── ParamUtil.java
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── migrationx
│ │ │ │ └── domain
│ │ │ │ └── dataworks
│ │ │ │ └── aliyunemr
│ │ │ │ ├── AliyunEmrServiceTest.java
│ │ │ │ ├── CronUtilTest.java
│ │ │ │ └── ParamUtilTest.java
│ │ ├── migrationx-domain-azkaban
│ │ │ ├── .gitignore
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── aliyun
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── migrationx
│ │ │ │ │ └── domain
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── azkaban
│ │ │ │ │ ├── objects
│ │ │ │ │ ├── CommandJob.java
│ │ │ │ │ ├── ConfigProperty.java
│ │ │ │ │ ├── Flow.java
│ │ │ │ │ ├── FlowJob.java
│ │ │ │ │ ├── HiveJob.java
│ │ │ │ │ ├── Job.java
│ │ │ │ │ ├── JobProperty.java
│ │ │ │ │ ├── JobType.java
│ │ │ │ │ ├── NoopJob.java
│ │ │ │ │ └── Project.java
│ │ │ │ │ └── service
│ │ │ │ │ └── AzkabanPackageParser.java
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── AppTest.java
│ │ ├── migrationx-domain-caiyunjian
│ │ │ ├── .gitignore
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── aliyun
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── migrationx
│ │ │ │ │ └── domain
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── caiyunjian
│ │ │ │ │ ├── CaiyunjianTask.java
│ │ │ │ │ ├── DITask.java
│ │ │ │ │ ├── DateParser.java
│ │ │ │ │ ├── DgDatasource.java
│ │ │ │ │ ├── DgDatasourceType.java
│ │ │ │ │ ├── DgDatasourceUtil.java
│ │ │ │ │ ├── constant
│ │ │ │ │ └── DataXConstants.java
│ │ │ │ │ └── enums
│ │ │ │ │ ├── CDPTypeEnum.java
│ │ │ │ │ ├── DependentTypeEnum.java
│ │ │ │ │ ├── RelationTypeEnum.java
│ │ │ │ │ ├── ScheduleTypeEnum.java
│ │ │ │ │ ├── ScriptTypeEnum.java
│ │ │ │ │ └── TaskTypeEnum.java
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── AppTest.java
│ │ ├── migrationx-domain-core
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── migrationx
│ │ │ │ └── domain
│ │ │ │ └── dataworks
│ │ │ │ └── standard
│ │ │ │ ├── objects
│ │ │ │ ├── Entity.java
│ │ │ │ └── Package.java
│ │ │ │ ├── repository
│ │ │ │ ├── BaseObject.java
│ │ │ │ ├── PackageRepository.java
│ │ │ │ └── Repository.java
│ │ │ │ └── service
│ │ │ │ ├── AbstractPackageFileService.java
│ │ │ │ ├── Code.java
│ │ │ │ ├── PackageFileService.java
│ │ │ │ ├── PackageFileServiceFactory.java
│ │ │ │ ├── PackageService.java
│ │ │ │ ├── PaginDTO.java
│ │ │ │ ├── Result.java
│ │ │ │ └── ResultList.java
│ │ ├── migrationx-domain-datago
│ │ │ ├── .gitignore
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── aliyun
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── migrationx
│ │ │ │ │ └── domain
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── datago
│ │ │ │ │ ├── CronUtil.java
│ │ │ │ │ ├── DataGoConstants.java
│ │ │ │ │ ├── DataGoTask.java
│ │ │ │ │ ├── DsfCycle.java
│ │ │ │ │ ├── MergeSqlUtil.java
│ │ │ │ │ ├── VelocityUtil.java
│ │ │ │ │ ├── enums
│ │ │ │ │ ├── DataImportMethodEnum.java
│ │ │ │ │ ├── DataSyncTypeEnum.java
│ │ │ │ │ ├── FrequencyTypeEnum.java
│ │ │ │ │ ├── TaskCodeEnum.java
│ │ │ │ │ └── TypeofEnum.java
│ │ │ │ │ └── model
│ │ │ │ │ ├── NewDataX2DI.java
│ │ │ │ │ ├── OldDataX2DI.java
│ │ │ │ │ └── cdp
│ │ │ │ │ ├── BaseModel.java
│ │ │ │ │ ├── ReaderModel.java
│ │ │ │ │ └── WriterModel.java
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── AppTest.java
│ │ ├── migrationx-domain-dataworks
│ │ │ ├── .tmp
│ │ │ │ └── test
│ │ │ │ │ ├── DataStudio
│ │ │ │ │ └── 业务流程
│ │ │ │ │ │ └── test_flow1
│ │ │ │ │ │ └── MaxCompute
│ │ │ │ │ │ └── 数据开发
│ │ │ │ │ │ └── test1
│ │ │ │ │ │ ├── test1.schedule.json
│ │ │ │ │ │ └── test1.sql
│ │ │ │ │ └── SPEC.FORMAT
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── com
│ │ │ │ │ │ └── aliyun
│ │ │ │ │ │ └── dataworks
│ │ │ │ │ │ └── migrationx
│ │ │ │ │ │ └── domain
│ │ │ │ │ │ └── dataworks
│ │ │ │ │ │ ├── constants
│ │ │ │ │ │ ├── ChangeType.java
│ │ │ │ │ │ └── DataWorksConstants.java
│ │ │ │ │ │ ├── objects
│ │ │ │ │ │ ├── entity
│ │ │ │ │ │ │ ├── ApiBaseDto.java
│ │ │ │ │ │ │ ├── Asset.java
│ │ │ │ │ │ │ ├── CostumedDateFormat.java
│ │ │ │ │ │ │ ├── DataWorksPackage.java
│ │ │ │ │ │ │ ├── Datasource.java
│ │ │ │ │ │ │ ├── DmObject.java
│ │ │ │ │ │ │ ├── DmObjectUniqueIdentity.java
│ │ │ │ │ │ │ ├── DqcRule.java
│ │ │ │ │ │ │ ├── DwDatasource.java
│ │ │ │ │ │ │ ├── DwFolder.java
│ │ │ │ │ │ │ ├── DwFunction.java
│ │ │ │ │ │ │ ├── DwNode.java
│ │ │ │ │ │ │ ├── DwNodeIo.java
│ │ │ │ │ │ │ ├── DwProject.java
│ │ │ │ │ │ │ ├── DwResource.java
│ │ │ │ │ │ │ ├── DwTable.java
│ │ │ │ │ │ │ ├── DwUserDefinedNode.java
│ │ │ │ │ │ │ ├── DwWorkflow.java
│ │ │ │ │ │ │ ├── Folder.java
│ │ │ │ │ │ │ ├── Function.java
│ │ │ │ │ │ │ ├── MappingConfig.java
│ │ │ │ │ │ │ ├── Node.java
│ │ │ │ │ │ │ ├── NodeContext.java
│ │ │ │ │ │ │ ├── NodeIo.java
│ │ │ │ │ │ │ ├── PackageInfo.java
│ │ │ │ │ │ │ ├── Project.java
│ │ │ │ │ │ │ ├── RefWorkflowSolution.java
│ │ │ │ │ │ │ ├── Resource.java
│ │ │ │ │ │ │ ├── ResourceDto.java
│ │ │ │ │ │ │ ├── Solution.java
│ │ │ │ │ │ │ ├── Table.java
│ │ │ │ │ │ │ ├── UserDefinedNode.java
│ │ │ │ │ │ │ ├── Workflow.java
│ │ │ │ │ │ │ ├── WorkflowFilter.java
│ │ │ │ │ │ │ ├── WorkflowParameter.java
│ │ │ │ │ │ │ ├── client
│ │ │ │ │ │ │ │ ├── AbstractIdeListRequest.java
│ │ │ │ │ │ │ │ ├── AbstractIdeRequest.java
│ │ │ │ │ │ │ │ ├── Business.java
│ │ │ │ │ │ │ │ ├── BusinessSearchRequest.java
│ │ │ │ │ │ │ │ ├── ContentStage.java
│ │ │ │ │ │ │ │ ├── CreateFileRequest.java
│ │ │ │ │ │ │ │ ├── CreateResourceRequest.java
│ │ │ │ │ │ │ │ ├── DeleteNodeByFileIdRequest.java
│ │ │ │ │ │ │ │ ├── DeployDetail.java
│ │ │ │ │ │ │ │ ├── DeployDetailStatus.java
│ │ │ │ │ │ │ │ ├── DeployFileRequest.java
│ │ │ │ │ │ │ │ ├── DeployStatusDto.java
│ │ │ │ │ │ │ │ ├── Deployment.java
│ │ │ │ │ │ │ │ ├── DiFileDsExt.java
│ │ │ │ │ │ │ │ ├── ExportTask.java
│ │ │ │ │ │ │ │ ├── File.java
│ │ │ │ │ │ │ │ ├── FileDetail.java
│ │ │ │ │ │ │ │ ├── FileInstanceInfo.java
│ │ │ │ │ │ │ │ ├── FileNode.java
│ │ │ │ │ │ │ │ ├── FileNodeCfg.java
│ │ │ │ │ │ │ │ ├── FileNodeInputOutput.java
│ │ │ │ │ │ │ │ ├── FileNodeInputOutputContext.java
│ │ │ │ │ │ │ │ ├── FileRelation.java
│ │ │ │ │ │ │ │ ├── FileVersion.java
│ │ │ │ │ │ │ │ ├── Folder.java
│ │ │ │ │ │ │ │ ├── GetDeployStatusRequest.java
│ │ │ │ │ │ │ │ ├── GetFileByCloudUuidListRequest.java
│ │ │ │ │ │ │ │ ├── GetFileByCloudUuidRequest.java
│ │ │ │ │ │ │ │ ├── GetFileByFileIdRequest.java
│ │ │ │ │ │ │ │ ├── GetResourceDownloadLinkRequest.java
│ │ │ │ │ │ │ │ ├── IdeApiResponse.java
│ │ │ │ │ │ │ │ ├── IdeExportRequest.java
│ │ │ │ │ │ │ │ ├── IdeImportRequest.java
│ │ │ │ │ │ │ │ ├── IdeListData.java
│ │ │ │ │ │ │ │ ├── IdeOssNetworkType.java
│ │ │ │ │ │ │ │ ├── IdeResponse.java
│ │ │ │ │ │ │ │ ├── ListFolderRequest.java
│ │ │ │ │ │ │ │ ├── NodeType.java
│ │ │ │ │ │ │ │ ├── PackageItemStatus.java
│ │ │ │ │ │ │ │ ├── PackageStatus.java
│ │ │ │ │ │ │ │ ├── ResourceDownloadInfo.java
│ │ │ │ │ │ │ │ ├── Solution.java
│ │ │ │ │ │ │ │ ├── SolutionSearchRequest.java
│ │ │ │ │ │ │ │ ├── SubmitFileRequest.java
│ │ │ │ │ │ │ │ └── UpdateFileRequest.java
│ │ │ │ │ │ │ ├── connection
│ │ │ │ │ │ │ │ ├── AbstractConnection.java
│ │ │ │ │ │ │ │ ├── FtpConnection.java
│ │ │ │ │ │ │ │ ├── JdbcConnection.java
│ │ │ │ │ │ │ │ └── OceanbaseConnection.java
│ │ │ │ │ │ │ ├── nodemarket
│ │ │ │ │ │ │ │ ├── AppConfigPack.java
│ │ │ │ │ │ │ │ ├── BusinessFolder.java
│ │ │ │ │ │ │ │ ├── BusinessFolderConfig.java
│ │ │ │ │ │ │ │ ├── BusinessFolderModel.java
│ │ │ │ │ │ │ │ ├── BusinessFolderNode.java
│ │ │ │ │ │ │ │ ├── NodeTypeDesc.java
│ │ │ │ │ │ │ │ ├── NodeTypeDetail.java
│ │ │ │ │ │ │ │ └── PluginInfo.java
│ │ │ │ │ │ │ ├── v1
│ │ │ │ │ │ │ │ ├── DeployType.java
│ │ │ │ │ │ │ │ ├── Extension.java
│ │ │ │ │ │ │ │ ├── Flow.java
│ │ │ │ │ │ │ │ ├── Function.java
│ │ │ │ │ │ │ │ ├── FunctionCode.java
│ │ │ │ │ │ │ │ ├── Node.java
│ │ │ │ │ │ │ │ ├── Project.java
│ │ │ │ │ │ │ │ └── Resource.java
│ │ │ │ │ │ │ ├── v2
│ │ │ │ │ │ │ │ ├── ExportProject.java
│ │ │ │ │ │ │ │ ├── IdeApplication.java
│ │ │ │ │ │ │ │ ├── IdeBizInfo.java
│ │ │ │ │ │ │ │ ├── IdeEngineInfo.java
│ │ │ │ │ │ │ │ ├── IdeEngineInstance.java
│ │ │ │ │ │ │ │ ├── IdeEngineTypeInfo.java
│ │ │ │ │ │ │ │ ├── IdeExportVersion.java
│ │ │ │ │ │ │ │ ├── IdeFile.java
│ │ │ │ │ │ │ │ ├── IdeFileRelation.java
│ │ │ │ │ │ │ │ ├── IdeFolder.java
│ │ │ │ │ │ │ │ ├── IdeFolderItemType.java
│ │ │ │ │ │ │ │ ├── IdeFolderSubType.java
│ │ │ │ │ │ │ │ ├── IdeNodeDef.java
│ │ │ │ │ │ │ │ ├── IdeNodeExtend.java
│ │ │ │ │ │ │ │ ├── IdeNodeInputOutput.java
│ │ │ │ │ │ │ │ ├── IdeNodeInputOutputContext.java
│ │ │ │ │ │ │ │ ├── IdeRefBizSol.java
│ │ │ │ │ │ │ │ ├── IdeSolution.java
│ │ │ │ │ │ │ │ ├── IdeUdfContent.java
│ │ │ │ │ │ │ │ ├── IdeUserDefinedNode.java
│ │ │ │ │ │ │ │ └── IdeZipType.java
│ │ │ │ │ │ │ └── v5
│ │ │ │ │ │ │ │ └── DataSnapshot.java
│ │ │ │ │ │ ├── serialize
│ │ │ │ │ │ │ ├── CodeControlCharEscapeConverter.java
│ │ │ │ │ │ │ ├── CodeControlCharUnEscapeConverter.java
│ │ │ │ │ │ │ ├── JsonObject2StringConverter.java
│ │ │ │ │ │ │ ├── String2JsonObjectConverter.java
│ │ │ │ │ │ │ └── StringTypeObjectAdapter.java
│ │ │ │ │ │ └── types
│ │ │ │ │ │ │ ├── AssetType.java
│ │ │ │ │ │ │ ├── CodeModeType.java
│ │ │ │ │ │ │ ├── CycleType.java
│ │ │ │ │ │ │ ├── DependentType.java
│ │ │ │ │ │ │ ├── DmMajorVersion.java
│ │ │ │ │ │ │ ├── DmObjectType.java
│ │ │ │ │ │ │ ├── FolderType.java
│ │ │ │ │ │ │ ├── IoParseType.java
│ │ │ │ │ │ │ ├── NodeUseType.java
│ │ │ │ │ │ │ ├── RerunMode.java
│ │ │ │ │ │ │ ├── ResourceType.java
│ │ │ │ │ │ │ ├── WorkflowType.java
│ │ │ │ │ │ │ ├── WorkflowVersion.java
│ │ │ │ │ │ │ └── tenant
│ │ │ │ │ │ │ └── EnvType.java
│ │ │ │ │ │ ├── service
│ │ │ │ │ │ ├── PackageService.java
│ │ │ │ │ │ ├── converter
│ │ │ │ │ │ │ └── DataWorksSpecNodeConverter.java
│ │ │ │ │ │ ├── impl
│ │ │ │ │ │ │ ├── DataWorksDwmaPackageFileService.java
│ │ │ │ │ │ │ └── DataWorksSpecPackageFileService.java
│ │ │ │ │ │ ├── openapi
│ │ │ │ │ │ │ └── DataWorksOpenApiService.java
│ │ │ │ │ │ └── spec
│ │ │ │ │ │ │ ├── FunctionSpecUpdateAdapter.java
│ │ │ │ │ │ │ ├── NodeSpecAdapter.java
│ │ │ │ │ │ │ ├── NodeSpecUpdateAdapter.java
│ │ │ │ │ │ │ ├── ResourceSpecUpdateAdapter.java
│ │ │ │ │ │ │ ├── entity
│ │ │ │ │ │ │ ├── DwNodeEntity.java
│ │ │ │ │ │ │ ├── DwNodeEntityAdapter.java
│ │ │ │ │ │ │ ├── FileDetailEntityAdapter.java
│ │ │ │ │ │ │ ├── SpecFileResourceEntityAdapter.java
│ │ │ │ │ │ │ ├── SpecFunctionEntityAdapter.java
│ │ │ │ │ │ │ └── SpecNodeEntityAdapter.java
│ │ │ │ │ │ │ └── handler
│ │ │ │ │ │ │ ├── BasicNodeSpecHandler.java
│ │ │ │ │ │ │ ├── BranchNodeSpecHandler.java
│ │ │ │ │ │ │ ├── CdhNodeSpecHandler.java
│ │ │ │ │ │ │ ├── CombinedNodeSpecHandler.java
│ │ │ │ │ │ │ ├── ComponentSpecHandler.java
│ │ │ │ │ │ │ ├── ComponentSqlNodeSpecHandler.java
│ │ │ │ │ │ │ ├── DowhileNodeSpecHandler.java
│ │ │ │ │ │ │ ├── EmrNodeSpecHandler.java
│ │ │ │ │ │ │ ├── ForeachNodeSpecHandler.java
│ │ │ │ │ │ │ ├── JoinNodeSpecHandler.java
│ │ │ │ │ │ │ ├── ParamHubNodeSpecHandler.java
│ │ │ │ │ │ │ └── TemporalNodeSpecHandler.java
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ ├── CronExpressUtil.java
│ │ │ │ │ │ ├── DataStudioCodeUtils.java
│ │ │ │ │ │ ├── DefaultNodeTypeUtils.java
│ │ │ │ │ │ ├── FolderUtils.java
│ │ │ │ │ │ ├── JavaFunctionUtils.java
│ │ │ │ │ │ ├── NodeUtils.java
│ │ │ │ │ │ ├── ResourceUtils.java
│ │ │ │ │ │ ├── SpecFileResourceTypeUtils.java
│ │ │ │ │ │ ├── StringUtils.java
│ │ │ │ │ │ └── quartz
│ │ │ │ │ │ ├── CronExpression.java
│ │ │ │ │ │ └── ExtendedQuartzCronExpression.java
│ │ │ │ └── resources
│ │ │ │ │ └── nodemarket
│ │ │ │ │ └── config_pack_cache.json
│ │ │ │ └── test
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── migrationx
│ │ │ │ └── domain
│ │ │ │ └── dataworks
│ │ │ │ ├── service
│ │ │ │ ├── DataWorksSpecPackageFileServiceTest.java
│ │ │ │ ├── converter
│ │ │ │ │ └── DataWorksSpecNodeConverterTest.java
│ │ │ │ └── spec
│ │ │ │ │ ├── FunctionSpecUpdateAdapterTest.java
│ │ │ │ │ ├── NodeSpecAdapterTest.java
│ │ │ │ │ ├── NodeSpecUpdateAdapterTest.java
│ │ │ │ │ ├── ResourceSpecUpdateAdapterTest.java
│ │ │ │ │ └── handler
│ │ │ │ │ ├── BasicNodeSpecHandlerTest.java
│ │ │ │ │ ├── BranchNodeSpecHandlerTest.java
│ │ │ │ │ ├── CdhNodeSpecHandlerTest.java
│ │ │ │ │ ├── CombinedNodeSpecHandlerTest.java
│ │ │ │ │ ├── ComponentSpecHandlerTest.java
│ │ │ │ │ ├── ComponentSqlNodeSpecHandlerTest.java
│ │ │ │ │ ├── DowhileNodeSpecHandlerTest.java
│ │ │ │ │ ├── EmrNodeSpecHandlerTest.java
│ │ │ │ │ ├── ForeachNodeSpecHandlerTest.java
│ │ │ │ │ └── ParamHubNodeSpecHandlerTest.java
│ │ │ │ └── utils
│ │ │ │ └── DataStudioCodeUtilsTest.java
│ │ ├── migrationx-domain-dolphinscheduler
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ ├── main
│ │ │ │ └── java
│ │ │ │ │ └── com
│ │ │ │ │ └── aliyun
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── migrationx
│ │ │ │ │ └── domain
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── dolphinscheduler
│ │ │ │ │ ├── Constants.java
│ │ │ │ │ ├── DolphinSchedulerPackage.java
│ │ │ │ │ ├── DolphinSchedulerVersion.java
│ │ │ │ │ ├── HttpMethod.java
│ │ │ │ │ ├── HttpProperty.java
│ │ │ │ │ ├── PackageInfo.java
│ │ │ │ │ ├── Project.java
│ │ │ │ │ ├── Property.java
│ │ │ │ │ ├── service
│ │ │ │ │ ├── DolphinSchedulerPackageFileService.java
│ │ │ │ │ ├── DolphinSchedulerPackageLoader.java
│ │ │ │ │ ├── DolphinSchedulerV1PackageLoader.java
│ │ │ │ │ ├── DolphinSchedulerV2PackageLoader.java
│ │ │ │ │ └── DolphinSchedulerV3PackageLoader.java
│ │ │ │ │ ├── utils
│ │ │ │ │ ├── ArgsUtils.java
│ │ │ │ │ ├── LocationUtils.java
│ │ │ │ │ ├── MapReduceArgsUtils.java
│ │ │ │ │ ├── SparkArgsUtils.java
│ │ │ │ │ └── StringTypeObjectAdapter.java
│ │ │ │ │ ├── v1
│ │ │ │ │ ├── BatchExportProcessDefinitionByIdsRequest.java
│ │ │ │ │ ├── DolphinSchedulerApi.java
│ │ │ │ │ ├── DolphinSchedulerApiService.java
│ │ │ │ │ ├── DolphinSchedulerProjectRequest.java
│ │ │ │ │ ├── DolphinSchedulerRequest.java
│ │ │ │ │ ├── DolphinSchedulerV1Context.java
│ │ │ │ │ ├── DownloadResourceRequest.java
│ │ │ │ │ ├── PaginateData.java
│ │ │ │ │ ├── PaginateResponse.java
│ │ │ │ │ ├── QueryDataSourceListByPaginateRequest.java
│ │ │ │ │ ├── QueryProcessDefinitionByPaginateRequest.java
│ │ │ │ │ ├── QueryResourceListRequest.java
│ │ │ │ │ ├── QueryUdfFuncListByPaginateRequest.java
│ │ │ │ │ ├── Response.java
│ │ │ │ │ └── v139
│ │ │ │ │ │ ├── Constants.java
│ │ │ │ │ │ ├── DependentItem.java
│ │ │ │ │ │ ├── DependentTaskModel.java
│ │ │ │ │ │ ├── Priority.java
│ │ │ │ │ │ ├── ProcessData.java
│ │ │ │ │ │ ├── ProcessMeta.java
│ │ │ │ │ │ ├── SqoopJobType.java
│ │ │ │ │ │ ├── TaskNode.java
│ │ │ │ │ │ ├── TaskNodeConnect.java
│ │ │ │ │ │ ├── UdfFunc.java
│ │ │ │ │ │ ├── UdfType.java
│ │ │ │ │ │ ├── datasource
│ │ │ │ │ │ ├── BaseDataSource.java
│ │ │ │ │ │ ├── ClickHouseDataSource.java
│ │ │ │ │ │ ├── Constants.java
│ │ │ │ │ │ ├── DB2ServerDataSource.java
│ │ │ │ │ │ ├── DataSource.java
│ │ │ │ │ │ ├── DataSourceFactory.java
│ │ │ │ │ │ ├── HiveDataSource.java
│ │ │ │ │ │ ├── MySQLDataSource.java
│ │ │ │ │ │ ├── OracleDataSource.java
│ │ │ │ │ │ ├── PostgreDataSource.java
│ │ │ │ │ │ ├── SQLServerDataSource.java
│ │ │ │ │ │ └── SparkDataSource.java
│ │ │ │ │ │ ├── entity
│ │ │ │ │ │ ├── Property.java
│ │ │ │ │ │ └── ResourceInfo.java
│ │ │ │ │ │ ├── enums
│ │ │ │ │ │ ├── CommandType.java
│ │ │ │ │ │ ├── DataType.java
│ │ │ │ │ │ ├── DbConnectType.java
│ │ │ │ │ │ ├── DbType.java
│ │ │ │ │ │ ├── DependResult.java
│ │ │ │ │ │ ├── DependentRelation.java
│ │ │ │ │ │ ├── Direct.java
│ │ │ │ │ │ ├── ExecutionStatus.java
│ │ │ │ │ │ ├── Flag.java
│ │ │ │ │ │ ├── HttpCheckCondition.java
│ │ │ │ │ │ ├── HttpParametersType.java
│ │ │ │ │ │ ├── ProgramType.java
│ │ │ │ │ │ └── TaskType.java
│ │ │ │ │ │ ├── task
│ │ │ │ │ │ ├── AbstractParameters.java
│ │ │ │ │ │ ├── Direct.java
│ │ │ │ │ │ ├── IParameters.java
│ │ │ │ │ │ ├── TaskTimeoutParameter.java
│ │ │ │ │ │ ├── conditions
│ │ │ │ │ │ │ └── ConditionsParameters.java
│ │ │ │ │ │ ├── datax
│ │ │ │ │ │ │ ├── DataxParameters.java
│ │ │ │ │ │ │ └── DataxUtils.java
│ │ │ │ │ │ ├── dependent
│ │ │ │ │ │ │ └── DependentParameters.java
│ │ │ │ │ │ ├── flink
│ │ │ │ │ │ │ └── FlinkParameters.java
│ │ │ │ │ │ ├── http
│ │ │ │ │ │ │ └── HttpParameters.java
│ │ │ │ │ │ ├── mr
│ │ │ │ │ │ │ └── MapReduceParameters.java
│ │ │ │ │ │ ├── procedure
│ │ │ │ │ │ │ └── ProcedureParameters.java
│ │ │ │ │ │ ├── python
│ │ │ │ │ │ │ └── PythonParameters.java
│ │ │ │ │ │ ├── shell
│ │ │ │ │ │ │ └── ShellParameters.java
│ │ │ │ │ │ ├── spark
│ │ │ │ │ │ │ └── SparkParameters.java
│ │ │ │ │ │ ├── sql
│ │ │ │ │ │ │ ├── SqlBinds.java
│ │ │ │ │ │ │ ├── SqlParameters.java
│ │ │ │ │ │ │ └── SqlType.java
│ │ │ │ │ │ ├── sqoop
│ │ │ │ │ │ │ ├── SqoopConstants.java
│ │ │ │ │ │ │ ├── SqoopParameters.java
│ │ │ │ │ │ │ ├── sources
│ │ │ │ │ │ │ │ ├── SourceHdfsParameter.java
│ │ │ │ │ │ │ │ ├── SourceHiveParameter.java
│ │ │ │ │ │ │ │ └── SourceMysqlParameter.java
│ │ │ │ │ │ │ └── targets
│ │ │ │ │ │ │ │ ├── TargetHdfsParameter.java
│ │ │ │ │ │ │ │ ├── TargetHiveParameter.java
│ │ │ │ │ │ │ │ └── TargetMysqlParameter.java
│ │ │ │ │ │ └── subprocess
│ │ │ │ │ │ │ └── SubProcessParameters.java
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ ├── BusinessTimeUtils.java
│ │ │ │ │ │ ├── ParameterUtils.java
│ │ │ │ │ │ ├── PlaceholderUtils.java
│ │ │ │ │ │ ├── PropertyPlaceholderHelper.java
│ │ │ │ │ │ └── TimePlaceholderUtils.java
│ │ │ │ │ ├── v2
│ │ │ │ │ ├── Constants.java
│ │ │ │ │ ├── DagData.java
│ │ │ │ │ ├── DolphinSchedulerApiV2Service.java
│ │ │ │ │ ├── DolphinSchedulerV2Context.java
│ │ │ │ │ ├── ProcessDefinition.java
│ │ │ │ │ ├── ProcessTaskRelation.java
│ │ │ │ │ ├── Schedule.java
│ │ │ │ │ ├── TaskDefinition.java
│ │ │ │ │ ├── entity
│ │ │ │ │ │ ├── DataSource.java
│ │ │ │ │ │ ├── Project.java
│ │ │ │ │ │ ├── ResourceComponent.java
│ │ │ │ │ │ ├── UDFUser.java
│ │ │ │ │ │ └── UdfFunc.java
│ │ │ │ │ ├── enums
│ │ │ │ │ │ ├── ConditionType.java
│ │ │ │ │ │ ├── DataType.java
│ │ │ │ │ │ ├── DbType.java
│ │ │ │ │ │ ├── DependResult.java
│ │ │ │ │ │ ├── DependentRelation.java
│ │ │ │ │ │ ├── Direct.java
│ │ │ │ │ │ ├── ExecutionStatus.java
│ │ │ │ │ │ ├── FailureStrategy.java
│ │ │ │ │ │ ├── Flag.java
│ │ │ │ │ │ ├── HttpCheckCondition.java
│ │ │ │ │ │ ├── HttpMethod.java
│ │ │ │ │ │ ├── HttpParametersType.java
│ │ │ │ │ │ ├── Priority.java
│ │ │ │ │ │ ├── ProgramType.java
│ │ │ │ │ │ ├── ReleaseState.java
│ │ │ │ │ │ ├── SqoopJobType.java
│ │ │ │ │ │ ├── TaskTimeoutStrategy.java
│ │ │ │ │ │ ├── TaskType.java
│ │ │ │ │ │ ├── TimeoutFlag.java
│ │ │ │ │ │ ├── UdfType.java
│ │ │ │ │ │ └── WarningType.java
│ │ │ │ │ ├── model
│ │ │ │ │ │ ├── DependentItem.java
│ │ │ │ │ │ ├── DependentTaskModel.java
│ │ │ │ │ │ ├── PreviousTaskNode.java
│ │ │ │ │ │ ├── TaskNode.java
│ │ │ │ │ │ └── TaskNodeRelation.java
│ │ │ │ │ ├── process
│ │ │ │ │ │ ├── HttpProperty.java
│ │ │ │ │ │ ├── Property.java
│ │ │ │ │ │ └── ResourceInfo.java
│ │ │ │ │ ├── task
│ │ │ │ │ │ ├── AbstractParameters.java
│ │ │ │ │ │ ├── IParameters.java
│ │ │ │ │ │ ├── TaskTimeoutParameter.java
│ │ │ │ │ │ ├── conditions
│ │ │ │ │ │ │ ├── ConditionResult.java
│ │ │ │ │ │ │ └── ConditionsParameters.java
│ │ │ │ │ │ ├── datax
│ │ │ │ │ │ │ ├── DataxParameters.java
│ │ │ │ │ │ │ └── DataxUtils.java
│ │ │ │ │ │ ├── dependent
│ │ │ │ │ │ │ └── DependentParameters.java
│ │ │ │ │ │ ├── flink
│ │ │ │ │ │ │ └── FlinkParameters.java
│ │ │ │ │ │ ├── http
│ │ │ │ │ │ │ └── HttpParameters.java
│ │ │ │ │ │ ├── mr
│ │ │ │ │ │ │ ├── MapReduceParameters.java
│ │ │ │ │ │ │ └── MapReduceTaskConstants.java
│ │ │ │ │ │ ├── procedure
│ │ │ │ │ │ │ └── ProcedureParameters.java
│ │ │ │ │ │ ├── python
│ │ │ │ │ │ │ └── PythonParameters.java
│ │ │ │ │ │ ├── shell
│ │ │ │ │ │ │ └── ShellParameters.java
│ │ │ │ │ │ ├── spark
│ │ │ │ │ │ │ └── SparkParameters.java
│ │ │ │ │ │ ├── sql
│ │ │ │ │ │ │ ├── SqlBinds.java
│ │ │ │ │ │ │ ├── SqlParameters.java
│ │ │ │ │ │ │ └── SqlType.java
│ │ │ │ │ │ ├── sqoop
│ │ │ │ │ │ │ ├── SqoopParameters.java
│ │ │ │ │ │ │ ├── sources
│ │ │ │ │ │ │ │ ├── SourceHdfsParameter.java
│ │ │ │ │ │ │ │ ├── SourceHiveParameter.java
│ │ │ │ │ │ │ │ └── SourceMysqlParameter.java
│ │ │ │ │ │ │ └── targets
│ │ │ │ │ │ │ │ ├── TargetHdfsParameter.java
│ │ │ │ │ │ │ │ ├── TargetHiveParameter.java
│ │ │ │ │ │ │ │ └── TargetMysqlParameter.java
│ │ │ │ │ │ ├── subprocess
│ │ │ │ │ │ │ └── SubProcessParameters.java
│ │ │ │ │ │ ├── switchtask
│ │ │ │ │ │ │ ├── SwitchParameters.java
│ │ │ │ │ │ │ └── SwitchResultVo.java
│ │ │ │ │ │ └── tis
│ │ │ │ │ │ │ └── PigeonCommonParameters.java
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── ParameterUtils.java
│ │ │ │ │ │ ├── PlaceholderUtils.java
│ │ │ │ │ │ ├── PropertyPlaceholderHelper.java
│ │ │ │ │ │ ├── TaskConstants.java
│ │ │ │ │ │ └── TimePlaceholderUtils.java
│ │ │ │ │ └── v3
│ │ │ │ │ ├── DagData.java
│ │ │ │ │ ├── DolphinSchedulerV3Context.java
│ │ │ │ │ ├── DolphinschedulerApiV3Service.java
│ │ │ │ │ ├── ProcessDefinition.java
│ │ │ │ │ ├── ProcessTaskRelation.java
│ │ │ │ │ ├── Schedule.java
│ │ │ │ │ ├── TaskDefinition.java
│ │ │ │ │ ├── entity
│ │ │ │ │ ├── DataSource.java
│ │ │ │ │ ├── Project.java
│ │ │ │ │ ├── ResourceComponent.java
│ │ │ │ │ ├── UDFUser.java
│ │ │ │ │ └── UdfFunc.java
│ │ │ │ │ ├── enums
│ │ │ │ │ ├── CommandType.java
│ │ │ │ │ ├── DataType.java
│ │ │ │ │ ├── DbConnectType.java
│ │ │ │ │ ├── DbType.java
│ │ │ │ │ ├── DependResult.java
│ │ │ │ │ ├── DependentRelation.java
│ │ │ │ │ ├── Direct.java
│ │ │ │ │ ├── Flag.java
│ │ │ │ │ ├── Priority.java
│ │ │ │ │ ├── ResourceType.java
│ │ │ │ │ ├── SqlType.java
│ │ │ │ │ ├── TaskExecutionStatus.java
│ │ │ │ │ ├── TaskRunStatus.java
│ │ │ │ │ ├── TaskTimeoutStrategy.java
│ │ │ │ │ └── UdfType.java
│ │ │ │ │ ├── model
│ │ │ │ │ ├── DependentItem.java
│ │ │ │ │ ├── DependentTaskModel.java
│ │ │ │ │ ├── ProgramType.java
│ │ │ │ │ ├── Property.java
│ │ │ │ │ ├── ResourceInfo.java
│ │ │ │ │ ├── SparkConstants.java
│ │ │ │ │ └── SwitchResultVo.java
│ │ │ │ │ ├── task
│ │ │ │ │ ├── TaskConstants.java
│ │ │ │ │ ├── conditions
│ │ │ │ │ │ └── ConditionsParameters.java
│ │ │ │ │ ├── dataquality
│ │ │ │ │ │ └── DataQualityParameters.java
│ │ │ │ │ ├── datax
│ │ │ │ │ │ ├── DataxParameters.java
│ │ │ │ │ │ └── DataxUtils.java
│ │ │ │ │ ├── dependent
│ │ │ │ │ │ └── DependentParameters.java
│ │ │ │ │ ├── dlc
│ │ │ │ │ │ └── DLCParameters.java
│ │ │ │ │ ├── flink
│ │ │ │ │ │ ├── FlinkConstants.java
│ │ │ │ │ │ ├── FlinkDeployMode.java
│ │ │ │ │ │ └── FlinkParameters.java
│ │ │ │ │ ├── hivecli
│ │ │ │ │ │ ├── HiveCliConstants.java
│ │ │ │ │ │ └── HiveCliParameters.java
│ │ │ │ │ ├── http
│ │ │ │ │ │ ├── HttpCheckCondition.java
│ │ │ │ │ │ ├── HttpMethod.java
│ │ │ │ │ │ ├── HttpParameters.java
│ │ │ │ │ │ ├── HttpParametersType.java
│ │ │ │ │ │ └── HttpProperty.java
│ │ │ │ │ ├── mr
│ │ │ │ │ │ └── MapReduceParameters.java
│ │ │ │ │ ├── parameters
│ │ │ │ │ │ ├── AbstractParameters.java
│ │ │ │ │ │ ├── IParameters.java
│ │ │ │ │ │ └── resource
│ │ │ │ │ │ │ ├── AbstractResourceParameters.java
│ │ │ │ │ │ │ ├── DataSourceParameters.java
│ │ │ │ │ │ │ ├── ResourceParametersHelper.java
│ │ │ │ │ │ │ └── UdfFuncParameters.java
│ │ │ │ │ ├── procedure
│ │ │ │ │ │ └── ProcedureParameters.java
│ │ │ │ │ ├── python
│ │ │ │ │ │ └── PythonParameters.java
│ │ │ │ │ ├── shell
│ │ │ │ │ │ └── ShellParameters.java
│ │ │ │ │ ├── spark
│ │ │ │ │ │ ├── ArgsUtils.java
│ │ │ │ │ │ ├── SparkConstants.java
│ │ │ │ │ │ └── SparkParameters.java
│ │ │ │ │ ├── sql
│ │ │ │ │ │ └── SqlParameters.java
│ │ │ │ │ ├── sqoop
│ │ │ │ │ │ ├── SqoopJobType.java
│ │ │ │ │ │ ├── SqoopParameters.java
│ │ │ │ │ │ ├── sources
│ │ │ │ │ │ │ ├── SourceHdfsParameter.java
│ │ │ │ │ │ │ ├── SourceHiveParameter.java
│ │ │ │ │ │ │ └── SourceMysqlParameter.java
│ │ │ │ │ │ └── targets
│ │ │ │ │ │ │ ├── TargetHdfsParameter.java
│ │ │ │ │ │ │ ├── TargetHiveParameter.java
│ │ │ │ │ │ │ └── TargetMysqlParameter.java
│ │ │ │ │ ├── subprocess
│ │ │ │ │ │ └── SubProcessParameters.java
│ │ │ │ │ └── switchs
│ │ │ │ │ │ └── SwitchParameters.java
│ │ │ │ │ ├── utils
│ │ │ │ │ ├── ParameterUtils.java
│ │ │ │ │ ├── PlaceholderUtils.java
│ │ │ │ │ └── PropertyPlaceholderHelper.java
│ │ │ │ │ ├── v301
│ │ │ │ │ ├── ConditionType.java
│ │ │ │ │ ├── Constants.java
│ │ │ │ │ ├── DagData.java
│ │ │ │ │ ├── ProcessDefinition.java
│ │ │ │ │ ├── ProcessExecutionTypeEnum.java
│ │ │ │ │ ├── ProcessTaskRelation.java
│ │ │ │ │ ├── ReleaseState.java
│ │ │ │ │ ├── TaskDefinition.java
│ │ │ │ │ ├── TaskTimeoutStrategy.java
│ │ │ │ │ └── TimeoutFlag.java
│ │ │ │ │ └── v320
│ │ │ │ │ ├── DagDataSchedule.java
│ │ │ │ │ ├── Location.java
│ │ │ │ │ ├── TaskExecuteType.java
│ │ │ │ │ └── task
│ │ │ │ │ ├── Dependence.java
│ │ │ │ │ ├── condition
│ │ │ │ │ ├── ConditionResult.java
│ │ │ │ │ └── ConditionsParameters.java
│ │ │ │ │ └── dependent
│ │ │ │ │ └── DependentParameters.java
│ │ │ │ └── test
│ │ │ │ ├── http
│ │ │ │ └── v3
│ │ │ │ │ └── process-definitions.http
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── migrationx
│ │ │ │ └── dolphinscheduler
│ │ │ │ └── v1
│ │ │ │ └── DolphinSchedulerApiServiceTest.java
│ │ ├── migrationx-domain-oozie
│ │ │ ├── .gitignore
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── migrationx
│ │ │ │ └── domain
│ │ │ │ └── dataworks
│ │ │ │ └── oozie
│ │ │ │ ├── FakeDagELFunctions.java
│ │ │ │ ├── FakeElEvaluatorContext.java
│ │ │ │ ├── OozieActionType.java
│ │ │ │ ├── OozieConstants.java
│ │ │ │ └── OozieNodeType.java
│ │ └── pom.xml
│ ├── migrationx-reader
│ │ ├── .gitignore
│ │ ├── package.xml
│ │ ├── pom.xml
│ │ ├── readme.md
│ │ └── src
│ │ │ ├── main
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── aliyun
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── migrationx
│ │ │ │ │ └── reader
│ │ │ │ │ ├── adf
│ │ │ │ │ ├── AdfCommandApp.java
│ │ │ │ │ └── AdfReader.java
│ │ │ │ │ ├── airflow
│ │ │ │ │ └── AirflowCommandApp.java
│ │ │ │ │ ├── aliyunemr
│ │ │ │ │ └── AliyunEmrCommandApp.java
│ │ │ │ │ ├── dataworks
│ │ │ │ │ └── DataWorksFlowSpecReader.java
│ │ │ │ │ └── dolphinscheduler
│ │ │ │ │ ├── DolphinSchedulerCommandApp.java
│ │ │ │ │ ├── DolphinSchedulerReader.java
│ │ │ │ │ └── DolphinSchedulerSingleJsonReader.java
│ │ │ └── python
│ │ │ │ ├── .gitignore
│ │ │ │ ├── __init__.py
│ │ │ │ ├── build.sh
│ │ │ │ ├── common.sh
│ │ │ │ ├── setup_env.sh
│ │ │ │ └── src
│ │ │ │ ├── README.md
│ │ │ │ ├── __init__.py
│ │ │ │ ├── airflow_dag_parser
│ │ │ │ ├── __init__.py
│ │ │ │ ├── common
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── datax.py
│ │ │ │ │ └── supports.py
│ │ │ │ ├── connections.py
│ │ │ │ ├── converter
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── converters.py
│ │ │ │ │ ├── dag_converter.py
│ │ │ │ │ └── task_converter.py
│ │ │ │ ├── dag_parser.py
│ │ │ │ ├── models
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── dw_base.py
│ │ │ │ │ ├── dw_node.py
│ │ │ │ │ ├── dw_node_io.py
│ │ │ │ │ └── dw_workflow.py
│ │ │ │ └── patch
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── base_hook_patch.py
│ │ │ │ │ ├── mysql_hook_patch.py
│ │ │ │ │ ├── presto_hook_patch.py
│ │ │ │ │ ├── presto_to_mysql_operator_patch.py
│ │ │ │ │ ├── spark_submit_hook_patch.py
│ │ │ │ │ ├── sqoop_hook_patch.py
│ │ │ │ │ └── task_instance_patch.py
│ │ │ │ ├── parser
│ │ │ │ └── test
│ │ │ │ ├── __init__.py
│ │ │ │ └── test_dag_folder
│ │ │ │ ├── __init__.py
│ │ │ │ ├── configs
│ │ │ │ ├── __init__.py
│ │ │ │ └── config.py
│ │ │ │ ├── connections.csv
│ │ │ │ ├── dag.py
│ │ │ │ ├── example_bash_operator.py
│ │ │ │ ├── example_branch_operator.py
│ │ │ │ ├── example_branch_python_dop_operator_3.py
│ │ │ │ ├── example_docker_operator.py
│ │ │ │ ├── example_http_operator.py
│ │ │ │ ├── example_latest_only.py
│ │ │ │ ├── example_latest_only_with_trigger.py
│ │ │ │ ├── example_passing_params_via_test_command.py
│ │ │ │ ├── example_python_operator.py
│ │ │ │ ├── example_short_circuit_operator.py
│ │ │ │ ├── example_skip_dag.py
│ │ │ │ ├── example_subdag_operator.py
│ │ │ │ ├── example_trigger_controller_dag.py
│ │ │ │ ├── example_trigger_target_dag.py
│ │ │ │ ├── example_xcom.py
│ │ │ │ ├── hive_demo.py
│ │ │ │ ├── hive_presto_demo.py
│ │ │ │ ├── module
│ │ │ │ ├── __init__.py
│ │ │ │ ├── db_mysql_manager.py
│ │ │ │ └── default_args_util.py
│ │ │ │ ├── test_spark_submit.py
│ │ │ │ └── tut.py
│ │ │ └── test
│ │ │ └── java
│ │ │ ├── AdfCommandAppReaderTest.java
│ │ │ ├── AdfReaderInnerTest.java
│ │ │ └── com
│ │ │ └── aliyun
│ │ │ └── dataworks
│ │ │ └── migrationx
│ │ │ └── reader
│ │ │ └── dolphinscheduler
│ │ │ └── DolphinSchedulerReaderTest.java
│ ├── migrationx-transformer
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ ├── conf
│ │ │ │ ├── adf-mc-transformer-config.json
│ │ │ │ ├── dataworks-transformer-config-emr-sample.json
│ │ │ │ ├── dataworks-transformer-config-hologres-sample.json
│ │ │ │ ├── dataworks-transformer-config-maxcompute-sample.json
│ │ │ │ ├── dataworks-transformer-config.json
│ │ │ │ ├── dolphinschedulerV3-dataworks-transformer-config.json
│ │ │ │ ├── flowspec-airflowV2-transformer-config.json
│ │ │ │ └── flowspec-dolphinschedulerV3-transformer-config.json
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── aliyun
│ │ │ │ │ └── dataworks
│ │ │ │ │ └── migrationx
│ │ │ │ │ └── transformer
│ │ │ │ │ ├── core
│ │ │ │ │ ├── BaseTransformerApp.java
│ │ │ │ │ ├── RawNodeType.java
│ │ │ │ │ ├── annotation
│ │ │ │ │ │ └── DependsOn.java
│ │ │ │ │ ├── checkpoint
│ │ │ │ │ │ ├── CheckPoint.java
│ │ │ │ │ │ ├── StoreWriter.java
│ │ │ │ │ │ ├── file
│ │ │ │ │ │ │ ├── BufferedFileWriter.java
│ │ │ │ │ │ │ └── LocalFileCheckPoint.java
│ │ │ │ │ │ └── memory
│ │ │ │ │ │ │ ├── CacheWriter.java
│ │ │ │ │ │ │ └── InMemoryCheckPoint.java
│ │ │ │ │ ├── collector
│ │ │ │ │ │ └── WorkflowCollector.java
│ │ │ │ │ ├── common
│ │ │ │ │ │ ├── Constants.java
│ │ │ │ │ │ ├── Context.java
│ │ │ │ │ │ ├── DateParser.java
│ │ │ │ │ │ ├── StateCallbackListener.java
│ │ │ │ │ │ └── ValidationUtils.java
│ │ │ │ │ ├── controller
│ │ │ │ │ │ ├── Task.java
│ │ │ │ │ │ ├── TaskDag.java
│ │ │ │ │ │ ├── TaskStage.java
│ │ │ │ │ │ └── TaskStatus.java
│ │ │ │ │ ├── loader
│ │ │ │ │ │ ├── ConfigPropertiesLoader.java
│ │ │ │ │ │ ├── ProjectAssetLoader.java
│ │ │ │ │ │ ├── ProjectResourceLoader.java
│ │ │ │ │ │ └── ProjectWorkflowLoader.java
│ │ │ │ │ ├── report
│ │ │ │ │ │ ├── ReportItem.java
│ │ │ │ │ │ ├── ReportItemType.java
│ │ │ │ │ │ ├── ReportRiskLevel.java
│ │ │ │ │ │ └── Reportable.java
│ │ │ │ │ ├── spark
│ │ │ │ │ │ └── command
│ │ │ │ │ │ │ ├── AbstractAppHandle.java
│ │ │ │ │ │ │ ├── AbstractCommandBuilder.java
│ │ │ │ │ │ │ ├── AbstractLauncher.java
│ │ │ │ │ │ │ ├── ChildProcAppHandle.java
│ │ │ │ │ │ │ ├── CommandBuilderUtils.java
│ │ │ │ │ │ │ ├── FilteredObjectInputStream.java
│ │ │ │ │ │ │ ├── InProcessAppHandle.java
│ │ │ │ │ │ │ ├── InProcessLauncher.java
│ │ │ │ │ │ │ ├── LauncherConnection.java
│ │ │ │ │ │ │ ├── LauncherProtocol.java
│ │ │ │ │ │ │ ├── LauncherServer.java
│ │ │ │ │ │ │ ├── NamedThreadFactory.java
│ │ │ │ │ │ │ ├── OutputRedirector.java
│ │ │ │ │ │ │ ├── SparkAppHandle.java
│ │ │ │ │ │ │ ├── SparkClassCommandBuilder.java
│ │ │ │ │ │ │ ├── SparkLauncher.java
│ │ │ │ │ │ │ ├── SparkSubmitCommandBuilder.java
│ │ │ │ │ │ │ └── SparkSubmitOptionParser.java
│ │ │ │ │ ├── sqoop
│ │ │ │ │ │ ├── AccumuloConstants.java
│ │ │ │ │ │ ├── AntCommandLine.java
│ │ │ │ │ │ ├── BaseSqoopTool.java
│ │ │ │ │ │ ├── ConfigurationConstants.java
│ │ │ │ │ │ ├── ConfigurationHelper.java
│ │ │ │ │ │ ├── DBConfiguration.java
│ │ │ │ │ │ ├── DICode.java
│ │ │ │ │ │ ├── DIConfigTemplate.java
│ │ │ │ │ │ ├── DIJsonProcessor.java
│ │ │ │ │ │ ├── DataSyncException.java
│ │ │ │ │ │ ├── DelimiterSet.java
│ │ │ │ │ │ ├── ExceptionTracker.java
│ │ │ │ │ │ ├── ExportTool.java
│ │ │ │ │ │ ├── ImportTool.java
│ │ │ │ │ │ ├── InstanceContext.java
│ │ │ │ │ │ ├── InvalidOptionsException.java
│ │ │ │ │ │ ├── LoggingUtils.java
│ │ │ │ │ │ ├── MainframeConfiguration.java
│ │ │ │ │ │ ├── OptionsFileUtil.java
│ │ │ │ │ │ ├── RandomHash.java
│ │ │ │ │ │ ├── RelatedOptions.java
│ │ │ │ │ │ ├── Sqoop.java
│ │ │ │ │ │ ├── SqoopJsonUtil.java
│ │ │ │ │ │ ├── SqoopOptions.java
│ │ │ │ │ │ ├── SqoopParser.java
│ │ │ │ │ │ ├── SqoopTool.java
│ │ │ │ │ │ ├── StoredAsProperty.java
│ │ │ │ │ │ └── ToolOptions.java
│ │ │ │ │ ├── transformer
│ │ │ │ │ │ ├── AbstractPackageTransformer.java
│ │ │ │ │ │ └── Transformer.java
│ │ │ │ │ ├── translator
│ │ │ │ │ │ ├── AbstractCommandSqlTranslator.java
│ │ │ │ │ │ ├── BeeLineCommandSqlTranslator.java
│ │ │ │ │ │ ├── HiveCommandSqlTranslator.java
│ │ │ │ │ │ ├── HiveEofDelimiterCommandSqlTranslator.java
│ │ │ │ │ │ ├── ImpalaCommandSqlTranslator.java
│ │ │ │ │ │ ├── NodePropertyTranslator.java
│ │ │ │ │ │ ├── Perl2ShellTranslator.java
│ │ │ │ │ │ ├── PrestoCommandSqlTranslator.java
│ │ │ │ │ │ ├── SparkSubmitTranslator.java
│ │ │ │ │ │ ├── SqoopToDITranslator.java
│ │ │ │ │ │ └── TranslateUtils.java
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── BashUtils.java
│ │ │ │ │ │ ├── CodeGenerateUtils.java
│ │ │ │ │ │ ├── DiCodeUtils.java
│ │ │ │ │ │ ├── EmrCodeUtils.java
│ │ │ │ │ │ ├── NamingUtils.java
│ │ │ │ │ │ ├── PaginateUtils.java
│ │ │ │ │ │ ├── SpecFileResourceTypeUtils.java
│ │ │ │ │ │ └── ZipUtils.java
│ │ │ │ │ ├── dataworks
│ │ │ │ │ ├── apps
│ │ │ │ │ │ ├── DataWorksAdfTransformerApp.java
│ │ │ │ │ │ ├── DataWorksAirflowV2TransformerApp.java
│ │ │ │ │ │ └── DataWorksDolphinschedulerTransformerApp.java
│ │ │ │ │ ├── converter
│ │ │ │ │ │ ├── AbstractBaseConverter.java
│ │ │ │ │ │ ├── V1MigrationPackageConverter.java
│ │ │ │ │ │ ├── WorkflowConverter.java
│ │ │ │ │ │ ├── adf
│ │ │ │ │ │ │ └── AdfConverter.java
│ │ │ │ │ │ ├── airflow
│ │ │ │ │ │ │ └── AirflowDagConverter.java
│ │ │ │ │ │ ├── azkaban
│ │ │ │ │ │ │ └── AzkabanConverter.java
│ │ │ │ │ │ ├── caiyunjian
│ │ │ │ │ │ │ └── CaiyunjianConverter.java
│ │ │ │ │ │ ├── datago
│ │ │ │ │ │ │ └── DataGOConverter.java
│ │ │ │ │ │ ├── dolphinscheduler
│ │ │ │ │ │ │ ├── AbstractDolphinSchedulerConverter.java
│ │ │ │ │ │ │ ├── DolphinSchedulerConverterContext.java
│ │ │ │ │ │ │ ├── entity
│ │ │ │ │ │ │ │ ├── Connection.java
│ │ │ │ │ │ │ │ ├── Parameter.java
│ │ │ │ │ │ │ │ └── Step.java
│ │ │ │ │ │ │ ├── filters
│ │ │ │ │ │ │ │ └── DolphinSchedulerConverterFilter.java
│ │ │ │ │ │ │ ├── utils
│ │ │ │ │ │ │ │ ├── ConverterTypeUtils.java
│ │ │ │ │ │ │ │ └── DolphinFilter.java
│ │ │ │ │ │ │ ├── v1
│ │ │ │ │ │ │ │ ├── nodes
│ │ │ │ │ │ │ │ │ ├── DolphinSchedulerV1Converter.java
│ │ │ │ │ │ │ │ │ ├── TaskConverterFactory.java
│ │ │ │ │ │ │ │ │ ├── V1ProcessDefinitionConverter.java
│ │ │ │ │ │ │ │ │ └── parameters
│ │ │ │ │ │ │ │ │ │ ├── AbstractParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── ConditionsParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── DataxParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── DefaultParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── DependentParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── MrParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── ProcessDefinitionConverter.java
│ │ │ │ │ │ │ │ │ │ ├── PythonParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── ShellParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── SparkParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── SqlParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── SqoopParameterConverter.java
│ │ │ │ │ │ │ │ │ │ └── SubProcessParameterConverter.java
│ │ │ │ │ │ │ │ └── workflow
│ │ │ │ │ │ │ │ │ ├── DolphinSchedulerV1WorkflowConverter.java
│ │ │ │ │ │ │ │ │ ├── ParamListConverter.java
│ │ │ │ │ │ │ │ │ ├── SpecFlowDependConverter.java
│ │ │ │ │ │ │ │ │ ├── TaskConverterFactoryV1.java
│ │ │ │ │ │ │ │ │ ├── TriggerConverter.java
│ │ │ │ │ │ │ │ │ ├── V1ProcessDefinitionConverter.java
│ │ │ │ │ │ │ │ │ └── parameters
│ │ │ │ │ │ │ │ │ ├── AbstractParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── CustomParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── DataxParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── DependentParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── MrParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── ProcedureParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── PythonParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── ShellParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SparkParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SqlParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SqoopParameterConverter.java
│ │ │ │ │ │ │ │ │ └── SubProcessParameterConverter.java
│ │ │ │ │ │ │ ├── v2
│ │ │ │ │ │ │ │ ├── nodes
│ │ │ │ │ │ │ │ │ ├── DolphinSchedulerV2Converter.java
│ │ │ │ │ │ │ │ │ ├── TaskConverterFactoryV2.java
│ │ │ │ │ │ │ │ │ ├── V2ProcessDefinitionConverter.java
│ │ │ │ │ │ │ │ │ └── parameters
│ │ │ │ │ │ │ │ │ │ ├── AbstractParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── ConditionsParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── CustomParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── DataxParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── DependentParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── HttpParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── MrParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── ProcedureParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── PythonParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── ShellParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── SparkParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── SqlParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── SqoopParameterConverter.java
│ │ │ │ │ │ │ │ │ │ ├── SubProcessParameterConverter.java
│ │ │ │ │ │ │ │ │ │ └── SwitchParameterConverter.java
│ │ │ │ │ │ │ │ └── workflow
│ │ │ │ │ │ │ │ │ ├── DolphinSchedulerV2WorkflowConverter.java
│ │ │ │ │ │ │ │ │ ├── ParamListConverter.java
│ │ │ │ │ │ │ │ │ ├── SpecFlowDependConverter.java
│ │ │ │ │ │ │ │ │ ├── TaskConverterFactoryV2.java
│ │ │ │ │ │ │ │ │ ├── TriggerConverter.java
│ │ │ │ │ │ │ │ │ ├── V2ProcessDefinitionConverter.java
│ │ │ │ │ │ │ │ │ └── parameters
│ │ │ │ │ │ │ │ │ ├── AbstractParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── CustomParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── DataxParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── DependentParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── MrParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── ProcedureParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── PythonParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── ShellParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SparkParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SqlParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SqoopParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SubProcessParameterConverter.java
│ │ │ │ │ │ │ │ │ └── SwitchParameterConverter.java
│ │ │ │ │ │ │ └── v3
│ │ │ │ │ │ │ │ ├── nodes
│ │ │ │ │ │ │ │ ├── DolphinSchedulerV3Converter.java
│ │ │ │ │ │ │ │ ├── TaskConverterFactoryV3.java
│ │ │ │ │ │ │ │ ├── V3ProcessDefinitionConverter.java
│ │ │ │ │ │ │ │ └── parameters
│ │ │ │ │ │ │ │ │ ├── AbstractParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── ConditionsParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── CustomParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── DLCParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── DataxParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── DependentParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── FlinkParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── HiveCliParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── HttpParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── MrParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── ProcedureParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── PythonParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── ShellParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SparkParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SqlParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SqoopParameterConverter.java
│ │ │ │ │ │ │ │ │ ├── SubProcessParameterConverter.java
│ │ │ │ │ │ │ │ │ └── SwitchParameterConverter.java
│ │ │ │ │ │ │ │ └── workflow
│ │ │ │ │ │ │ │ ├── DolphinSchedulerV3WorkflowConverter.java
│ │ │ │ │ │ │ │ ├── ParamListConverter.java
│ │ │ │ │ │ │ │ ├── SpecFlowDependConverter.java
│ │ │ │ │ │ │ │ ├── TaskConverterFactoryV3.java
│ │ │ │ │ │ │ │ ├── TriggerConverter.java
│ │ │ │ │ │ │ │ ├── V3ProcessDefinitionConverter.java
│ │ │ │ │ │ │ │ └── parameters
│ │ │ │ │ │ │ │ ├── AbstractParameterConverter.java
│ │ │ │ │ │ │ │ ├── CustomParameterConverter.java
│ │ │ │ │ │ │ │ ├── DataxParameterConverter.java
│ │ │ │ │ │ │ │ ├── DependentParameterConverter.java
│ │ │ │ │ │ │ │ ├── FlinkParameterConverter.java
│ │ │ │ │ │ │ │ ├── HiveCliParameterConverter.java
│ │ │ │ │ │ │ │ ├── MrParameterConverter.java
│ │ │ │ │ │ │ │ ├── ProcedureParameterConverter.java
│ │ │ │ │ │ │ │ ├── PythonParameterConverter.java
│ │ │ │ │ │ │ │ ├── ShellParameterConverter.java
│ │ │ │ │ │ │ │ ├── SparkParameterConverter.java
│ │ │ │ │ │ │ │ ├── SqlParameterConverter.java
│ │ │ │ │ │ │ │ ├── SqoopParameterConverter.java
│ │ │ │ │ │ │ │ ├── SubProcessParameterConverter.java
│ │ │ │ │ │ │ │ └── SwitchParameterConverter.java
│ │ │ │ │ │ ├── emr
│ │ │ │ │ │ │ └── AliyunEmrWorkflowConverter.java
│ │ │ │ │ │ ├── ide
│ │ │ │ │ │ │ └── IdeExportProjectConverter.java
│ │ │ │ │ │ └── oozie
│ │ │ │ │ │ │ └── OozieWorkflowConverter.java
│ │ │ │ │ └── transformer
│ │ │ │ │ │ ├── DataWorksAdfTransformer.java
│ │ │ │ │ │ ├── DataWorksDolphinSchedulerTransformer.java
│ │ │ │ │ │ ├── DataWorksPackageFormat.java
│ │ │ │ │ │ ├── DataWorksTransformerConfig.java
│ │ │ │ │ │ └── WorkflowDolphinSchedulerTransformer.java
│ │ │ │ │ ├── dolphinscheduler
│ │ │ │ │ ├── app
│ │ │ │ │ │ └── FlowSpecDolphinSchedulerV3TransformerApp.java
│ │ │ │ │ ├── converter
│ │ │ │ │ │ ├── DolphinSchedulerConverter.java
│ │ │ │ │ │ └── flowspec
│ │ │ │ │ │ │ ├── FlowSpecDolphinSchedulerV3Converter.java
│ │ │ │ │ │ │ ├── SpecWorkflowDolphinSchedulerV3Converter.java
│ │ │ │ │ │ │ ├── common
│ │ │ │ │ │ │ ├── AbstractCommonConverter.java
│ │ │ │ │ │ │ ├── AbstractNodeConverter.java
│ │ │ │ │ │ │ ├── NodeConverterFactory.java
│ │ │ │ │ │ │ ├── ProcessDefinitionConverter.java
│ │ │ │ │ │ │ ├── ProcessTaskRelationListConverter.java
│ │ │ │ │ │ │ ├── ScheduleConverter.java
│ │ │ │ │ │ │ ├── TaskDefinitionListConverter.java
│ │ │ │ │ │ │ └── context
│ │ │ │ │ │ │ │ └── FlowSpecConverterContext.java
│ │ │ │ │ │ │ ├── python
│ │ │ │ │ │ │ └── PythonNodeConverter.java
│ │ │ │ │ │ │ ├── shell
│ │ │ │ │ │ │ └── ShellNodeConverter.java
│ │ │ │ │ │ │ ├── spark
│ │ │ │ │ │ │ ├── SparkNodeConverter.java
│ │ │ │ │ │ │ └── SparkSubmitConfigParser.java
│ │ │ │ │ │ │ └── sql
│ │ │ │ │ │ │ └── SqlNodeConverter.java
│ │ │ │ │ └── transformer
│ │ │ │ │ │ └── flowspec
│ │ │ │ │ │ ├── FlowSpecDolphinSchedulerV3Transformer.java
│ │ │ │ │ │ └── FlowSpecDolphinSchedulerV3TransformerConfig.java
│ │ │ │ │ └── flowspec
│ │ │ │ │ ├── app
│ │ │ │ │ └── DolphinSchedulerV3FlowSpecTransformerApp.java
│ │ │ │ │ ├── converter
│ │ │ │ │ ├── FlowSpecConverter.java
│ │ │ │ │ └── dolphinscheduler
│ │ │ │ │ │ ├── DolphinSchedulerV3FlowSpecConverter.java
│ │ │ │ │ │ ├── common
│ │ │ │ │ │ ├── AbstractCommonConverter.java
│ │ │ │ │ │ ├── AbstractParameterConverter.java
│ │ │ │ │ │ ├── ParamListConverter.java
│ │ │ │ │ │ ├── ParameterConverterFactory.java
│ │ │ │ │ │ ├── SpecFlowDependConverter.java
│ │ │ │ │ │ ├── SpecNodeListConverter.java
│ │ │ │ │ │ ├── TriggerConverter.java
│ │ │ │ │ │ ├── WorkflowConverter.java
│ │ │ │ │ │ └── context
│ │ │ │ │ │ │ └── DolphinSchedulerV3ConverterContext.java
│ │ │ │ │ │ ├── logic
│ │ │ │ │ │ ├── condition
│ │ │ │ │ │ │ └── ConditionsParameterConverter.java
│ │ │ │ │ │ ├── dependent
│ │ │ │ │ │ │ └── DependentParameterConverter.java
│ │ │ │ │ │ └── subprocess
│ │ │ │ │ │ │ ├── BaseSubProcessParameterConverter.java
│ │ │ │ │ │ │ ├── SubProcessParameterConverter.java
│ │ │ │ │ │ │ └── SubProcessParameterWithoutContainerConverter.java
│ │ │ │ │ │ ├── mr
│ │ │ │ │ │ └── MapReduceParameterConverter.java
│ │ │ │ │ │ ├── python
│ │ │ │ │ │ ├── PythonParameterConverter.java
│ │ │ │ │ │ └── PythonVersion.java
│ │ │ │ │ │ ├── shell
│ │ │ │ │ │ └── ShellParameterConverter.java
│ │ │ │ │ │ ├── spark
│ │ │ │ │ │ └── SparkParameterConverter.java
│ │ │ │ │ │ ├── sql
│ │ │ │ │ │ └── SqlParameterConverter.java
│ │ │ │ │ │ └── sqoop
│ │ │ │ │ │ └── SqoopParameterConverter.java
│ │ │ │ │ ├── model
│ │ │ │ │ └── SpecRefEntityWrapper.java
│ │ │ │ │ └── transformer
│ │ │ │ │ ├── AbstractTransformer.java
│ │ │ │ │ └── dolphinscheduler
│ │ │ │ │ ├── DolphinSchedulerV3FlowSpecTransformer.java
│ │ │ │ │ └── DolphinSchedulerV3FlowSpecTransformerConfig.java
│ │ │ └── python
│ │ │ │ ├── post_handler_example.py
│ │ │ │ └── python2sql
│ │ │ │ └── py2sql.py
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ ├── domain
│ │ │ │ └── utils
│ │ │ │ │ └── CronExpressUtilTest.java
│ │ │ │ └── migrationx
│ │ │ │ └── transformer
│ │ │ │ ├── adf
│ │ │ │ ├── AdfConverterTest.java
│ │ │ │ └── AdfTransformerTest.java
│ │ │ │ ├── dataworks
│ │ │ │ ├── apps
│ │ │ │ │ ├── DataWorksAirflowV2TransformerAppTest.java
│ │ │ │ │ └── DataWorksDolphinschedulerTransformerAppTest.java
│ │ │ │ └── converter
│ │ │ │ │ └── dolphinscheduler
│ │ │ │ │ ├── DolphinSchedulerConverterContextTest.java
│ │ │ │ │ └── v3
│ │ │ │ │ ├── DLCParameterConverterTest.java
│ │ │ │ │ ├── nodes
│ │ │ │ │ ├── TaskConverterFactoryV3Test.java
│ │ │ │ │ └── V3ProcessDefinitionConverterTest.java
│ │ │ │ │ └── workflow
│ │ │ │ │ ├── DolphinSchedulerV3WorkflowConverterTest.java
│ │ │ │ │ ├── ParamListConverterTest.java
│ │ │ │ │ ├── SpecFlowDependConverterTest.java
│ │ │ │ │ ├── TaskConverterFactoryV3Test.java
│ │ │ │ │ ├── TriggerConverterTest.java
│ │ │ │ │ └── parameters
│ │ │ │ │ ├── DataxParameterConverterTest.java
│ │ │ │ │ ├── DependentParameterConverterTest.java
│ │ │ │ │ ├── FlinkParameterConverterTest.java
│ │ │ │ │ ├── HiveCliParameterConverterTest.java
│ │ │ │ │ ├── MrParameterConverterTest.java
│ │ │ │ │ ├── ProcedureParameterConverterTest.java
│ │ │ │ │ ├── PythonParameterConverterTest.java
│ │ │ │ │ ├── ShellParameterConverterTest.java
│ │ │ │ │ ├── SparkParameterConverterTest.java
│ │ │ │ │ ├── SqlParameterConverterTest.java
│ │ │ │ │ ├── SqoopParameterConverterTest.java
│ │ │ │ │ ├── SubProcessParameterConverterTest.java
│ │ │ │ │ └── SwitchParameterConverterTest.java
│ │ │ │ ├── dolphinscheduler
│ │ │ │ └── convert
│ │ │ │ │ └── SpecWorkflowDolphinSchedulerV3ConverterTest.java
│ │ │ │ └── flowspec
│ │ │ │ └── converter
│ │ │ │ └── DolphinSchedulerV3FlowSpecConverterTest.java
│ │ │ └── resources
│ │ │ ├── airflow2
│ │ │ └── config
│ │ │ │ └── mappings.json
│ │ │ ├── conf
│ │ │ └── transformer.json
│ │ │ ├── dolphin
│ │ │ ├── conf
│ │ │ │ ├── transformer-spec-odps.json
│ │ │ │ └── transformer-workflow-odps.json
│ │ │ ├── v1
│ │ │ │ └── all
│ │ │ │ │ ├── datasource
│ │ │ │ │ └── datasource_page_1.json
│ │ │ │ │ ├── package_info.json
│ │ │ │ │ ├── projects.json
│ │ │ │ │ ├── projects
│ │ │ │ │ └── wl_test4
│ │ │ │ │ │ └── processDefinition
│ │ │ │ │ │ └── process_definitions_page_1.json
│ │ │ │ │ ├── resource
│ │ │ │ │ └── resources.json
│ │ │ │ │ └── udfFunction
│ │ │ │ │ └── udf_function_page_1.json
│ │ │ ├── v2
│ │ │ │ └── all
│ │ │ │ │ ├── datasource
│ │ │ │ │ └── datasource_page_1.json
│ │ │ │ │ ├── package_info.json
│ │ │ │ │ ├── projects.json
│ │ │ │ │ ├── projects
│ │ │ │ │ └── wl_test3
│ │ │ │ │ │ └── processDefinition
│ │ │ │ │ │ └── process_definitions_page_1.json
│ │ │ │ │ ├── resource
│ │ │ │ │ └── resources.json
│ │ │ │ │ └── udfFunction
│ │ │ │ │ └── udf_function_page_1.json
│ │ │ └── v3
│ │ │ │ ├── dependent
│ │ │ │ ├── datasource
│ │ │ │ │ └── datasource_page_1.json
│ │ │ │ ├── package_info.json
│ │ │ │ ├── projects.json
│ │ │ │ ├── projects
│ │ │ │ │ └── test2
│ │ │ │ │ │ └── processDefinition
│ │ │ │ │ │ ├── process_definitions_page_1.json
│ │ │ │ │ │ └── workflow_1734682376191.json
│ │ │ │ ├── resource
│ │ │ │ │ └── resources.json
│ │ │ │ └── udfFunction
│ │ │ │ │ └── udf_function_page_1.json
│ │ │ │ ├── mr
│ │ │ │ ├── datasource
│ │ │ │ │ └── datasource_page_1.json
│ │ │ │ ├── package_info.json
│ │ │ │ ├── projects.json
│ │ │ │ ├── projects
│ │ │ │ │ └── 13942964612128
│ │ │ │ │ │ └── processDefinition
│ │ │ │ │ │ └── process_definitions_page_1.json
│ │ │ │ ├── resource
│ │ │ │ │ └── resources.json
│ │ │ │ └── udfFunction
│ │ │ │ │ └── udf_function_page_1.json
│ │ │ │ ├── python1
│ │ │ │ ├── datasource
│ │ │ │ │ └── datasource_page_1.json
│ │ │ │ ├── package_info.json
│ │ │ │ ├── projects.json
│ │ │ │ ├── projects
│ │ │ │ │ └── 13666515015680
│ │ │ │ │ │ └── processDefinition
│ │ │ │ │ │ └── process_definitions_page_1.json
│ │ │ │ ├── resource
│ │ │ │ │ └── resources.json
│ │ │ │ └── udfFunction
│ │ │ │ │ └── udf_function_page_1.json
│ │ │ │ ├── shell
│ │ │ │ ├── datasource
│ │ │ │ │ └── datasource_page_1.json
│ │ │ │ ├── package_info.json
│ │ │ │ ├── projects.json
│ │ │ │ ├── projects
│ │ │ │ │ └── test2
│ │ │ │ │ │ └── processDefinition
│ │ │ │ │ │ └── workflow_1734937013861.json
│ │ │ │ ├── resource
│ │ │ │ │ └── resources.json
│ │ │ │ └── udfFunction
│ │ │ │ │ └── udf_function_page_1.json
│ │ │ │ ├── spark
│ │ │ │ ├── datasource
│ │ │ │ │ └── datasource_page_1.json
│ │ │ │ ├── package_info.json
│ │ │ │ ├── projects.json
│ │ │ │ ├── projects
│ │ │ │ │ └── 13666515015680
│ │ │ │ │ │ └── processDefinition
│ │ │ │ │ │ └── workflow_1735111947074.json
│ │ │ │ ├── resource
│ │ │ │ │ └── resources.json
│ │ │ │ └── udfFunction
│ │ │ │ │ └── udf_function_page_1.json
│ │ │ │ ├── sql
│ │ │ │ ├── datasource
│ │ │ │ │ └── datasource_page_1.json
│ │ │ │ ├── package_info.json
│ │ │ │ ├── projects.json
│ │ │ │ ├── projects
│ │ │ │ │ └── 13942964612128
│ │ │ │ │ │ └── processDefinition
│ │ │ │ │ │ └── process_definitions_page_1.json
│ │ │ │ ├── resource
│ │ │ │ │ └── resources.json
│ │ │ │ └── udfFunction
│ │ │ │ │ └── udf_function_page_1.json
│ │ │ │ ├── sqoop
│ │ │ │ ├── datasource
│ │ │ │ │ └── datasource_page_1.json
│ │ │ │ ├── package_info.json
│ │ │ │ ├── projects.json
│ │ │ │ ├── projects
│ │ │ │ │ └── 13942964612128
│ │ │ │ │ │ └── processDefinition
│ │ │ │ │ │ └── process_definitions_page_1.json
│ │ │ │ ├── resource
│ │ │ │ │ └── resources.json
│ │ │ │ └── udfFunction
│ │ │ │ │ └── udf_function_page_1.json
│ │ │ │ ├── subprocess1
│ │ │ │ ├── datasource
│ │ │ │ │ └── datasource_page_1.json
│ │ │ │ ├── package_info.json
│ │ │ │ ├── projects.json
│ │ │ │ ├── projects
│ │ │ │ │ └── test2
│ │ │ │ │ │ └── processDefinition
│ │ │ │ │ │ ├── process_definitions_page_1.json
│ │ │ │ │ │ └── workflow_1734682376191.json
│ │ │ │ ├── resource
│ │ │ │ │ └── resources.json
│ │ │ │ └── udfFunction
│ │ │ │ │ └── udf_function_page_1.json
│ │ │ │ └── switch
│ │ │ │ ├── datasource
│ │ │ │ └── datasource_page_1.json
│ │ │ │ ├── package_info.json
│ │ │ │ ├── projects.json
│ │ │ │ ├── projects
│ │ │ │ └── test2
│ │ │ │ │ └── processDefinition
│ │ │ │ │ └── workflow_1734937144406.json
│ │ │ │ ├── resource
│ │ │ │ └── resources.json
│ │ │ │ └── udfFunction
│ │ │ │ └── udf_function_page_1.json
│ │ │ ├── dolphinscheduler
│ │ │ └── v1_package_0
│ │ │ │ ├── datasource
│ │ │ │ └── datasource_page_1.json
│ │ │ │ ├── package_info.json
│ │ │ │ ├── projects.json
│ │ │ │ ├── projects
│ │ │ │ └── project_a
│ │ │ │ │ └── processDefinition
│ │ │ │ │ └── process_definitions_page_1.json
│ │ │ │ ├── resource
│ │ │ │ └── resources.json
│ │ │ │ └── udfFunction
│ │ │ │ └── udf_function_page_1.json
│ │ │ ├── json
│ │ │ ├── adf
│ │ │ │ ├── conf.json
│ │ │ │ ├── nested_pipelines.json
│ │ │ │ ├── pipelines.json
│ │ │ │ ├── triggers.json
│ │ │ │ └── workflow1.json
│ │ │ ├── dolphin
│ │ │ │ ├── conditions-dolphin.json
│ │ │ │ ├── dependent-dolphin.json
│ │ │ │ ├── dependent-real-case.json
│ │ │ │ ├── multiSqlNode-dolphin.json
│ │ │ │ ├── real-case1.json
│ │ │ │ ├── real-case2.json
│ │ │ │ ├── shell-dolphin.json
│ │ │ │ ├── singleSqlNode-dolphin.json
│ │ │ │ ├── sql-python-dolphin.json
│ │ │ │ ├── sql-python-spark-dolphin.json
│ │ │ │ ├── subprocess-dolphin.json
│ │ │ │ └── v3
│ │ │ │ │ ├── dolphin_dlc_v3.json
│ │ │ │ │ └── shell_v3.json
│ │ │ └── spec
│ │ │ │ ├── real-case-shell-python-sql-spec.json
│ │ │ │ ├── real-case-single-python-spec.json
│ │ │ │ ├── real-case-single-sql-spec.json
│ │ │ │ ├── shell-node-spec.json
│ │ │ │ ├── single-sql-node-spec.json
│ │ │ │ ├── sql-python-node-spec.json
│ │ │ │ └── sql-python-spark-node-spec.json
│ │ │ ├── py2sql
│ │ │ ├── dwd_xingye_user_portrait_df.py
│ │ │ ├── dws_xingye_creator_metric_df.py
│ │ │ └── python的脚本模板.py
│ │ │ └── pyspark
│ │ │ ├── python脚本任务.json
│ │ │ └── sparksql任务.json
│ ├── migrationx-writer
│ │ ├── pom.xml
│ │ └── src
│ │ │ ├── main
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── migrationx
│ │ │ │ ├── local
│ │ │ │ ├── DataWorksSpecLocalCommandApp.java
│ │ │ │ └── LocalAction.java
│ │ │ │ └── writer
│ │ │ │ ├── DataWorksMigrationAssistWriter.java
│ │ │ │ ├── DataWorksMigrationSpecificationImportWriter.java
│ │ │ │ ├── dataworks
│ │ │ │ ├── DataWorksFlowSpecWriter.java
│ │ │ │ └── model
│ │ │ │ │ └── AsyncJobStatus.java
│ │ │ │ └── dolphinscheduler
│ │ │ │ └── DolphinSchedulerSingleJsonWriter.java
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── aliyun
│ │ │ │ └── dataworks
│ │ │ │ └── migrationx
│ │ │ │ └── writer
│ │ │ │ ├── AdfWriterTest.java
│ │ │ │ └── DataWorksMigrationSpecificationImportWriterTest.java
│ │ │ └── resources
│ │ │ └── airflow2
│ │ │ └── workflows
│ │ │ └── sample.json
│ ├── package.xml
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── bin
│ │ │ ├── airworks.py
│ │ │ ├── local.py
│ │ │ ├── migrationx.py
│ │ │ ├── reader.py
│ │ │ ├── transformer.py
│ │ │ └── writer.py
│ │ └── conf
│ │ │ ├── airworks.json
│ │ │ ├── apps.json
│ │ │ └── migrationx.json
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── aliyun
│ │ └── dataworks
│ │ └── AppTest.java
└── pom.xml
├── docs
├── dev
│ ├── develop-guide.md
│ └── develop-guide_zh_CN.md
├── images
│ ├── architecture-cn.jpg
│ ├── architecture-en.jpg
│ ├── architecture.jpg
│ └── spec
│ │ ├── dw_spec_package_demo-en.jpg
│ │ ├── dw_spec_package_demo.jpg
│ │ └── samples
│ │ ├── real_case.jpg
│ │ └── simple.jpg
├── migrationx
│ ├── index.md
│ ├── usage.md
│ └── usage_zh_CN.md
└── spec
│ ├── samples.md
│ └── spec-fields.md
├── pom.xml
├── schema
├── artifact.schema.json
├── docs
│ ├── README.md
│ ├── artifact-artifactnodeoutput-properties-output.md
│ ├── artifact-artifactnodeoutput.md
│ ├── artifact-artifacttable-properties-guid.md
│ ├── artifact-artifacttable.md
│ ├── artifact-artifactvariable-properties-id.md
│ ├── artifact-artifactvariable-properties-name.md
│ ├── artifact-artifactvariable-properties-scope-metaenum.md
│ ├── artifact-artifactvariable-properties-scope.md
│ ├── artifact-artifactvariable-properties-type-metaenum.md
│ ├── artifact-artifactvariable-properties-type.md
│ ├── artifact-artifactvariable-properties-value.md
│ ├── artifact-artifactvariable.md
│ ├── artifact-properties-artifacttype-metaenum.md
│ ├── artifact-properties-artifacttype.md
│ ├── artifact.md
│ ├── fileresource-properties-id.md
│ ├── fileresource-properties-name.md
│ ├── fileresource.md
│ ├── flow-if-properties-kind.md
│ ├── flow-if-properties.md
│ ├── flow-if.md
│ ├── flow-properties-flowmetedata-properties-description.md
│ ├── flow-properties-flowmetedata-properties-owner.md
│ ├── flow-properties-flowmetedata.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecartifacts.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecedges-flowworkflowspecedge-properties-flowworkflowspecedgenodedepends-flowworkflowspecedgenodedepend-properties-nodeid.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecedges-flowworkflowspecedge-properties-flowworkflowspecedgenodedepends-flowworkflowspecedgenodedepend-properties-type-metaenum.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecedges-flowworkflowspecedge-properties-flowworkflowspecedgenodedepends-flowworkflowspecedgenodedepend-properties-type.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecedges-flowworkflowspecedge-properties-flowworkflowspecedgenodedepends-flowworkflowspecedgenodedepend.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecedges-flowworkflowspecedge-properties-flowworkflowspecedgenodedepends.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecedges-flowworkflowspecedge-properties-nodeid.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecedges-flowworkflowspecedge.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecedges.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecfileresources.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecfunctions.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecnodes.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecruntimeresources.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecscripts.md
│ ├── flow-properties-flowworkflowspec-properties-flowworkflowspecvariables.md
│ ├── flow-properties-flowworkflowspec.md
│ ├── flow-properties-kind-metaenum.md
│ ├── flow-properties-kind.md
│ ├── flow-properties-version.md
│ ├── flow-then-properties-spec-properties-flowworkflowspectriggers.md
│ ├── flow-then-properties-spec-properties.md
│ ├── flow-then-properties-spec.md
│ ├── flow-then-properties.md
│ ├── flow-then.md
│ ├── flow.md
│ ├── function-properties-id.md
│ ├── function-properties-name.md
│ ├── function.md
│ ├── node-properties-id.md
│ ├── node-properties-instancemode-metaenum.md
│ ├── node-properties-instancemode.md
│ ├── node-properties-name.md
│ ├── node-properties-nodefileresources.md
│ ├── node-properties-nodefunctions.md
│ ├── node-properties-nodeinputartifact-properties-nodeinputartifactnodeoutputs.md
│ ├── node-properties-nodeinputartifact-properties-nodeinputartifacttables.md
│ ├── node-properties-nodeinputartifact-properties-nodeinputartifactvariables.md
│ ├── node-properties-nodeinputartifact.md
│ ├── node-properties-nodeoutputartifact-properties-nodeoutputartifactnodeoutputs.md
│ ├── node-properties-nodeoutputartifact-properties-nodeoutputartifacttables.md
│ ├── node-properties-nodeoutputartifact-properties-nodeoutputartifactvariables.md
│ ├── node-properties-nodeoutputartifact.md
│ ├── node-properties-priority.md
│ ├── node-properties-recurrence-metaenum.md
│ ├── node-properties-recurrence.md
│ ├── node-properties-rerunmode-metaenum.md
│ ├── node-properties-rerunmode.md
│ ├── node-properties-timeout.md
│ ├── node.md
│ ├── runtimeresource-properties-id.md
│ ├── runtimeresource-properties-resourcegroup.md
│ ├── runtimeresource.md
│ ├── script-properties-id.md
│ ├── script-properties-language.md
│ ├── script-properties-path.md
│ ├── script-properties-scriptparameters.md
│ ├── script-properties-scriptruntime-properties-command.md
│ ├── script-properties-scriptruntime-properties-engine.md
│ ├── script-properties-scriptruntime.md
│ ├── script.md
│ ├── trigger-properties-cron.md
│ ├── trigger-properties-endtime.md
│ ├── trigger-properties-id.md
│ ├── trigger-properties-starttime.md
│ ├── trigger-properties-timezone.md
│ ├── trigger-properties-type.md
│ └── trigger.md
├── fileResource.schema.json
├── flow.schema.json
├── function.schema.json
├── node.schema.json
├── runtimeResource.schema.json
├── script.schema.json
├── testcase
│ ├── 1.json
│ └── 2.json
└── trigger.schema.json
└── spec
├── pom.xml
└── src
├── main
├── java
│ └── com
│ │ └── aliyun
│ │ └── dataworks
│ │ └── common
│ │ └── spec
│ │ ├── SpecUtil.java
│ │ ├── adapter
│ │ ├── SpecAdapter.java
│ │ ├── SpecEntityHandler.java
│ │ ├── SpecHandlerContext.java
│ │ └── handler
│ │ │ └── AbstractEntityHandler.java
│ │ ├── annotation
│ │ ├── SpecParser.java
│ │ └── SpecWriter.java
│ │ ├── domain
│ │ ├── DataWorksWorkflowSpec.java
│ │ ├── Spec.java
│ │ ├── SpecConstants.java
│ │ ├── SpecContext.java
│ │ ├── SpecEntity.java
│ │ ├── SpecNoRefEntity.java
│ │ ├── SpecRefEntity.java
│ │ ├── Specification.java
│ │ ├── dw
│ │ │ ├── codemodel
│ │ │ │ ├── AbstractBaseCode.java
│ │ │ │ ├── Code.java
│ │ │ │ ├── CodeConstants.java
│ │ │ │ ├── CodeModel.java
│ │ │ │ ├── CodeModelFactory.java
│ │ │ │ ├── ComponentSqlCode.java
│ │ │ │ ├── ControllerBranchCode.java
│ │ │ │ ├── ControllerJoinCode.java
│ │ │ │ ├── CrossTenantCode.java
│ │ │ │ ├── DataIntegrationCode.java
│ │ │ │ ├── DefaultJsonFormCode.java
│ │ │ │ ├── EmrAllocationSpec.java
│ │ │ │ ├── EmrCode.java
│ │ │ │ ├── EmrJobMode.java
│ │ │ │ ├── EmrJobType.java
│ │ │ │ ├── EmrLauncher.java
│ │ │ │ ├── EmrProperty.java
│ │ │ │ ├── JsonFormCode.java
│ │ │ │ ├── JsonObjectCode.java
│ │ │ │ ├── MultiLanguageScriptingCode.java
│ │ │ │ ├── OdpsSparkCode.java
│ │ │ │ ├── OdpsSparkFileExtend.java
│ │ │ │ ├── PaiCode.java
│ │ │ │ ├── PaiFlowCode.java
│ │ │ │ ├── PaiflowYamlCode.java
│ │ │ │ ├── PlainTextCode.java
│ │ │ │ ├── SparkSubmitCode.java
│ │ │ │ ├── SpecDescribableCode.java
│ │ │ │ ├── SqlComponentCode.java
│ │ │ │ └── YamlFormCode.java
│ │ │ ├── nodemodel
│ │ │ │ ├── DataWorksNode.java
│ │ │ │ ├── DataWorksNodeAdapter.java
│ │ │ │ ├── DataWorksNodeAdapterContextAware.java
│ │ │ │ ├── DataWorksNodeCodeAdapter.java
│ │ │ │ ├── DataWorksNodeInputOutputAdapter.java
│ │ │ │ ├── DwNodeDependentTypeInfo.java
│ │ │ │ ├── InputContext.java
│ │ │ │ ├── OutputContext.java
│ │ │ │ └── SpecEntityDelegate.java
│ │ │ └── types
│ │ │ │ ├── CalcEngineType.java
│ │ │ │ ├── CodeProgramType.java
│ │ │ │ ├── IntEnum.java
│ │ │ │ ├── LabelType.java
│ │ │ │ ├── Language.java
│ │ │ │ ├── LanguageEnum.java
│ │ │ │ ├── LocaleAware.java
│ │ │ │ ├── ModelTreeRoot.java
│ │ │ │ └── ProductModule.java
│ │ ├── enums
│ │ │ ├── ArtifactType.java
│ │ │ ├── DependencyType.java
│ │ │ ├── FailureStrategy.java
│ │ │ ├── FlowType.java
│ │ │ ├── FunctionType.java
│ │ │ ├── NodeInstanceModeType.java
│ │ │ ├── NodeRecurrenceType.java
│ │ │ ├── NodeRerunModeType.java
│ │ │ ├── SourceType.java
│ │ │ ├── SpecEmbeddedCodeType.java
│ │ │ ├── SpecEmbeddedResourceType.java
│ │ │ ├── SpecEntityType.java
│ │ │ ├── SpecFileResourceType.java
│ │ │ ├── SpecKind.java
│ │ │ ├── SpecStorageType.java
│ │ │ ├── SpecVersion.java
│ │ │ ├── TriggerType.java
│ │ │ ├── VariableScopeType.java
│ │ │ └── VariableType.java
│ │ ├── interfaces
│ │ │ ├── Input.java
│ │ │ ├── LabelEnum.java
│ │ │ ├── NodeIO.java
│ │ │ └── Output.java
│ │ ├── noref
│ │ │ ├── SpecAnd.java
│ │ │ ├── SpecAssertIn.java
│ │ │ ├── SpecAssertion.java
│ │ │ ├── SpecBranch.java
│ │ │ ├── SpecBranches.java
│ │ │ ├── SpecDepend.java
│ │ │ ├── SpecDoWhile.java
│ │ │ ├── SpecFlowDepend.java
│ │ │ ├── SpecForEach.java
│ │ │ ├── SpecJoin.java
│ │ │ ├── SpecJoinBranch.java
│ │ │ ├── SpecLogic.java
│ │ │ ├── SpecNodeRef.java
│ │ │ ├── SpecOr.java
│ │ │ ├── SpecPaiflow.java
│ │ │ ├── SpecParamHub.java
│ │ │ ├── SpecSubFlow.java
│ │ │ ├── SpecVariableDepend.java
│ │ │ └── SpecVariableFlowDepend.java
│ │ ├── paiflow
│ │ │ ├── AbstractPaiflowBase.java
│ │ │ ├── PaiflowArguments.java
│ │ │ ├── PaiflowArgumentsWrapper.java
│ │ │ ├── PaiflowArtifact.java
│ │ │ ├── PaiflowMetadata.java
│ │ │ ├── PaiflowObjectToStringSerializer.java
│ │ │ ├── PaiflowParameter.java
│ │ │ ├── PaiflowScriptContent.java
│ │ │ └── PaiflowSpec.java
│ │ └── ref
│ │ │ ├── Container.java
│ │ │ ├── InputOutputWired.java
│ │ │ ├── ScriptWired.java
│ │ │ ├── SpecArtifact.java
│ │ │ ├── SpecDatasource.java
│ │ │ ├── SpecDqcRule.java
│ │ │ ├── SpecFile.java
│ │ │ ├── SpecFileResource.java
│ │ │ ├── SpecFunction.java
│ │ │ ├── SpecNode.java
│ │ │ ├── SpecNodeOutput.java
│ │ │ ├── SpecRuntimeResource.java
│ │ │ ├── SpecScheduleStrategy.java
│ │ │ ├── SpecScript.java
│ │ │ ├── SpecTable.java
│ │ │ ├── SpecTrigger.java
│ │ │ ├── SpecVariable.java
│ │ │ ├── SpecWorkflow.java
│ │ │ ├── TemporalSpecNode.java
│ │ │ ├── account
│ │ │ ├── SpecAccount.java
│ │ │ └── SpecAkAccount.java
│ │ │ ├── calcengine
│ │ │ ├── SpecCalcEngine.java
│ │ │ └── SpecCalcEngineVersion.java
│ │ │ ├── component
│ │ │ ├── SpecComponent.java
│ │ │ └── SpecComponentParameter.java
│ │ │ ├── file
│ │ │ ├── SpecHdfsFile.java
│ │ │ ├── SpecLocalFile.java
│ │ │ ├── SpecMavenFile.java
│ │ │ ├── SpecObjectStorageFile.java
│ │ │ └── SpecOssFile.java
│ │ │ ├── runtime
│ │ │ ├── SpecScriptRuntime.java
│ │ │ ├── container
│ │ │ │ ├── SpecContainer.java
│ │ │ │ └── SpecContainerEnvVar.java
│ │ │ └── emr
│ │ │ │ ├── EmrJobConfig.java
│ │ │ │ ├── EmrJobExecuteMode.java
│ │ │ │ └── EmrJobSubmitMode.java
│ │ │ └── storage
│ │ │ ├── SpecHdfsStorage.java
│ │ │ ├── SpecLocalStorage.java
│ │ │ ├── SpecMavenStorage.java
│ │ │ ├── SpecOssStorage.java
│ │ │ └── SpecStorage.java
│ │ ├── exception
│ │ ├── SpecErrorCode.java
│ │ ├── SpecException.java
│ │ └── SpecIErrorCode.java
│ │ ├── parser
│ │ ├── DefaultParserEnum.java
│ │ ├── Parser.java
│ │ ├── SpecParserContext.java
│ │ ├── SpecParserFactory.java
│ │ ├── ToDomainRootParser.java
│ │ └── impl
│ │ │ ├── ArtifactListParser.java
│ │ │ ├── DataWorksWorkflowSpecParser.java
│ │ │ ├── DefaultSpecParser.java
│ │ │ ├── DoWhileParser.java
│ │ │ ├── EmrJobConfigParser.java
│ │ │ ├── FileListParser.java
│ │ │ ├── SpecBranchParser.java
│ │ │ ├── SpecCalcEngineParser.java
│ │ │ ├── SpecComponentParser.java
│ │ │ ├── SpecContainerEnvVarParser.java
│ │ │ ├── SpecContainerParser.java
│ │ │ ├── SpecDependParser.java
│ │ │ ├── SpecDqcRuleParser.java
│ │ │ ├── SpecFileResourceParser.java
│ │ │ ├── SpecForEachParser.java
│ │ │ ├── SpecFunctionParser.java
│ │ │ ├── SpecJoinParser.java
│ │ │ ├── SpecNodeParser.java
│ │ │ ├── SpecNodeRefParser.java
│ │ │ ├── SpecObjectStorageFileParser.java
│ │ │ ├── SpecPaiflowParser.java
│ │ │ ├── SpecParamHubParser.java
│ │ │ ├── SpecParser.java
│ │ │ ├── SpecScheduleStrategyParser.java
│ │ │ ├── SpecScriptRuntimeParser.java
│ │ │ ├── SpecStorageParser.java
│ │ │ ├── SpecTableParser.java
│ │ │ ├── SpecVariableDependParser.java
│ │ │ ├── SpecVariableFlowDependParser.java
│ │ │ ├── SpecVariableParser.java
│ │ │ ├── SpecWorkflowParser.java
│ │ │ └── SubFlowParser.java
│ │ ├── utils
│ │ ├── ClassUtils.java
│ │ ├── GsonUtils.java
│ │ ├── JSONUtils.java
│ │ ├── MapKeyMatchUtils.java
│ │ ├── ObjectUtils.java
│ │ ├── ParserUtil.java
│ │ ├── ReflectUtils.java
│ │ ├── SpecDevUtil.java
│ │ ├── SpecValidateUtil.java
│ │ ├── StringTypeObjectAdapter.java
│ │ ├── UuidUtils.java
│ │ └── VariableUtils.java
│ │ └── writer
│ │ ├── SpecWriterContext.java
│ │ ├── Writer.java
│ │ ├── WriterFactory.java
│ │ └── impl
│ │ ├── AbstractWriter.java
│ │ ├── DataWorksWorkflowSpecWriter.java
│ │ ├── DefaultJsonObjectWriter.java
│ │ ├── EmrJobConfigWriter.java
│ │ ├── SpecAssertionWriter.java
│ │ ├── SpecBranchWriter.java
│ │ ├── SpecBranchesWriter.java
│ │ ├── SpecCalcEngineWriter.java
│ │ ├── SpecComponentWriter.java
│ │ ├── SpecDependWriter.java
│ │ ├── SpecDoWhileWriter.java
│ │ ├── SpecDqcRuleWriter.java
│ │ ├── SpecFileResourceWriter.java
│ │ ├── SpecFlowDependWriter.java
│ │ ├── SpecForEachWriter.java
│ │ ├── SpecFunctionWriter.java
│ │ ├── SpecJoinBranchWriter.java
│ │ ├── SpecJoinWriter.java
│ │ ├── SpecNodeOutputWriter.java
│ │ ├── SpecNodeRefWriter.java
│ │ ├── SpecNodeWriter.java
│ │ ├── SpecObjectStorageFileWriter.java
│ │ ├── SpecPaiflowWriter.java
│ │ ├── SpecParamHubWriter.java
│ │ ├── SpecRuntimeResourceWriter.java
│ │ ├── SpecScriptRuntimeWriter.java
│ │ ├── SpecScriptWriter.java
│ │ ├── SpecStorageWriter.java
│ │ ├── SpecTableWriter.java
│ │ ├── SpecTriggerWriter.java
│ │ ├── SpecVariableDependWriter.java
│ │ ├── SpecVariableFlowDependWriter.java
│ │ ├── SpecVariableWriter.java
│ │ ├── SpecWorkflowWriter.java
│ │ └── SpecificationWriter.java
└── spec
│ └── examples
│ ├── json
│ ├── assign.json
│ ├── assignment.json
│ ├── branch.json
│ ├── cdh.json
│ ├── combined_node.json
│ ├── datasource.json
│ ├── dowhile.json
│ ├── dqc.json
│ ├── emr.json
│ ├── example.json
│ ├── file_resource.json
│ ├── function.json
│ ├── innerflow.json
│ ├── join.json
│ ├── manual_flow.json
│ ├── paiflow.json
│ ├── param_hub.json
│ ├── parameter_node.json
│ ├── real_case.json
│ ├── real_case_expanded.json
│ ├── script_runtime_template.json
│ ├── simple.json
│ └── table.json
│ ├── tojson.sh
│ ├── yaml
│ ├── assign.yaml
│ ├── assignment.yaml
│ ├── branch.yaml
│ ├── cdh.yaml
│ ├── combined_node.yaml
│ ├── dataservice.yaml
│ ├── datasource.yaml
│ ├── dowhile.yaml
│ ├── dqc.yaml
│ ├── emr.yaml
│ ├── example.yaml
│ ├── file_resource.yaml
│ ├── function.yaml
│ ├── innerflow.yaml
│ ├── join.yaml
│ ├── manual_flow.yaml
│ ├── paiflow.yaml
│ ├── param_hub.yaml
│ ├── parameter_node.yaml
│ ├── real_case.yaml
│ ├── real_case_expanded.yaml
│ ├── script_runtime_template.yaml
│ ├── simple.yaml
│ └── table.yaml
│ └── yaml2json.py
└── test
├── java
└── com
│ └── aliyun
│ └── dataworks
│ └── common
│ └── spec
│ ├── SpecUtilTest.java
│ ├── SpecWriterUtilTest.java
│ ├── domain
│ ├── dw
│ │ ├── codemodel
│ │ │ ├── CodeModelFactoryTest.java
│ │ │ ├── ComponentSqlCodeTest.java
│ │ │ ├── CrossTenantCodeTest.java
│ │ │ ├── EmrCodeTest.java
│ │ │ ├── PaiCodeTest.java
│ │ │ ├── PaiFlowCodeTest.java
│ │ │ ├── PaiflowYamlCodeTest.java
│ │ │ ├── SparkSubmitCodeTest.java
│ │ │ └── SqlComponentCodeTest.java
│ │ └── nodemodel
│ │ │ ├── DataWorksNodeAdapterTest.java
│ │ │ ├── DataWorksNodeCodeAdapterTest.java
│ │ │ └── DataWorksNodeInputOutputAdapterTest.java
│ ├── noref
│ │ ├── SpecDependTest.java
│ │ ├── SpecFlowDependTest.java
│ │ └── SpecVariableFlowDependTest.java
│ └── ref
│ │ ├── SpecNodeTest.java
│ │ └── component
│ │ └── SpecComponentTest.java
│ ├── parser
│ └── impl
│ │ ├── SpecScheduleStrategyParserTest.java
│ │ └── SpecScriptRuntimeParserTest.java
│ └── utils
│ ├── MapKeyMatchUtilsTest.java
│ ├── ReflectUtilsTest.java
│ └── VariableUtilsTest.java
└── resources
├── assign.json
├── branch.json
├── codemodel
└── pai_code_sample_1.json
├── combined_node.json
├── example.json
├── expanded.json
├── innerflow.json
├── join.json
├── logback.xml
├── manual_flow.json
├── newSimple.json
├── nodemodel
├── all_depend_types.json
├── assignment.json
├── dide_shell.json
├── dowhile.json
├── foreach.json
├── manual.json
└── pyodps2.json
├── param_hub.json
├── parameter_node.json
├── script_runtime_template.json
├── simpleDemo.json
└── toSpecDemo.json
/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea/
2 |
3 | target/
4 | !.mvn/wrapper/maven-wrapper.jar
5 | !**/src/main/**/target/
6 | !**/src/test/**/target/
7 |
8 | ### IntelliJ IDEA ###
9 | .idea/modules.xml
10 | .idea/jarRepositories.xml
11 | .idea/compiler.xml
12 | .idea/libraries/
13 | *.iws
14 | *.iml
15 | *.ipr
16 |
17 | ### Eclipse ###
18 | .apt_generated
19 | .classpath
20 | .factorypath
21 | .project
22 | .settings
23 | .springBeans
24 | .sts4-cache
25 |
26 | ### NetBeans ###
27 | /nbproject/private/
28 | /nbbuild/
29 | /dist/
30 | /nbdist/
31 | /.nb-gradle/
32 | build/
33 | !**/src/main/**/build/
34 | !**/src/test/**/build/
35 |
36 | ### VS Code ###
37 | .vscode/
38 |
39 | ### Mac OS ###
40 | .DS_Store
41 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Editor-based HTTP Client requests
5 | /httpRequests/
6 | # Datasource local storage ignored files
7 | /dataSources/
8 | /dataSources.local.xml
9 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Version 1.1.0
2 |
3 | ## New
4 |
5 | * add top level field `spec` to specification
6 | * add `files` field type `File` to DataWorksWorkflowSpec to separate concept from `Script`
7 | * [TODO] new: emr node supports
8 |
9 | ## Update
10 |
11 | * ArtifactType.OUTPUT to ArtifactType.NODE_OUTPUT, and compatible with old version spec `output` key
12 | * delete currently unused Specification.engine field
13 | * update SpecResource/SpecDatasource/SpecTable define and parser/writer
14 |
15 | # Version 1.0.0
16 |
17 | ## initial release of `FlowSpec` and `MigrationX` tools
--------------------------------------------------------------------------------
/client/client-common/src/main/java/com/aliyun/dataworks/client/command/AppType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.client.command;
17 |
18 | /**
19 | * @author 聿剑
20 | * @date 2023/9/14
21 | */
22 | public enum AppType {
23 | reader,
24 | transformer,
25 | writer,
26 | spec
27 | }
--------------------------------------------------------------------------------
/client/client-toolkits/src/main/bin/spec.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 |
4 | # Copyright (c) 2024, Alibaba Cloud;
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may 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, 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 common
18 |
19 | cur_path = common.get_cur_path()
20 | conf_path = common.get_conf_path()
21 |
22 | common.run_command("spec")
23 |
--------------------------------------------------------------------------------
/client/client-toolkits/src/main/conf/apps.json:
--------------------------------------------------------------------------------
1 | {
2 | "spec": {
3 | "dataworks": {
4 | "appClass": "com.aliyun.dataworks.client.toolkits.command.SpecCommandApp"
5 | }
6 | }
7 | }
--------------------------------------------------------------------------------
/client/client-toolkits/src/main/java/com/aliyun/dataworks/client/toolkits/command/DataWorksSpecToolkit.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.client.toolkits.command;
17 |
18 | /**
19 | * @author 聿剑
20 | * @date 2024/9/23
21 | */
22 | public class DataWorksSpecToolkit {
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/client/client-toolkits/src/test/java/com/aliyun/dataworks/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/README.MD:
--------------------------------------------------------------------------------
1 | # 使用方法
2 |
3 | 1 解压airflow-workflow.tgz
4 |
5 | ```shell
6 | tar zxvf airflow-workflow.tgz
7 | ```
8 |
9 | 2 设置PTYHONPATH
10 | 指定PYTHONPATH到airflow的python lib目录,例如
11 |
12 | ```shell
13 | export PYTHONPATH=/usr/local/lib/python3.6/site-packages
14 | # 路径只是举例子,实际export以现场环境为准
15 | export AIRFLOW_HOME=/var/lib/airflow
16 | export AIRFLOW_CONFIG=/var/run/cloudera-scm-agent/process/2531-airflow-AIRFLOW_SCHEDULER/airflow.cfg
17 | ```
18 |
19 | 3 执行airflow DAG导出Workflow操作
20 |
21 | ```shell
22 | cd airflow-workflow
23 | python3.6 ./parser \
24 | -p 'airflow_imported/my_dags/' \ # optional
25 | -m /path/to/conf/flowspec-airflowV2-transformer-config.json \ # optional
26 | -d /path/to/airflow/dag/floder/ \
27 | -o /path/to/workflow/saving/folder/
28 | ```
29 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/__init__.py:
--------------------------------------------------------------------------------
1 | # for airflow version
2 | __version__ = '2.2'
3 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/common/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx-transformer/src/main/python/airflow_dag_parser/common/__init__.py
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/converter/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx-transformer/src/main/python/airflow_dag_parser/converter/__init__.py
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/dag_parser.py:
--------------------------------------------------------------------------------
1 | from airflow.models import DagBag
2 | from airflow.utils.log.logging_mixin import LoggingMixin
3 |
4 |
5 | class DagParser(LoggingMixin):
6 | def __init__(self, dag_folder):
7 | self.dag_folder = dag_folder
8 | self.dag_bag = None
9 |
10 | def parse(self):
11 | try:
12 | self.dag_bag = DagBag(self.dag_folder, include_examples=False)
13 | self.log.info("Init DagBag success\n\n")
14 | except Exception as e:
15 | self.log.error(e)
16 |
17 | def get_dags(self):
18 | if self.dag_bag:
19 | return self.dag_bag.dags
20 | return None
21 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/miscs/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx-transformer/src/main/python/airflow_dag_parser/miscs/__init__.py
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/miscs/helpers.py:
--------------------------------------------------------------------------------
1 | def resolve_param_type_title(af_param):
2 | if af_param.schema is not None and 'type' in af_param.schema:
3 | param_type = af_param.schema['type']
4 | else:
5 | param_type = 'UNKNOWN'
6 | if af_param.schema is not None and 'title' in af_param.schema:
7 | param_title = af_param.schema['title']
8 | else:
9 | param_title = None
10 | return param_type, param_title
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/models/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx-transformer/src/main/python/airflow_dag_parser/models/__init__.py
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/models/dw_eums.py:
--------------------------------------------------------------------------------
1 | from enum import Enum
2 |
3 |
4 | class Architecture(str, Enum):
5 | TABLE = "Table"
6 | FILE = "File"
7 | NODE_OUTPUT = "NodeOutput"
8 | VARIABLE = "Variable"
9 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/models/dw_node.py:
--------------------------------------------------------------------------------
1 | from airflow_dag_parser.models.dw_base import DwBase, convert
2 |
3 |
4 | class DwNode(DwBase):
5 | def __init__(self):
6 | self.name = None
7 | self.type = None
8 | self.cronExpress = None
9 | self.owner = None
10 | self.startRightNow = False
11 | self.rerunable = False
12 | self.pauseSchedule = False
13 | self.code = None
14 | self.parameter = None
15 | self.folder = None
16 | self.inputContexts = []
17 | self.outputContexts = []
18 | self.inputs = []
19 | self.outputs = []
20 | self.innerNodes = []
21 | self.ref = None
22 | self.airflowTask = {}
23 | self.exception = None
24 |
25 | @convert.register(DwNode)
26 | def _(o):
27 | return o.__dict__
28 |
29 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/models/dw_node_io.py:
--------------------------------------------------------------------------------
1 | from airflow_dag_parser.models.dw_base import DwBase, convert
2 |
3 | class DwNodeIo(DwBase):
4 | def __init__(self):
5 | self.data = None
6 | self.refTableName = None
7 |
8 | @convert.register(DwNodeIo)
9 | def _(o):
10 | return o.__dict__
11 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/models/dw_workflow.py:
--------------------------------------------------------------------------------
1 | from airflow_dag_parser.models.dw_base import DwBase, convert
2 |
3 | class DwWorkflow(DwBase):
4 | def __init__(self):
5 | self.name = None
6 | self.scheduled = False
7 | self.parameters = []
8 | self.nodes = []
9 | self.resources = []
10 | self.functions = []
11 | self.tables = []
12 | self.ref = None
13 |
14 | @convert.register(DwWorkflow)
15 | def _(o):
16 | return o.__dict__
17 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/models/products.py:
--------------------------------------------------------------------------------
1 | from enum import Enum
2 |
3 |
4 | class ProductType(str, Enum):
5 | DATA_STUDIO = "DataStudio"
6 | DATA_QUALITY = "DataQuality"
7 | DATA_SERVICE = "DataService"
8 | DATA_CATALOG = "DataCatalog"
9 | DATA_SOURCE = "DataSource"
10 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/patch/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx-transformer/src/main/python/airflow_dag_parser/patch/__init__.py
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/patch/base_hook_patch.py:
--------------------------------------------------------------------------------
1 | import os
2 | from typing import Iterable
3 |
4 | from airflow.models import Connection
5 |
6 | from airflow_dag_parser.connections import CsvConnections
7 |
8 |
9 | @classmethod
10 | def get_connections(cls, conn_id): # type: (str) -> Iterable[Connection]
11 | csv = os.environ.get("connections_csv")
12 |
13 | if not csv and not cls.connections:
14 | return None
15 |
16 | if not cls.connections:
17 | cls.connections = CsvConnections(csv)
18 | cls.connections.load()
19 |
20 | return cls.connections.get_connection(conn_id)
21 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/patch/presto_hook_patch.py:
--------------------------------------------------------------------------------
1 | from requests.auth import HTTPBasicAuth
2 |
3 |
4 | def get_conn(self):
5 | """Returns a connection object"""
6 | db = self.get_connection(self.presto_conn_id)
7 | reqkwargs = None
8 | if db.password is not None:
9 | reqkwargs = {'auth': HTTPBasicAuth(db.login, db.password)}
10 | conn = {
11 | "host": db.host,
12 | "port": db.port,
13 | "username": db.login,
14 | "source": db.extra_dejson.get('source', 'airflow'),
15 | "protocol": db.extra_dejson.get('protocol', 'http'),
16 | "catalog": db.extra_dejson.get('catalog', 'hive'),
17 | "schema": db.schema
18 | }
19 | return conn
20 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/patch/presto_to_mysql_operator_patch.py:
--------------------------------------------------------------------------------
1 | from airflow.providers.mysql.hooks.mysql.MySqlHook import MySqlHook
2 | from airflow.providers.mysql.hooks.mysql.MySqlHook import PrestoHook
3 |
4 |
5 | def execute(self, context):
6 | self.presto = PrestoHook(presto_conn_id=self.presto_conn_id)
7 | self.log.info("Extracting data from Presto: %s", self.sql)
8 | # results = presto.get_records(self.sql)
9 |
10 | self.mysql = MySqlHook(mysql_conn_id=self.mysql_conn_id)
11 |
12 | # self.log.info("Inserting rows into MySQL")
13 | # mysql.insert_rows(table=self.mysql_table, rows=results)
14 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/patch/spark_submit_hook_patch.py:
--------------------------------------------------------------------------------
1 | def submit(self, application="", **kwargs):
2 | """
3 | Remote Popen to execute the spark-submit job
4 |
5 | :param application: Submitted application, jar or py file
6 | :type application: str
7 | :param kwargs: extra arguments to Popen (see subprocess.Popen)
8 | """
9 | self.spark_submit_cmd = self._build_spark_submit_command(application)
10 | pass
11 |
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/test/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx-transformer/src/main/python/airflow_dag_parser/test/__init__.py
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/airflow_dag_parser/test/code/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx-transformer/src/main/python/airflow_dag_parser/test/code/__init__.py
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/python/common.sh:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright (c) 2024, Alibaba Cloud;
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 |
16 | INFO="INFO"
17 | WARN="WARN"
18 | ERROR="ERROR"
19 |
20 | function log_info() {
21 | log $INFO $@
22 | }
23 |
24 | function log_warn() {
25 | log $WARN $@
26 | }
27 |
28 | function log_error() {
29 | log $ERROR $@
30 | }
31 |
32 | function log() {
33 | message=$@
34 | echo "`date` $message"
35 | }
--------------------------------------------------------------------------------
/client/migrationx-transformer/src/main/scripts/drop_table.sql:
--------------------------------------------------------------------------------
1 | drop table if exists a1;
2 | drop table if exists a2;
3 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/main/java/com/aliyun/migrationx/common/exception/UnSupportedTypeException.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.migrationx.common.exception;
2 |
3 | public class UnSupportedTypeException extends RuntimeException {
4 | private String type;
5 |
6 | public UnSupportedTypeException(String type) {
7 | super("unsupported converter task type: " + type);
8 | this.type = type;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/main/java/com/aliyun/migrationx/common/metrics/MetricsSummary.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.migrationx.common.metrics;
17 |
18 | import lombok.Data;
19 |
20 | @Data
21 | public class MetricsSummary {
22 | protected long startTime;
23 | protected long endTime;
24 | protected long totalTasks;
25 | }
26 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/main/java/com/aliyun/migrationx/common/metrics/Progress.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.migrationx.common.metrics;
2 |
3 | import lombok.Data;
4 |
5 | @Data
6 | public class Progress {
7 | private int total;
8 | private int middleSuccess;
9 | private int success;
10 | private int failed;
11 | private int skipped;
12 | }
13 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/main/java/com/aliyun/migrationx/common/metrics/enums/CollectorType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.migrationx.common.metrics.enums;
17 |
18 | public enum CollectorType {
19 | DolphinScheduler,
20 | AzureDataFactory
21 | }
22 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/main/java/com/aliyun/migrationx/common/utils/UuidGenerators.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.migrationx.common.utils;
2 |
3 | import java.util.Objects;
4 | import java.util.function.Function;
5 |
6 | import static com.aliyun.migrationx.common.utils.UuidUtils.genUuidWithoutHorizontalLine;
7 |
8 | public class UuidGenerators {
9 |
10 | private static final Function generateUuidFunc = code -> genUuidWithoutHorizontalLine();
11 |
12 | public static String generateUuid(Long code) {
13 | if (Objects.isNull(code)) {
14 | return generateUuid();
15 | }
16 | return generateUuidFunc.apply(code);
17 | }
18 |
19 | public static String generateUuid() {
20 | String uuid = genUuidWithoutHorizontalLine();
21 | return uuid;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/main/java/com/aliyun/migrationx/common/utils/UuidUtils.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024. Aliyun.com All right reserved. This software is the
3 | * confidential and proprietary information of Aliyun.com ("Confidential
4 | * Information"). You shall not disclose such Confidential Information and shall
5 | * use it only in accordance with the terms of the license agreement you entered
6 | * into with Aliyun.com.
7 | */
8 |
9 | package com.aliyun.migrationx.common.utils;
10 |
11 | import java.util.UUID;
12 |
13 | /**
14 | * Desc:
15 | *
16 | * @author 莫泣
17 | * @date 2024-07-23
18 | */
19 | public class UuidUtils {
20 |
21 | public static String genUuidWithoutHorizontalLine() {
22 | // 采用UUID低64位作为生成逻辑,冲突概率增加一倍
23 | long least = UUID.randomUUID().getLeastSignificantBits();
24 | // 最小值
25 | if (least == Long.MIN_VALUE) {
26 | least = Long.MAX_VALUE;
27 | } else {
28 | least = Math.abs(least);
29 | }
30 | return String.valueOf(least);
31 | }
32 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/main/resources/i18n/en_US.json:
--------------------------------------------------------------------------------
1 | {
2 | "ErrorCode.UnknownEnumType": "unknown enumeration type: {0}, value: {1}",
3 | "ErrorCode.ParameterNotSet": "parameter not set: {0}",
4 | "ErrorCode.ParameterInvalid": "parameter invalid: {0}",
5 | "ErrorCode.ProjectNotFound": "project not found: {0}",
6 | "ErrorCode.ProcedureCanceled": "process procedure canceled",
7 | "ErrorCode.NoPermission": "no permission: {0}",
8 | "ErrorCode.NoPermissionProjectAdmin": "user {0} has no admin permission of project: {1}",
9 | "ErrorCode.NoPermissionProjectMember": "user {0} is not member of project: {1}",
10 | "ErrorCode.TranslateNodeError": "translate node error: {0}",
11 | "ErrorCode.PackageAnalyzeError": "analyze package error: {0}",
12 | "ErrorCode.PackageConvertError": "convert package error: {0}",
13 | "ErrorCode.PackageNotLoaded": "package file not loaded",
14 | "ErrorCode.UnsupportedPackage": "unsupported package: {0}",
15 | "ErrorCode.UnknownCommandApp": "unknown command app: {0}"
16 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/main/resources/i18n/zh_CN.json:
--------------------------------------------------------------------------------
1 | {
2 | "ErrorCode.UnknownEnumType": "未知的枚举类型: {0}, 取值为: {1}",
3 | "ErrorCode.ParameterNotSet": "参数未设置: {0}",
4 | "ErrorCode.ParameterInvalid": "参数非法: {0}",
5 | "ErrorCode.ProjectNotFound": "项目不存在: {0}",
6 | "ErrorCode.ProcedureCanceled": "处理流程取消",
7 | "ErrorCode.NoPermission": "没有权限: {0}",
8 | "ErrorCode.NoPermissionProjectAdmin": "用户 {0} 没有项目 {1} 的管理员权限",
9 | "ErrorCode.NoPermissionProjectMember": "用户 {0} 不是项目 {1} 的成员",
10 | "ErrorCode.TranslateNodeError": "转换出错: {0}",
11 | "ErrorCode.PackageAnalyzeError": "分析包出错: {0}",
12 | "ErrorCode.PackageConvertError": "转换包出错: {0}",
13 | "ErrorCode.PackageNotLoaded": "包文件未加载",
14 | "ErrorCode.UnsupportedPackage": "不支持的包类型: {0}",
15 | "ErrorCode.UnknownCommandApp": "未知的命令行App: {0}"
16 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/test/java/com/aliyun/migrationx/common/context/TransformerContextTest.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.migrationx.common.context;
2 |
3 | import com.aliyun.migrationx.common.metrics.enums.CollectorType;
4 |
5 | import org.junit.Assert;
6 | import org.junit.Test;
7 |
8 | public class TransformerContextTest {
9 |
10 | @Test
11 | public void testTransformerContextCustomResourceDir() {
12 | TransformerContext.init(CollectorType.DolphinScheduler);
13 | TransformerContext.getContext().setCustomResourceDir(".");
14 | Assert.assertEquals(".", TransformerContext.getContext().getCustomResourceDir().getName());
15 | }
16 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/test/resources/i18n/en_US.json:
--------------------------------------------------------------------------------
1 | {
2 | "ErrorCode.UNKNOWN_ENUM_TYPE": "Unknown enum type {0}, value: {1}"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-common/src/test/resources/i18n/zh_CN.json:
--------------------------------------------------------------------------------
1 | {
2 | "ErrorCode.UNKNOWN_ENUM_TYPE": "未知的枚举类型: {0}, 取值: {1}"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-adf/src/main/java/com/aliyun/dataworks/migrationx/domain/adf/AdfConf.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.adf;
2 |
3 | import lombok.Data;
4 |
5 | import java.util.Map;
6 |
7 | @Data
8 | public class AdfConf {
9 | private String locale = "zh_CN";
10 | private AdfSetting settings;
11 | public static final AdfConf DEFAULT = new AdfConf();
12 | @Data
13 | public static class AdfSetting {
14 | /**
15 | * adf does not use cron expression, currently users need to manually set cron expression in config file
16 | */
17 | Map triggers;
18 | Map nodeTypeMappings;
19 | String unknownNodeType;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-adf/src/main/java/com/aliyun/dataworks/migrationx/domain/adf/AdfPackage.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.adf;
2 |
3 | import lombok.Data;
4 | import lombok.EqualsAndHashCode;
5 |
6 | import java.util.List;
7 | import java.util.Map;
8 |
9 | @EqualsAndHashCode(callSuper = true)
10 | @Data
11 | public class AdfPackage extends com.aliyun.dataworks.migrationx.domain.dataworks.standard.objects.Package {
12 | private String factory;
13 |
14 | /**
15 | * mapping from pipeline name to its trigger
16 | */
17 | private Map triggers;
18 |
19 | private List pipelines;
20 |
21 | private List linkedServices;
22 | }
23 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-adf/src/main/java/com/aliyun/dataworks/migrationx/domain/adf/Factory.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.adf;
2 |
3 | import lombok.Data;
4 |
5 | @Data
6 | public class Factory {
7 | private String name;
8 | private Identity identity;
9 | private String id;
10 | private String type;
11 | private FactoryProperty properties;
12 | private String eTag;
13 | private String location;
14 | private Tags tags;
15 |
16 | @Data
17 | public static class FactoryProperty {
18 | private String provisioningState;
19 | private String createTime;
20 | private String version;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-adf/src/main/java/com/aliyun/dataworks/migrationx/domain/adf/Identity.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.adf;
2 |
3 | import lombok.Data;
4 |
5 | @Data
6 | public class Identity {
7 | private String type;
8 | private String principalId;
9 | private String tenantId;
10 | }
11 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-adf/src/main/java/com/aliyun/dataworks/migrationx/domain/adf/LinkedService.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.adf;
2 |
3 | import lombok.Data;
4 | @Data
5 | public class LinkedService {
6 | private String id;
7 | private String name;
8 | private String type;
9 | private LinkedServiceProperty properties;
10 | private String etag;
11 |
12 | @Data
13 | public static class LinkedServiceProperty {
14 | private String type;
15 | private TypeProperty typeProperties;
16 | private String description;
17 |
18 | @Data
19 | public static class TypeProperty {
20 | private String connectionString;
21 | private String encryptedCredential;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-adf/src/main/java/com/aliyun/dataworks/migrationx/domain/adf/RequestPayload.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.adf;
2 |
3 | public class RequestPayload {
4 | public String resourceGroupName;
5 | public String subscriptionId;
6 | public String factoryName;
7 |
8 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-adf/src/main/java/com/aliyun/dataworks/migrationx/domain/adf/Tags.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.adf;
2 |
3 | public class Tags {
4 | }
5 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-airflow/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-aliyunemr/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-azkaban/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-caiyunjian/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-core/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/standard/service/PackageService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.domain.dataworks.standard.service;
17 |
18 | /**
19 | * @author 聿剑
20 | * @date 2023/01/12
21 | */
22 | public interface PackageService {
23 | }
24 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-datago/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/.tmp/test/DataStudio/业务流程/test_flow1/MaxCompute/数据开发/test1/test1.schedule.json:
--------------------------------------------------------------------------------
1 | {
2 | "version":"1.1.0",
3 | "kind":"CycleWorkflow",
4 | "spec":{
5 | "nodes":[
6 | {
7 | "recurrence":"Normal",
8 | "id":"e2f7ce7c-e5ee-49aa-a13f-2958006e257e",
9 | "instanceMode":"T+1",
10 | "rerunMode":"Allowed",
11 | "script":{
12 | "path":"业务流程/test_flow1/MaxCompute/数据开发",
13 | "runtime":{
14 | "engine":"MaxCompute",
15 | "command":"ODPS_SQL"
16 | },
17 | "id":"e2f7ce7c-e5ee-49aa-a13f-2958006e257e"
18 | },
19 | "name":"test1",
20 | "inputs":{
21 |
22 | },
23 | "outputs":{
24 |
25 | }
26 | }
27 | ]
28 | }
29 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/.tmp/test/DataStudio/业务流程/test_flow1/MaxCompute/数据开发/test1/test1.sql:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-domain/migrationx-domain-dataworks/.tmp/test/DataStudio/业务流程/test_flow1/MaxCompute/数据开发/test1/test1.sql
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/.tmp/test/SPEC.FORMAT:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-domain/migrationx-domain-dataworks/.tmp/test/SPEC.FORMAT
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/objects/entity/client/FileVersion.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.dataworks.objects.entity.client;
2 |
3 | import lombok.Data;
4 | import lombok.ToString;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @author 戒迷
9 | * @date 2024/4/16
10 | */
11 | @Data
12 | @Accessors(chain = true)
13 | @ToString(exclude = {"fileContent"})
14 | public class FileVersion {
15 | private Long fileId;
16 | private String fileContent;
17 | private String commitUser;
18 | private Integer fileType;
19 | private String changeType;
20 | private String fileName;
21 | private Long cloudUuid;
22 | private String comment;
23 | private String useType;
24 | }
25 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/objects/entity/client/IdeOssNetworkType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.domain.dataworks.objects.entity.client;
17 |
18 | /**
19 | * @author sam.liux
20 | * @date 2020/06/02
21 | */
22 | public enum IdeOssNetworkType {
23 | INNER,
24 | PUBLIC,
25 | VPC
26 | }
27 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/objects/entity/client/PackageItemStatus.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.dataworks.objects.entity.client;
2 |
3 | /**
4 | * Desc:
5 | *
6 | * @author 莫泣
7 | * @date 2024-11-29
8 | */
9 | public enum PackageItemStatus {
10 |
11 | TERMINATION(-1),
12 |
13 | INIT(0),
14 |
15 | RUNNING(1),
16 |
17 | SUCCESS(2),
18 |
19 | FAIL(3),
20 | CANCEL(5);
21 |
22 | private final Integer code;
23 |
24 | PackageItemStatus(Integer code) {
25 | this.code = code;
26 | }
27 |
28 | public Integer getCode() {
29 | return this.code;
30 | }
31 |
32 | public static PackageItemStatus getByCode(Integer code) {
33 | for (PackageItemStatus status : PackageItemStatus.values()) {
34 | if (code.equals(status.getCode())) {
35 | return status;
36 | }
37 | }
38 | return null;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/objects/entity/client/PackageStatus.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.dataworks.objects.entity.client;
2 |
3 | /**
4 | * Desc:
5 | *
6 | * @author 莫泣
7 | * @date 2024-11-29
8 | */
9 | public enum PackageStatus {
10 |
11 | TERMINATION(-1),
12 |
13 | INIT(0),
14 |
15 | RUNNING(1),
16 |
17 | SUCCESS(2),
18 |
19 | FAIL(3),
20 | CANCEL(4);
21 | private final Integer code;
22 |
23 | PackageStatus(Integer code) {
24 | this.code = code;
25 | }
26 |
27 | public Integer getCode() {
28 | return this.code;
29 | }
30 |
31 | public static PackageStatus getByCode(Integer code) {
32 | for (PackageStatus status : PackageStatus.values()) {
33 | if (code.equals(status.getCode())) {
34 | return status;
35 | }
36 | }
37 | return null;
38 | }
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/objects/entity/nodemarket/BusinessFolder.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.dataworks.objects.entity.nodemarket;
2 |
3 | import java.util.List;
4 | import java.util.Map;
5 |
6 | import lombok.Data;
7 | import lombok.ToString;
8 | import lombok.experimental.Accessors;
9 |
10 | /**
11 | * @author sam.liux
12 | * @date 2020/02/26
13 | */
14 | @Data
15 | @ToString
16 | @Accessors
17 | public class BusinessFolder {
18 | private String name;
19 | private Integer type;
20 | private Integer folderType;
21 | private Map displayName;
22 | private List nodes;
23 | private List childrens;
24 | }
25 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/objects/entity/nodemarket/BusinessFolderConfig.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.dataworks.objects.entity.nodemarket;
2 |
3 | import java.util.List;
4 | import java.util.Map;
5 |
6 | import lombok.Data;
7 | import lombok.ToString;
8 | import lombok.experimental.Accessors;
9 |
10 | /**
11 | * @author sam.liux
12 | * @date 2020/02/26
13 | */
14 | @Data
15 | @ToString
16 | @Accessors
17 | public class BusinessFolderConfig {
18 | private String type;
19 | private String appName;
20 | private String engine;
21 | private Map displayName;
22 | private BusinessFolder folders;
23 | private List nodes;
24 | }
25 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/objects/entity/nodemarket/BusinessFolderModel.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.dataworks.objects.entity.nodemarket;
2 |
3 | import lombok.Data;
4 | import lombok.ToString;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @author sam.liux
9 | * @date 2020/02/26
10 | */
11 | @Data
12 | @ToString
13 | @Accessors
14 | public class BusinessFolderModel {
15 | private String appName;
16 | private String engineName;
17 | private Integer version;
18 | private BusinessFolderConfig configValue;
19 | }
20 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/objects/entity/nodemarket/BusinessFolderNode.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.dataworks.objects.entity.nodemarket;
2 |
3 | import lombok.Data;
4 | import lombok.ToString;
5 | import lombok.experimental.Accessors;
6 |
7 | /**
8 | * @author sam.liux
9 | * @date 2020/02/26
10 | */
11 | @Data
12 | @ToString
13 | @Accessors
14 | public class BusinessFolderNode {
15 | private Integer id;
16 | private Integer index;
17 | }
18 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dataworks/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/service/PackageService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.domain.dataworks.service;
17 |
18 | /**
19 | * @author 聿剑
20 | * @date 2022/12/28
21 | */
22 | public interface PackageService {
23 | }
24 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/Constants.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024. Aliyun.com All right reserved. This software is the
3 | * confidential and proprietary information of Aliyun.com ("Confidential
4 | * Information"). You shall not disclose such Confidential Information and shall
5 | * use it only in accordance with the terms of the license agreement you entered
6 | * into with Aliyun.com.
7 | */
8 |
9 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler;
10 |
11 | /**
12 | * Desc:
13 | *
14 | * @author 莫泣
15 | * @date 2024-07-05
16 | */
17 | public final class Constants {
18 |
19 | private Constants() {
20 |
21 | }
22 |
23 | /**
24 | * process or task definition first version
25 | */
26 | public static final int VERSION_FIRST = 1;
27 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v1/v139/enums/DependentRelation.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v1.v139.enums;
16 |
17 | /**
18 | * dependent relation: and or
19 | */
20 | public enum DependentRelation {
21 |
22 | AND,
23 | OR;
24 | }
25 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v1/v139/task/Direct.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v1/v139/task/Direct.java
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v1/v139/task/sql/SqlType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v1.v139.task.sql;
16 |
17 | public enum SqlType {
18 | /**
19 | * sql type 0 query 1 NON_QUERY
20 | */
21 | QUERY,
22 | NON_QUERY
23 | }
24 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v2/enums/DependentRelation.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v2.enums;
17 |
18 | /**
19 | * dependent relation: and or
20 | */
21 | public enum DependentRelation {
22 |
23 | AND,
24 | OR;
25 | }
26 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v2/enums/Direct.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v2.enums;
17 |
18 | /**
19 | * parameter of stored procedure
20 | */
21 | public enum Direct {
22 | /**
23 | * 0 in; 1 out;
24 | */
25 | IN,
26 | OUT
27 | }
28 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v3/enums/DependentRelation.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v3.enums;
17 |
18 | /**
19 | * dependent relation: and or
20 | */
21 | public enum DependentRelation {
22 |
23 | AND,
24 | OR;
25 | }
26 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v3/enums/ResourceType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v3.enums;
17 |
18 | public enum ResourceType {
19 |
20 | DATASOURCE,
21 | UDF;
22 | }
23 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v3/enums/SqlType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v3.enums;
17 |
18 | public enum SqlType {
19 | /**
20 | * sql type
21 | * 0 query
22 | * 1 NON_QUERY
23 | */
24 | QUERY,
25 | NON_QUERY
26 | }
27 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v3/enums/TaskRunStatus.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v3.enums;
17 |
18 | public enum TaskRunStatus {
19 |
20 | SUCCESS,
21 | FAIL_AND_NEED_KILL,
22 | FAIL;
23 | }
24 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v3/v320/Location.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024. Aliyun.com All right reserved. This software is the
3 | * confidential and proprietary information of Aliyun.com ("Confidential
4 | * Information"). You shall not disclose such Confidential Information and shall
5 | * use it only in accordance with the terms of the license agreement you entered
6 | * into with Aliyun.com.
7 | */
8 |
9 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v3.v320;
10 |
11 | import lombok.AllArgsConstructor;
12 | import lombok.Data;
13 | import lombok.NoArgsConstructor;
14 |
15 | /**
16 | * Desc:
17 | *
18 | * @author 莫泣
19 | * @date 2024-07-12
20 | */
21 | @Data
22 | @NoArgsConstructor
23 | @AllArgsConstructor
24 | public class Location {
25 |
26 | private Long taskCode;
27 |
28 | private Integer x;
29 |
30 | private Integer y;
31 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v3/v320/task/condition/ConditionResult.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v3.v320.task.condition;
2 |
3 | import java.util.List;
4 |
5 | import lombok.Data;
6 |
7 | /**
8 | * Desc:
9 | *
10 | * @author 莫泣
11 | * @date 2024-10-23
12 | */
13 | @Data
14 | public class ConditionResult {
15 | // node list to run when success
16 | private List successNode;
17 |
18 | // node list to run when failed
19 | private List failedNode;
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-dolphinscheduler/src/main/java/com/aliyun/dataworks/migrationx/domain/dataworks/dolphinscheduler/v3/v320/task/condition/ConditionsParameters.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v3.v320.task.condition;
2 |
3 | import com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v3.task.parameters.AbstractParameters;
4 | import com.aliyun.dataworks.migrationx.domain.dataworks.dolphinscheduler.v3.v320.task.Dependence;
5 | import lombok.Data;
6 |
7 | /**
8 | * Desc:
9 | *
10 | * @author 莫泣
11 | * @date 2024-10-23
12 | */
13 | @Data
14 | public class ConditionsParameters extends AbstractParameters {
15 |
16 | private Dependence dependence;
17 |
18 | private ConditionResult conditionResult;
19 |
20 | @Override
21 | public boolean checkParameters() {
22 | return true;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-domain/migrationx-domain-oozie/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/.gitignore:
--------------------------------------------------------------------------------
1 | target/
2 | !.mvn/wrapper/maven-wrapper.jar
3 | !**/src/main/**/target/
4 | !**/src/test/**/target/
5 |
6 | ### IntelliJ IDEA ###
7 | .idea/modules.xml
8 | .idea/jarRepositories.xml
9 | .idea/compiler.xml
10 | .idea/libraries/
11 | *.iws
12 | *.iml
13 | *.ipr
14 |
15 | ### Eclipse ###
16 | .apt_generated
17 | .classpath
18 | .factorypath
19 | .project
20 | .settings
21 | .springBeans
22 | .sts4-cache
23 |
24 | ### NetBeans ###
25 | /nbproject/private/
26 | /nbbuild/
27 | /dist/
28 | /nbdist/
29 | /.nb-gradle/
30 | build/
31 | !**/src/main/**/build/
32 | !**/src/test/**/build/
33 |
34 | ### VS Code ###
35 | .vscode/
36 |
37 | ### Mac OS ###
38 | .DS_Store
39 |
40 | client/migrationx-reader/src/test/java/com/aliyun/dataworks/migrationx/reader/dolphinscheduler/DolphinSchedulerCommandAppTest.java
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/.gitignore:
--------------------------------------------------------------------------------
1 | *.pyc
2 | *~
3 | src/*.pyc
4 | test_dag_folder/*.pyc
5 | deploy
6 | .env/*
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2023. All right reserved. This software is the confidential and proprietary information of
2 | # Aliyun.com ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only
3 | # in accordance with the terms of the license agreement you entered into with Aliyun.com.
4 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/common.sh:
--------------------------------------------------------------------------------
1 | #
2 | # Copyright (c) 2024, Alibaba Cloud;
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 | #
15 |
16 | INFO="INFO"
17 | WARN="WARN"
18 | ERROR="ERROR"
19 |
20 | function log_info() {
21 | log $INFO $@
22 | }
23 |
24 | function log_warn() {
25 | log $WARN $@
26 | }
27 |
28 | function log_error() {
29 | log $ERROR $@
30 | }
31 |
32 | function log() {
33 | message=$@
34 | echo "`date` $message"
35 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/README.md:
--------------------------------------------------------------------------------
1 | # 使用方法
2 |
3 | 1 解压airflow-exporter.tgz
4 |
5 | ```shell
6 | tar zxvf airflow-exporter.tgz
7 | ```
8 |
9 | 2 设置PTYHONPATH
10 | 指定PYTHONPATH到airflow的python lib目录,例如
11 |
12 | ```shell
13 | export PYTHONPATH=/usr/local/lib/python3.6/site-packages
14 | # 路径只是举例子,实际export以现场环境为准
15 | export AIRFLOW_HOME=/var/lib/airflow
16 | export AIRFLOW_CONFIG=/var/run/cloudera-scm-agent/process/2531-airflow-AIRFLOW_SCHEDULER/airflow.cfg
17 | ```
18 |
19 | 3 执行airflow任务导出
20 |
21 | ```shell
22 | cd airflow-exporter
23 | python3.6 ./parser -d /path/to/airflow/dag/floder/ -o output.json
24 | ```
25 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-reader/src/main/python/src/__init__.py
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/__init__.py
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/common/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/common/__init__.py
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/converter/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/converter/__init__.py
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/dag_parser.py:
--------------------------------------------------------------------------------
1 | import airflow
2 | import traceback
3 | from datetime import datetime
4 | from airflow.models import DAG, DagBag, TaskInstance
5 | from airflow.utils.log.logging_mixin import LoggingMixin
6 |
7 |
8 | class DagParser(LoggingMixin):
9 | def __init__(self, dag_folder):
10 | self.dag_folder = dag_folder
11 | self.dag_bag = None
12 | pass
13 |
14 | def parse(self):
15 | try:
16 | self.dag_bag = DagBag(self.dag_folder,
17 | include_examples=False)
18 | self.log.info("Init DagBag success")
19 | except Exception as e:
20 | self.log.error(e)
21 |
22 | def get_dags(self):
23 | if self.dag_bag:
24 | return self.dag_bag.dags
25 | return None
26 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/models/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/models/__init__.py
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/models/dw_node.py:
--------------------------------------------------------------------------------
1 | from airflow_dag_parser.models.dw_base import DwBase, convert
2 |
3 |
4 | class DwNode(DwBase):
5 | def __init__(self):
6 | self.name = None
7 | self.type = None
8 | self.cronExpress = None
9 | self.owner = None
10 | self.startRightNow = False
11 | self.rerunable = False
12 | self.pauseSchedule = False
13 | self.code = None
14 | self.parameter = None
15 | self.folder = None
16 | self.inputContexts = []
17 | self.outputContexts = []
18 | self.inputs = []
19 | self.outputs = []
20 | self.innerNodes = []
21 | self.ref = None
22 | self.airflowTask = {}
23 | self.exception = None
24 |
25 | @convert.register(DwNode)
26 | def _(o):
27 | return o.__dict__
28 |
29 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/models/dw_node_io.py:
--------------------------------------------------------------------------------
1 | from airflow_dag_parser.models.dw_base import DwBase, convert
2 |
3 | class DwNodeIo(DwBase):
4 | def __init__(self):
5 | self.data = None
6 | self.refTableName = None
7 |
8 | @convert.register(DwNodeIo)
9 | def _(o):
10 | return o.__dict__
11 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/models/dw_workflow.py:
--------------------------------------------------------------------------------
1 | from airflow_dag_parser.models.dw_base import DwBase, convert
2 |
3 | class DwWorkflow(DwBase):
4 | def __init__(self):
5 | self.name = None
6 | self.scheduled = False
7 | self.parameters = []
8 | self.nodes = []
9 | self.resources = []
10 | self.functions = []
11 | self.tables = []
12 | self.ref = None
13 |
14 | @convert.register(DwWorkflow)
15 | def _(o):
16 | return o.__dict__
17 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/patch/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/patch/__init__.py
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/patch/base_hook_patch.py:
--------------------------------------------------------------------------------
1 | import os
2 | import random
3 | from typing import Iterable
4 |
5 | from airflow.models import Connection
6 | from airflow.exceptions import AirflowException
7 | from airflow.utils.db import provide_session
8 | from airflow.utils.log.logging_mixin import LoggingMixin
9 | from airflow_dag_parser.connections import CsvConnections
10 |
11 | @classmethod
12 | def get_connections(cls, conn_id): # type: (str) -> Iterable[Connection]
13 | csv = os.environ.get("connections_csv")
14 |
15 | if not csv and not cls.connections:
16 | return None
17 |
18 | if not cls.connections:
19 | cls.connections = CsvConnections(csv)
20 | cls.connections.load()
21 |
22 | return cls.connections.get_connection(conn_id)
23 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/patch/presto_hook_patch.py:
--------------------------------------------------------------------------------
1 | from builtins import str
2 |
3 | from pyhive import presto
4 | from pyhive.exc import DatabaseError
5 | from requests.auth import HTTPBasicAuth
6 |
7 | from airflow.hooks.dbapi_hook import DbApiHook
8 |
9 | def get_conn(self):
10 | """Returns a connection object"""
11 | db = self.get_connection(self.presto_conn_id)
12 | reqkwargs = None
13 | if db.password is not None:
14 | reqkwargs = {'auth': HTTPBasicAuth(db.login, db.password)}
15 | conn = {
16 | "host": db.host,
17 | "port": db.port,
18 | "username": db.login,
19 | "source": db.extra_dejson.get('source', 'airflow'),
20 | "protocol": db.extra_dejson.get('protocol', 'http'),
21 | "catalog": db.extra_dejson.get('catalog', 'hive'),
22 | "schema": db.schema
23 | }
24 | return conn
25 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/patch/presto_to_mysql_operator_patch.py:
--------------------------------------------------------------------------------
1 | from airflow.hooks.mysql_hook import MySqlHook
2 | from airflow.hooks.presto_hook import PrestoHook
3 | from airflow.models import BaseOperator
4 | from airflow.utils.decorators import apply_defaults
5 |
6 | def execute(self, context):
7 | self.presto = PrestoHook(presto_conn_id=self.presto_conn_id)
8 | self.log.info("Extracting data from Presto: %s", self.sql)
9 | # results = presto.get_records(self.sql)
10 |
11 | self.mysql = MySqlHook(mysql_conn_id=self.mysql_conn_id)
12 |
13 | # self.log.info("Inserting rows into MySQL")
14 | # mysql.insert_rows(table=self.mysql_table, rows=results)
15 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/airflow_dag_parser/patch/spark_submit_hook_patch.py:
--------------------------------------------------------------------------------
1 | import os
2 | import subprocess
3 | import re
4 | import time
5 |
6 | from airflow.hooks.base_hook import BaseHook
7 | from airflow.exceptions import AirflowException
8 | from airflow.utils.log.logging_mixin import LoggingMixin
9 |
10 | def submit(self, application="", **kwargs):
11 | """
12 | Remote Popen to execute the spark-submit job
13 |
14 | :param application: Submitted application, jar or py file
15 | :type application: str
16 | :param kwargs: extra arguments to Popen (see subprocess.Popen)
17 | """
18 | self.spark_submit_cmd = self._build_spark_submit_command(application)
19 | pass
20 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/test/__init__.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2023. All right reserved. This software is the confidential and proprietary information of
2 | # Aliyun.com ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only
3 | # in accordance with the terms of the license agreement you entered into with Aliyun.com.
4 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/test/test_dag_folder/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-reader/src/main/python/src/test/test_dag_folder/__init__.py
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/test/test_dag_folder/configs/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-reader/src/main/python/src/test/test_dag_folder/configs/__init__.py
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/test/test_dag_folder/configs/config.py:
--------------------------------------------------------------------------------
1 | config={}
2 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/test/test_dag_folder/module/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-reader/src/main/python/src/test/test_dag_folder/module/__init__.py
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/test/test_dag_folder/module/db_mysql_manager.py:
--------------------------------------------------------------------------------
1 | import airflow
2 |
3 | default_args_util = {
4 | 'default_args3': {
5 | 'start_date': airflow.utils.dates.days_ago(2),
6 | }
7 | }
8 |
9 | db_mysql_manager = {
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-reader/src/main/python/src/test/test_dag_folder/module/default_args_util.py:
--------------------------------------------------------------------------------
1 | import airflow
2 |
3 | default_args3 = {
4 | 'start_date': airflow.utils.dates.days_ago(2)
5 | }
6 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/conf/adf-mc-transformer-config.json:
--------------------------------------------------------------------------------
1 | {
2 | "locale": "zh_CN",
3 | "settings": {
4 | "triggers": {
5 | "trigger1": "15 30 12 * * ?",
6 | "trigger2": "0 0 0 * * 5L"
7 | },
8 | "nodeTypeMappings": {
9 | "DatabricksNotebook": "ODPS_SQL"
10 | },
11 | "unknownNodeType": "DIDE_SHELL"
12 | }
13 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/conf/dataworks-transformer-config-hologres-sample.json:
--------------------------------------------------------------------------------
1 | {
2 | "format": "SPEC",
3 | "locale": "zh_CN",
4 | "settings": {
5 | "workflow.converter.shellNodeType": "DIDE_SHELL",
6 | "workflow.converter.commandSqlAs": "DIDE_SHELL",
7 | "workflow.converter.sparkSubmitAs": "ODPS_SPARK",
8 | "workflow.converter.target.unknownNodeTypeAs": "DIDE_SHELL",
9 | "workflow.converter.mrNodeType": "ODPS_MR",
10 | "workflow.converter.target.engine.type": "Hologres",
11 | "workflow.converter.dolphinscheduler.sqlNodeTypeMapping": {
12 | "POSTGRESQL": "HOLOGRES_SQL",
13 | "MYSQL": "HOLOGRES_SQL",
14 | "HIVE": "HOLOGRES_SQL"
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/conf/dataworks-transformer-config-maxcompute-sample.json:
--------------------------------------------------------------------------------
1 | {
2 | "format": "SPEC",
3 | "locale": "zh_CN",
4 | "skipUnSupportType": true,
5 | "transformContinueWithError": true,
6 | "specContinueWithError": true,
7 | "filterTasks": [
8 | ],
9 | "settings": {
10 | "workflow.converter.shellNodeType": "DIDE_SHELL",
11 | "workflow.converter.commandSqlAs": "DIDE_SHELL",
12 | "workflow.converter.sparkSubmitAs": "ODPS_SPARK",
13 | "workflow.converter.target.unknownNodeTypeAs": "DIDE_SHELL",
14 | "workflow.converter.mrNodeType": "ODPS_MR",
15 | "workflow.converter.target.engine.type": "MaxCompute",
16 | "workflow.converter.dolphinscheduler.sqlNodeTypeMapping": {
17 | "POSTGRESQL": "ODPS_SQL",
18 | "MYSQL": "ODPS_SQL",
19 | "HIVE": "ODPS_SQL"
20 | }
21 | }
22 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/conf/dataworks-transformer-config.json:
--------------------------------------------------------------------------------
1 | {
2 | "format": "SPEC",
3 | "locale": "zh_CN",
4 | "skipUnSupportType": true,
5 | "transformContinueWithError": true,
6 | "specContinueWithError": true,
7 | "filterTasks": [
8 | ],
9 | "settings": {
10 | "workflow.converter.shellNodeType": "DIDE_SHELL",
11 | "workflow.converter.commandSqlAs": "EMR_HIVE",
12 | "workflow.converter.sparkSubmitAs": "EMR_SPARK",
13 | "workflow.converter.target.unknownNodeTypeAs": "DIDE_SHELL",
14 | "workflow.converter.mrNodeType": "EMR_MR",
15 | "workflow.converter.target.engine.type": "EMR",
16 | "workflow.converter.dolphinscheduler.sqlNodeTypeMapping": {
17 | "POSTGRESQL": "EMR_HIVE",
18 | "MYSQL": "EMR_HIVE",
19 | "HIVE": "EMR_HIVE",
20 | "CLICKHOUSE": "CLICK_SQL"
21 | }
22 | }
23 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/conf/dolphinschedulerV3-dataworks-transformer-config.json:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-transformer/src/main/conf/dolphinschedulerV3-dataworks-transformer-config.json
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/conf/flowspec-airflowV2-transformer-config.json:
--------------------------------------------------------------------------------
1 | {
2 | "workflowPathPrefix": "Airflow导入/",
3 | "typeMapping": {
4 | "EmptyOperator": "VIRTUAL",
5 | "DummyOperator": "VIRTUAL",
6 | "ExternalTaskSensor": "VIRTUAL",
7 | "BashOperator": "DIDE_SHELL",
8 | "HiveToMySqlTransfer": "DI",
9 | "PrestoToMySqlTransfer": "DI",
10 | "PythonOperator": "PYTHON",
11 | "HiveOperator": "EMR_HIVE",
12 | "SqoopOperator": "EMR_SQOOP",
13 | "SparkSqlOperator": "EMR_SPARK_SQL",
14 | "SparkSubmitOperator": "EMR_SPARK",
15 | "SQLExecuteQueryOperator": "MySQL",
16 | "PostgresOperator": "Postgresql",
17 | "MySqlOperator": "MySQL",
18 | "default": "PYTHON"
19 | },
20 | "settings": {
21 | "workflow.converter.target.schedule.resGroupIdentifier": ""
22 | }
23 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/conf/flowspec-dolphinschedulerV3-transformer-config.json:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-transformer/src/main/conf/flowspec-dolphinschedulerV3-transformer-config.json
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/java/com/aliyun/dataworks/migrationx/transformer/core/checkpoint/StoreWriter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.transformer.core.checkpoint;
17 |
18 | import java.io.IOException;
19 |
20 | public interface StoreWriter {
21 |
22 | void writeLine(String data, String processName, String taskName) throws IOException;
23 | }
24 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/java/com/aliyun/dataworks/migrationx/transformer/core/sqoop/InvalidOptionsException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.migrationx.transformer.core.sqoop;
17 |
18 | public class InvalidOptionsException extends RuntimeException {
19 |
20 | public InvalidOptionsException(String msg) {
21 | }
22 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/java/com/aliyun/dataworks/migrationx/transformer/flowspec/transformer/AbstractTransformer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024. Aliyun.com All right reserved. This software is the
3 | * confidential and proprietary information of Aliyun.com ("Confidential
4 | * Information"). You shall not disclose such Confidential Information and shall
5 | * use it only in accordance with the terms of the license agreement you entered
6 | * into with Aliyun.com.
7 | */
8 |
9 | package com.aliyun.dataworks.migrationx.transformer.flowspec.transformer;
10 |
11 | /**
12 | * Desc:
13 | *
14 | * @author 莫泣
15 | * @date 2024-06-27
16 | */
17 | public abstract class AbstractTransformer {
18 |
19 | protected String configPath;
20 |
21 | protected String sourcePath;
22 |
23 | protected String targetPath;
24 |
25 | /**
26 | * transform entry point
27 | *
28 | * @throws Exception exception
29 | */
30 | public abstract void transform() throws Exception;
31 | }
32 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/main/python/post_handler_example.py:
--------------------------------------------------------------------------------
1 | import sys
2 | import warnings
3 |
4 | import json
5 |
6 | warnings.filterwarnings('ignore')
7 |
8 | if __name__ == '__main__':
9 | """
10 | content = sys.argv[1]
11 | args = sys.argv[2]
12 | args:
13 | """
14 | content = sys.argv[1]
15 | params = sys.argv[2]
16 | content = content + "\n add something"
17 | # output to invoker
18 | # need a json with key _code_
19 | # a json with _params_ if add params
20 | updated_content = {'_code_': content}
21 | print(json.dumps(updated_content))
22 | updated_params = {'_params_': 'key1=value1,key2=value2'}
23 | print(json.dumps(updated_params))
24 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/java/com/aliyun/dataworks/migrationx/transformer/adf/AdfTransformerTest.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.transformer.adf;
2 |
3 | import com.aliyun.dataworks.migrationx.transformer.dataworks.apps.DataWorksAdfTransformerApp;
4 | import org.junit.Ignore;
5 | import org.junit.Test;
6 | @Ignore
7 | public class AdfTransformerTest {
8 |
9 | @Test
10 | public void test1() {
11 | DataWorksAdfTransformerApp transformerApp = new DataWorksAdfTransformerApp();
12 | String[] args = new String[]{
13 | "-c", "/Users/xichen/Documents/repos/alibabacloud-dataworks-tool-migration/client/migrationx/migrationx-transformer/src/main/conf/adf-mc-transformer-config.json",
14 | "-s", "/Users/xichen/Documents/repos/alibabacloud-dataworks-tool-migration/client/temp/adf/.tmp/chenxi-df/",
15 | "-t", "/Users/xichen/Documents/repos/alibabacloud-dataworks-tool-migration/client/temp/package/"
16 | };
17 | transformerApp.run(args);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/airflow2/config/mappings.json:
--------------------------------------------------------------------------------
1 | {
2 | "workflowPathPrefix": "AirWorksDemo/v2_2_4/20241120/",
3 | "typeMapping": {
4 | "EmptyOperator": "VIRTUAL",
5 | "DummyOperator": "VIRTUAL",
6 | "ExternalTaskSensor": "VIRTUAL",
7 | "BashOperator": "SSH",
8 | "HiveToMySqlTransfer": "DI",
9 | "PrestoToMySqlTransfer": "DI",
10 | "PythonOperator": "PYODPS3",
11 | "BranchPythonOperator": "CONTROLLER_BRANCH",
12 | "HiveOperator": "ODPS_SQL",
13 | "SqoopOperator": "EMR_SQOOP",
14 | "SparkSqlOperator": "EMR_SPARK_SQL",
15 | "SparkSubmitOperator": "EMR_SPARK",
16 | "SQLExecuteQueryOperator": "MySQL",
17 | "PostgresOperator": "Postgresql",
18 | "MySqlOperator": "MySQL",
19 | "default": "PYTHON"
20 | },
21 | "settings": {
22 | "workflow.converter.target.schedule.resGroupIdentifier": "Serverless_res_group_524257424564736_674524206094912",
23 | "bashoperator.content.adaptive.conversion": "true"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/conf/transformer.json:
--------------------------------------------------------------------------------
1 | {
2 | "format": "SPEC",
3 | "locale": "zh_CN",
4 | "skipUnSupportType": true,
5 | "specContinueWithError": true,
6 | "settings": {
7 | "workflow.converter.shellNodeType": "ODPS_SHELL",
8 | "workflow.converter.commandSqlAs": "ODPS_SQL",
9 | "workflow.converter.sparkSubmitAs": "ODPS_SPARK",
10 | "workflow.converter.target.unknownNodeTypeAs": "DIDE_SHELL",
11 | "workflow.converter.mrNodeType": "ODPS_MR",
12 | "workflow.converter.target.engine.type": "MaxCompute",
13 | "workflow.converter.dolphinscheduler.sqlNodeTypeMapping": {
14 | "POSTGRESQL": "POSTGRESQL",
15 | "MYSQL": "MYSQL"
16 | }
17 | }
18 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/conf/transformer-spec-odps.json:
--------------------------------------------------------------------------------
1 | {
2 | "format": "SPEC",
3 | "locale": "zh_CN",
4 | "skipUnSupportType": true,
5 | "transformContinueWithError": true,
6 | "specContinueWithError": true,
7 | "settings": {
8 | "workflow.converter.shellNodeType": "DIDE_SHELL",
9 | "workflow.converter.commandSqlAs": "ODPS_SQL",
10 | "workflow.converter.sparkSubmitAs": "ODPS_SPARK",
11 | "workflow.converter.target.unknownNodeTypeAs": "DIDE_SHELL",
12 | "workflow.converter.mrNodeType": "ODPS_MR",
13 | "workflow.converter.target.engine.type": "ODPS",
14 | "workflow.converter.dolphinscheduler.sqlNodeTypeMapping": {
15 | "POSTGRESQL": "POSTGRESQL",
16 | "MYSQL": "MYSQL"
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/conf/transformer-workflow-odps.json:
--------------------------------------------------------------------------------
1 | {
2 | "format": "WORKFLOW",
3 | "locale": "zh_CN",
4 | "skipUnSupportType": true,
5 | "transformContinueWithError": true,
6 | "specContinueWithError": true,
7 | "settings": {
8 | "workflow.converter.shellNodeType": "DIDE_SHELL",
9 | "workflow.converter.commandSqlAs": "ODPS_SQL",
10 | "workflow.converter.sparkSubmitAs": "ODPS_SPARK",
11 | "workflow.converter.target.unknownNodeTypeAs": "DIDE_SHELL",
12 | "workflow.converter.mrNodeType": "ODPS_MR",
13 | "workflow.converter.target.engine.type": "ODPS",
14 | "workflow.converter.dolphinscheduler.sqlNodeTypeMapping": {
15 | "POSTGRESQL": "POSTGRESQL",
16 | "MYSQL": "MYSQL"
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v1/all/datasource/datasource_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v1/all/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.0"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v1/all/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 2,
4 | "userId": 1,
5 | "name": "wl_test4",
6 | "description": "",
7 | "createTime": "2025-01-08T13:48:52.240+0800",
8 | "updateTime": "2025-01-08T13:48:52.240+0800",
9 | "perm": 0,
10 | "defCount": 0,
11 | "instRunningCount": 0
12 | }
13 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v1/all/resource/resources.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v1/all/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v2/all/datasource/datasource_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v2/all/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0.5"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v2/all/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 4,
4 | "userId": 1,
5 | "code": 16230615659328,
6 | "name": "wl_test3",
7 | "description": "",
8 | "createTime": "2025-01-07T14:41:24.838+0800",
9 | "updateTime": "2025-01-07T14:41:24.838+0800",
10 | "perm": 0,
11 | "defCount": 0,
12 | "instRunningCount": 0
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v2/all/resource/resources.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v2/all/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/dependent/datasource/datasource_page_1.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "userName": "admin",
6 | "name": "pg1",
7 | "note": "",
8 | "type": "POSTGRESQL",
9 | "connectionParams": "{\"user\":\"feilun\",\"password\":\"******\",\"address\":\"jdbc:postgresql://pgm-2ze601n0c1h5ks05go.pg.rds.aliyuncs.com:5432\",\"database\":\"test1234\",\"jdbcUrl\":\"jdbc:postgresql://pgm-2ze601n0c1h5ks05go.pg.rds.aliyuncs.com:5432/test1234\",\"driverClassName\":\"org.postgresql.Driver\",\"validationQuery\":\"select version()\"}",
10 | "createTime": "2024-12-19 06:41:27",
11 | "updateTime": "2024-12-19 06:41:27"
12 | }
13 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/dependent/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "3.1.5"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/dependent/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 2,
4 | "userId": 1,
5 | "code": 15866588694784,
6 | "name": "test2",
7 | "description": "",
8 | "createTime": "2024-12-05 08:42:04",
9 | "updateTime": "2024-12-05 08:42:04",
10 | "perm": 0,
11 | "defCount": 0,
12 | "instRunningCount": 0
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/dependent/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/mr/datasource/datasource_page_1.json:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/mr/datasource/datasource_page_1.json
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/mr/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "3.2.0"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/mr/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "code": 13942964612128,
6 | "name": "ff",
7 | "description": "",
8 | "createTime": "2024-06-14 18:10:11",
9 | "updateTime": "2024-06-14 18:10:11",
10 | "perm": 0,
11 | "defCount": 0,
12 | "instRunningCount": 0
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/mr/resource/resources.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 0,
4 | "pid": "dolphinscheduler/default/resources/",
5 | "name": "hadoop-mapreduce-examples-3.2.1.jar",
6 | "fullName": "dolphinscheduler/default/resources/hadoop-mapreduce-examples-3.2.1.jar",
7 | "children": [],
8 | "type": "FILE",
9 | "idValue": "0_0",
10 | "dirctory": false
11 | },
12 | {
13 | "id": 0,
14 | "pid": "dolphinscheduler/default/resources/",
15 | "name": "original-spark-examples_2.12-3.2.0.jar",
16 | "fullName": "dolphinscheduler/default/resources/original-spark-examples_2.12-3.2.0.jar",
17 | "children": [],
18 | "type": "FILE",
19 | "idValue": "0_0",
20 | "dirctory": false
21 | }
22 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/mr/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/python1/datasource/datasource_page_1.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "userName": "admin",
6 | "name": "pg1",
7 | "note": "pg1 test",
8 | "type": "POSTGRESQL",
9 | "connectionParams": "{\"user\":\"feilun\",\"password\":\"******\",\"address\":\"jdbc:postgresql://pgm-2ze5n0y3qv3v3wr4fo.pg.rds.aliyuncs.com:5432\",\"database\":\"test1\",\"jdbcUrl\":\"jdbc:postgresql://pgm-2ze5n0y3qv3v3wr4fo.pg.rds.aliyuncs.com:5432/test1\",\"driverClassName\":\"org.postgresql.Driver\",\"validationQuery\":\"select version()\"}",
10 | "createTime": "2024-05-20 20:10:54",
11 | "updateTime": "2024-05-20 20:10:54"
12 | }
13 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/python1/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "3.0.5"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/python1/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "code": 13666515015680,
6 | "name": "proj1",
7 | "description": "",
8 | "createTime": "2024-05-20T18:14:08.559+0800",
9 | "updateTime": "2024-05-20T18:14:08.559+0800",
10 | "perm": 0,
11 | "defCount": 0,
12 | "instRunningCount": 0
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/python1/resource/resources.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 5,
4 | "pid": -1,
5 | "name": "udf-dir1",
6 | "fullName": "udf-dir1",
7 | "description": "ddd",
8 | "children": [
9 | {
10 | "id": 7,
11 | "pid": 5,
12 | "name": "HiveUDFs-0.0.1-SNAPSHOT.jar",
13 | "fullName": "udf-dir1HiveUDFs-0.0.1-SNAPSHOT.jar",
14 | "description": "",
15 | "children": [],
16 | "type": "UDF",
17 | "idValue": "7_0",
18 | "dirctory": false
19 | },
20 | {
21 | "id": 6,
22 | "pid": 5,
23 | "name": "commons-cli-1.4.jar",
24 | "fullName": "udf-dir1/commons-cli-1.4.jar",
25 | "description": "",
26 | "children": [],
27 | "type": "UDF",
28 | "idValue": "6_0",
29 | "dirctory": false
30 | }
31 | ],
32 | "type": "UDF",
33 | "idValue": "5_1",
34 | "dirctory": true
35 | }
36 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/python1/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "funcName": "Strip",
6 | "className": "org.hardik.letsdobigdata.Strip",
7 | "description": "",
8 | "resourceId": 7,
9 | "resourceName": "udf-dir1/HiveUDFs-0.0.1-SNAPSHOT.jar",
10 | "type": "HIVE",
11 | "createTime": "2024-05-20 20:55:35",
12 | "updateTime": "2024-05-20 20:55:35"
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/shell/datasource/datasource_page_1.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "userName": "admin",
6 | "name": "pg1",
7 | "note": "",
8 | "type": "POSTGRESQL",
9 | "connectionParams": "{\"user\":\"feilun\",\"password\":\"******\",\"address\":\"jdbc:postgresql://pgm-2ze601n0c1h5ks05go.pg.rds.aliyuncs.com:5432\",\"database\":\"test1234\",\"jdbcUrl\":\"jdbc:postgresql://pgm-2ze601n0c1h5ks05go.pg.rds.aliyuncs.com:5432/test1234\",\"driverClassName\":\"org.postgresql.Driver\",\"validationQuery\":\"select version()\"}",
10 | "createTime": "2024-12-19 06:41:27",
11 | "updateTime": "2024-12-19 06:41:27"
12 | }
13 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/shell/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "3.1.5"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/shell/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 2,
4 | "userId": 1,
5 | "code": 15866588694784,
6 | "name": "test2",
7 | "description": "",
8 | "createTime": "2024-12-05 08:42:04",
9 | "updateTime": "2024-12-05 08:42:04",
10 | "perm": 0,
11 | "defCount": 0,
12 | "instRunningCount": 0
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/shell/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/spark/datasource/datasource_page_1.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "userName": "admin",
6 | "name": "pg1",
7 | "note": "pg1 test",
8 | "type": "POSTGRESQL",
9 | "connectionParams": "{\"user\":\"feilun\",\"password\":\"******\",\"address\":\"jdbc:postgresql://pgm-2ze5n0y3qv3v3wr4fo.pg.rds.aliyuncs.com:5432\",\"database\":\"test1\",\"jdbcUrl\":\"jdbc:postgresql://pgm-2ze5n0y3qv3v3wr4fo.pg.rds.aliyuncs.com:5432/test1\",\"driverClassName\":\"org.postgresql.Driver\",\"validationQuery\":\"select version()\"}",
10 | "createTime": "2024-05-20 20:10:54",
11 | "updateTime": "2024-05-20 20:10:54"
12 | }
13 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/spark/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "3.0.5"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/spark/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "code": 13666515015680,
6 | "name": "proj1",
7 | "description": "",
8 | "createTime": "2024-05-20T18:14:08.559+0800",
9 | "updateTime": "2024-05-20T18:14:08.559+0800",
10 | "perm": 0,
11 | "defCount": 0,
12 | "instRunningCount": 0
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/spark/resource/resources.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 5,
4 | "pid": -1,
5 | "name": "udf-dir1",
6 | "fullName": "udf-dir1",
7 | "description": "ddd",
8 | "children": [
9 | {
10 | "id": 7,
11 | "pid": 5,
12 | "name": "HiveUDFs-0.0.1-SNAPSHOT.jar",
13 | "fullName": "udf-dir1HiveUDFs-0.0.1-SNAPSHOT.jar",
14 | "description": "",
15 | "children": [],
16 | "type": "UDF",
17 | "idValue": "7_0",
18 | "dirctory": false
19 | },
20 | {
21 | "id": 6,
22 | "pid": 5,
23 | "name": "commons-cli-1.4.jar",
24 | "fullName": "udf-dir1/commons-cli-1.4.jar",
25 | "description": "",
26 | "children": [],
27 | "type": "UDF",
28 | "idValue": "6_0",
29 | "dirctory": false
30 | }
31 | ],
32 | "type": "UDF",
33 | "idValue": "5_1",
34 | "dirctory": true
35 | }
36 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/spark/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "funcName": "Strip",
6 | "className": "org.hardik.letsdobigdata.Strip",
7 | "description": "",
8 | "resourceId": 7,
9 | "resourceName": "udf-dir1/HiveUDFs-0.0.1-SNAPSHOT.jar",
10 | "type": "HIVE",
11 | "createTime": "2024-05-20 20:55:35",
12 | "updateTime": "2024-05-20 20:55:35"
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/sql/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "3.2.0"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/sql/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "code": 13942964612128,
6 | "name": "ff",
7 | "description": "",
8 | "createTime": "2024-06-14 18:10:11",
9 | "updateTime": "2024-06-14 18:10:11",
10 | "perm": 0,
11 | "defCount": 0,
12 | "instRunningCount": 0
13 | },
14 | {
15 | "id": 2,
16 | "userId": 1,
17 | "code": 14149481615008,
18 | "name": "wl_dolphin3",
19 | "description": "",
20 | "createTime": "2024-07-03 10:20:25",
21 | "updateTime": "2024-07-03 10:20:25",
22 | "perm": 0,
23 | "defCount": 0,
24 | "instRunningCount": 0
25 | },
26 | {
27 | "id": 3,
28 | "userId": 1,
29 | "code": 14206985639328,
30 | "name": "wl_test111",
31 | "description": "",
32 | "createTime": "2024-07-08 15:07:55",
33 | "updateTime": "2024-07-08 15:07:55",
34 | "perm": 0,
35 | "defCount": 0,
36 | "instRunningCount": 0
37 | }
38 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/sql/resource/resources.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 0,
4 | "pid": "dolphinscheduler/default/resources/",
5 | "name": "hadoop-mapreduce-examples-3.2.1.jar",
6 | "fullName": "dolphinscheduler/default/resources/hadoop-mapreduce-examples-3.2.1.jar",
7 | "children": [],
8 | "type": "FILE",
9 | "idValue": "0_0",
10 | "dirctory": false
11 | },
12 | {
13 | "id": 0,
14 | "pid": "dolphinscheduler/default/resources/",
15 | "name": "original-spark-examples_2.12-3.2.0.jar",
16 | "fullName": "dolphinscheduler/default/resources/original-spark-examples_2.12-3.2.0.jar",
17 | "children": [],
18 | "type": "FILE",
19 | "idValue": "0_0",
20 | "dirctory": false
21 | }
22 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/sql/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/sqoop/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "3.2.0"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/sqoop/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "code": 13942964612128,
6 | "name": "ff",
7 | "description": "",
8 | "createTime": "2024-06-14 18:10:11",
9 | "updateTime": "2024-06-14 18:10:11",
10 | "perm": 0,
11 | "defCount": 0,
12 | "instRunningCount": 0
13 | },
14 | {
15 | "id": 2,
16 | "userId": 1,
17 | "code": 14149481615008,
18 | "name": "wl_dolphin3",
19 | "description": "",
20 | "createTime": "2024-07-03 10:20:25",
21 | "updateTime": "2024-07-03 10:20:25",
22 | "perm": 0,
23 | "defCount": 0,
24 | "instRunningCount": 0
25 | },
26 | {
27 | "id": 3,
28 | "userId": 1,
29 | "code": 14206985639328,
30 | "name": "wl_test111",
31 | "description": "",
32 | "createTime": "2024-07-08 15:07:55",
33 | "updateTime": "2024-07-08 15:07:55",
34 | "perm": 0,
35 | "defCount": 0,
36 | "instRunningCount": 0
37 | }
38 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/sqoop/resource/resources.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 0,
4 | "pid": "dolphinscheduler/default/resources/",
5 | "name": "hadoop-mapreduce-examples-3.2.1.jar",
6 | "fullName": "dolphinscheduler/default/resources/hadoop-mapreduce-examples-3.2.1.jar",
7 | "children": [],
8 | "type": "FILE",
9 | "idValue": "0_0",
10 | "dirctory": false
11 | },
12 | {
13 | "id": 0,
14 | "pid": "dolphinscheduler/default/resources/",
15 | "name": "original-spark-examples_2.12-3.2.0.jar",
16 | "fullName": "dolphinscheduler/default/resources/original-spark-examples_2.12-3.2.0.jar",
17 | "children": [],
18 | "type": "FILE",
19 | "idValue": "0_0",
20 | "dirctory": false
21 | }
22 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/sqoop/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/subprocess1/datasource/datasource_page_1.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "userName": "admin",
6 | "name": "pg1",
7 | "note": "",
8 | "type": "POSTGRESQL",
9 | "connectionParams": "{\"user\":\"feilun\",\"password\":\"******\",\"address\":\"jdbc:postgresql://pgm-2ze601n0c1h5ks05go.pg.rds.aliyuncs.com:5432\",\"database\":\"test1234\",\"jdbcUrl\":\"jdbc:postgresql://pgm-2ze601n0c1h5ks05go.pg.rds.aliyuncs.com:5432/test1234\",\"driverClassName\":\"org.postgresql.Driver\",\"validationQuery\":\"select version()\"}",
10 | "createTime": "2024-12-19 06:41:27",
11 | "updateTime": "2024-12-19 06:41:27"
12 | }
13 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/subprocess1/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "3.1.5"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/subprocess1/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 2,
4 | "userId": 1,
5 | "code": 15866588694784,
6 | "name": "test2",
7 | "description": "",
8 | "createTime": "2024-12-05 08:42:04",
9 | "updateTime": "2024-12-05 08:42:04",
10 | "perm": 0,
11 | "defCount": 0,
12 | "instRunningCount": 0
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/subprocess1/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/switch/datasource/datasource_page_1.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "userName": "admin",
6 | "name": "pg1",
7 | "note": "",
8 | "type": "POSTGRESQL",
9 | "connectionParams": "{\"user\":\"feilun\",\"password\":\"******\",\"address\":\"jdbc:postgresql://pgm-2ze601n0c1h5ks05go.pg.rds.aliyuncs.com:5432\",\"database\":\"test1234\",\"jdbcUrl\":\"jdbc:postgresql://pgm-2ze601n0c1h5ks05go.pg.rds.aliyuncs.com:5432/test1234\",\"driverClassName\":\"org.postgresql.Driver\",\"validationQuery\":\"select version()\"}",
10 | "createTime": "2024-12-19 06:41:27",
11 | "updateTime": "2024-12-19 06:41:27"
12 | }
13 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/switch/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "3.1.5"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/switch/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 2,
4 | "userId": 1,
5 | "code": 15866588694784,
6 | "name": "test2",
7 | "description": "",
8 | "createTime": "2024-12-05 08:42:04",
9 | "updateTime": "2024-12-05 08:42:04",
10 | "perm": 0,
11 | "defCount": 0,
12 | "instRunningCount": 0
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphin/v3/switch/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphinscheduler/v1_package_0/package_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.3.9"
3 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphinscheduler/v1_package_0/projects.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "name": "project_a",
6 | "description": "",
7 | "createTime": "2022-10-13T16:47:05.428+0800",
8 | "updateTime": "2022-10-13T16:47:05.428+0800",
9 | "perm": 0,
10 | "defCount": 0,
11 | "instRunningCount": 0
12 | }
13 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/dolphinscheduler/v1_package_0/udfFunction/udf_function_page_1.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "id": 1,
4 | "userId": 1,
5 | "funcName": "test_udf_0",
6 | "className": "test.Main",
7 | "description": "",
8 | "resourceId": 1,
9 | "resourceName": "/aliyun-java-sdk-dataworks-public-1.0.0.jar",
10 | "type": "HIVE",
11 | "createTime": "2022-10-18T17:59:06.286+0800",
12 | "updateTime": "2022-10-18T17:59:06.286+0800"
13 | }
14 | ]
--------------------------------------------------------------------------------
/client/migrationx/migrationx-transformer/src/test/resources/json/adf/conf.json:
--------------------------------------------------------------------------------
1 | {
2 | "locale": "zh_CN",
3 | "settings": {
4 | "triggers": {
5 | "trigger1": "15 30 12 * * ?",
6 | "trigger2": "0 0 0 * * 5L"
7 | },
8 | "nodeTypeMappings": {
9 | },
10 | "unknownNodeType": "DIDE_SHELL"
11 | }
12 | }
--------------------------------------------------------------------------------
/client/migrationx/migrationx-writer/src/main/java/com/aliyun/dataworks/migrationx/writer/dataworks/model/AsyncJobStatus.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.migrationx.writer.dataworks.model;
2 |
3 | import com.aliyun.dataworks.common.spec.domain.interfaces.LabelEnum;
4 | import lombok.AllArgsConstructor;
5 | import lombok.Getter;
6 |
7 | /**
8 | * Desc:
9 | *
10 | * @author 莫泣
11 | * @date 2024-10-17
12 | */
13 | @Getter
14 | @AllArgsConstructor
15 | public enum AsyncJobStatus implements LabelEnum {
16 |
17 | /**
18 | * 运行中
19 | */
20 | RUNNING("Running", false),
21 |
22 | /**
23 | * 成功
24 | */
25 | SUCCESS("Success", true),
26 |
27 | /**
28 | * 失败
29 | */
30 | FAIL("Fail", true),
31 |
32 | /**
33 | * 取消
34 | */
35 | CANCEL("Cancel", true),
36 | ;
37 | private final String label;
38 |
39 | private final Boolean completed;
40 | }
41 |
--------------------------------------------------------------------------------
/client/migrationx/migrationx-writer/src/test/resources/airflow2/workflows/sample.json:
--------------------------------------------------------------------------------
1 | {}
--------------------------------------------------------------------------------
/client/migrationx/src/main/bin/local.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import common
4 |
5 | common.run_command("writer", "com.aliyun.dataworks.migrationx.local.DataWorksSpecLocalCommandApp")
6 |
--------------------------------------------------------------------------------
/client/migrationx/src/main/bin/reader.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import common
4 |
5 | common.run_command("reader")
6 |
--------------------------------------------------------------------------------
/client/migrationx/src/main/bin/transformer.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import common
4 |
5 | common.run_command("transformer")
6 |
--------------------------------------------------------------------------------
/client/migrationx/src/main/bin/writer.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import common
4 |
5 | common.run_command("writer")
6 |
--------------------------------------------------------------------------------
/client/migrationx/src/main/conf/airworks.json:
--------------------------------------------------------------------------------
1 | {
2 | "transformer": {
3 | "name": "airflow_to_flowspec",
4 | "params": [
5 | "-a airflowv2_to_dataworks",
6 | "-d ${AIRFLOW_V2_DAG_FOLDER}",
7 | "-o ${FLOWSPECT_FOLDER_FOR_AIRFLOW_DAGS}",
8 | "-m ${MIGRATIONX_HOME}/conf/flowspec-airflowV2-transformer-config.json"
9 | ]
10 | },
11 | "writer": {
12 | "name": "flowspec_to_dataworks",
13 | "params": [
14 | "-a flowspec_to_dataworks",
15 | "-e dataworks.${ALIYUN_REGION_ID}.aliyuncs.com",
16 | "-i ${ALIYUN_ACCESS_KEY_ID}",
17 | "-k ${ALIYUN_ACCESS_KEY_SECRET}",
18 | "-p ${ALIYUN_DATAWORKS_WORKSPACE_ID}",
19 | "-r ${ALIYUN_REGION_ID}",
20 | "-f ${FLOWSPECT_FOLDER_FOR_AIRFLOW_DAGS}"
21 | ]
22 | }
23 | }
--------------------------------------------------------------------------------
/client/migrationx/src/test/java/com/aliyun/dataworks/AppTest.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks;
2 |
3 | import junit.framework.Test;
4 | import junit.framework.TestCase;
5 | import junit.framework.TestSuite;
6 |
7 | /**
8 | * Unit test for simple App.
9 | */
10 | public class AppTest
11 | extends TestCase
12 | {
13 | /**
14 | * Create the test case
15 | *
16 | * @param testName name of the test case
17 | */
18 | public AppTest( String testName )
19 | {
20 | super( testName );
21 | }
22 |
23 | /**
24 | * @return the suite of tests being tested
25 | */
26 | public static Test suite()
27 | {
28 | return new TestSuite( AppTest.class );
29 | }
30 |
31 | /**
32 | * Rigourous Test :-)
33 | */
34 | public void testApp()
35 | {
36 | assertTrue( true );
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/docs/images/architecture-cn.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/docs/images/architecture-cn.jpg
--------------------------------------------------------------------------------
/docs/images/architecture-en.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/docs/images/architecture-en.jpg
--------------------------------------------------------------------------------
/docs/images/architecture.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/docs/images/architecture.jpg
--------------------------------------------------------------------------------
/docs/images/spec/dw_spec_package_demo-en.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/docs/images/spec/dw_spec_package_demo-en.jpg
--------------------------------------------------------------------------------
/docs/images/spec/dw_spec_package_demo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/docs/images/spec/dw_spec_package_demo.jpg
--------------------------------------------------------------------------------
/docs/images/spec/samples/real_case.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/docs/images/spec/samples/real_case.jpg
--------------------------------------------------------------------------------
/docs/images/spec/samples/simple.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aliyun/dataworks-spec/b68829506ad2c0d634e6a81b9516a44a509b1c51/docs/images/spec/samples/simple.jpg
--------------------------------------------------------------------------------
/schema/docs/artifact-artifactnodeoutput-properties-output.md:
--------------------------------------------------------------------------------
1 | # Output Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/artifact.schema.json#/nodeOutput/properties/output
5 | ```
6 |
7 | 节点调度输出标识
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------ |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [artifact.schema.json\*](../../out/artifact.schema.json "open original schema") |
12 |
13 | ## output Type
14 |
15 | `string` ([Output](artifact-artifactnodeoutput-properties-output.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/artifact-artifacttable-properties-guid.md:
--------------------------------------------------------------------------------
1 | # Guid Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/artifact.schema.json#/table/properties/guid
5 | ```
6 |
7 | 产出表唯一标识符
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------ |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [artifact.schema.json\*](../../out/artifact.schema.json "open original schema") |
12 |
13 | ## guid Type
14 |
15 | `string` ([Guid](artifact-artifacttable-properties-guid.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/artifact-artifactvariable-properties-id.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Artifact Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/artifact.schema.json#/variable/properties/id
5 | ```
6 |
7 | 唯一标识
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------ |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [artifact.schema.json\*](../../out/artifact.schema.json "open original schema") |
12 |
13 | ## id Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/artifact-artifactvariable-properties-name.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Artifact Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/artifact.schema.json#/variable/properties/name
5 | ```
6 |
7 | 变量名
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------ |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [artifact.schema.json\*](../../out/artifact.schema.json "open original schema") |
12 |
13 | ## name Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/artifact-artifactvariable-properties-scope-metaenum.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Artifact Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/artifact.schema.json#/variable/properties/scope/meta:enum
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------ |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [artifact.schema.json\*](../../out/artifact.schema.json "open original schema") |
12 |
13 | ## meta:enum Type
14 |
15 | unknown
16 |
--------------------------------------------------------------------------------
/schema/docs/artifact-artifactvariable-properties-type-metaenum.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Artifact Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/artifact.schema.json#/variable/properties/type/meta:enum
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------ |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [artifact.schema.json\*](../../out/artifact.schema.json "open original schema") |
12 |
13 | ## meta:enum Type
14 |
15 | unknown
16 |
--------------------------------------------------------------------------------
/schema/docs/artifact-properties-artifacttype-metaenum.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Artifact Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/artifact.schema.json#/properties/artifactType/meta:enum
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------ |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [artifact.schema.json\*](../../out/artifact.schema.json "open original schema") |
12 |
13 | ## meta:enum Type
14 |
15 | unknown
16 |
--------------------------------------------------------------------------------
/schema/docs/fileresource-properties-id.md:
--------------------------------------------------------------------------------
1 | # Untitled string in FileResource Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/fileResource.schema.json#/properties/id
5 | ```
6 |
7 | 唯一标识
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [fileResource.schema.json\*](../../out/fileResource.schema.json "open original schema") |
12 |
13 | ## id Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/fileresource-properties-name.md:
--------------------------------------------------------------------------------
1 | # Untitled string in FileResource Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/fileResource.schema.json#/properties/name
5 | ```
6 |
7 | 函数名称
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [fileResource.schema.json\*](../../out/fileResource.schema.json "open original schema") |
12 |
13 | ## name Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-if-properties-kind.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Flow Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/if/properties/kind
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## kind Type
14 |
15 | unknown
16 |
17 | ## kind Constraints
18 |
19 | **constant**: the value of this property must be equal to:
20 |
21 | ```json
22 | "CycleWorkflow"
23 | ```
24 |
--------------------------------------------------------------------------------
/schema/docs/flow-if-properties.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Flow Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/if/properties
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## properties Type
14 |
15 | unknown
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-flowmetedata-properties-description.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Flow Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/metadata/properties/description
5 | ```
6 |
7 | 字段说明
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## description Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-flowmetedata-properties-owner.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Flow Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/metadata/properties/owner
5 | ```
6 |
7 | 责任人
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## owner Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-flowworkflowspec-properties-flowworkflowspecartifacts.md:
--------------------------------------------------------------------------------
1 | # Flow\.WorkflowSpec.Artifacts Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/spec/properties/artifacts
5 | ```
6 |
7 | 定义工作流的变量
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## artifacts Type
14 |
15 | `object[]` ([Artifact](artifact.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-flowworkflowspec-properties-flowworkflowspecedges-flowworkflowspecedge-properties-nodeid.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Flow Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/spec/properties/flow/items/properties/nodeId
5 | ```
6 |
7 | 节点的唯一标识符,全局唯一,用于标识工作流中的节点
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## nodeId Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-flowworkflowspec-properties-flowworkflowspecfileresources.md:
--------------------------------------------------------------------------------
1 | # Flow\.WorkflowSpec.FileResources Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/spec/properties/fileResources
5 | ```
6 |
7 | 文件资源列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## fileResources Type
14 |
15 | `object[]` ([FileResource](fileresource.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-flowworkflowspec-properties-flowworkflowspecfunctions.md:
--------------------------------------------------------------------------------
1 | # Flow\.WorkflowSpec.Functions Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/spec/properties/functions
5 | ```
6 |
7 | 函数定义列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## functions Type
14 |
15 | `object[]` ([Function](function.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-flowworkflowspec-properties-flowworkflowspecnodes.md:
--------------------------------------------------------------------------------
1 | # Flow\.WorkflowSpec.Nodes Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/spec/properties/nodes
5 | ```
6 |
7 | 任务节点列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## nodes Type
14 |
15 | `object[]` ([Node](node.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-flowworkflowspec-properties-flowworkflowspecruntimeresources.md:
--------------------------------------------------------------------------------
1 | # Flow\.WorkflowSpec.RuntimeResources Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/spec/properties/runtimeResources
5 | ```
6 |
7 | 运行时资源定义列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## runtimeResources Type
14 |
15 | `object[]` ([RuntimeResource](runtimeresource.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-flowworkflowspec-properties-flowworkflowspecscripts.md:
--------------------------------------------------------------------------------
1 | # Flow\.WorkflowSpec.Scripts Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/spec/properties/scripts
5 | ```
6 |
7 | 定义工作流的变量
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## scripts Type
14 |
15 | `object[]` ([Script](script.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-flowworkflowspec-properties-flowworkflowspecvariables.md:
--------------------------------------------------------------------------------
1 | # Flow\.WorkflowSpec.Variables Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/spec/properties/variables
5 | ```
6 |
7 | 定义工作流的变量
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## variables Type
14 |
15 | `object[]` ([Artifact](artifact.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-kind-metaenum.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Flow Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/kind/meta:enum
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## meta:enum Type
14 |
15 | unknown
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-properties-version.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Flow Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/properties/version
5 | ```
6 |
7 | 版本号
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## version Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-then-properties-spec-properties-flowworkflowspectriggers.md:
--------------------------------------------------------------------------------
1 | # Flow\.WorkflowSpec.Triggers Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/then/properties/spec/properties/triggers
5 | ```
6 |
7 | 周期调度定义列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## triggers Type
14 |
15 | `object[]` ([Trigger](trigger.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-then-properties-spec-properties.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Flow Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/then/properties/spec/properties
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## properties Type
14 |
15 | unknown
16 |
--------------------------------------------------------------------------------
/schema/docs/flow-then-properties.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Flow Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/flow.schema.json#/then/properties
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [flow.schema.json\*](../../out/flow.schema.json "open original schema") |
12 |
13 | ## properties Type
14 |
15 | unknown
16 |
--------------------------------------------------------------------------------
/schema/docs/function-properties-id.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Function Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/script.schema.json#/properties/id
5 | ```
6 |
7 | 唯一标识
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------ |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [function.schema.json\*](../../out/function.schema.json "open original schema") |
12 |
13 | ## id Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/function-properties-name.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Function Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/script.schema.json#/properties/name
5 | ```
6 |
7 | 函数名称
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------ |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [function.schema.json\*](../../out/function.schema.json "open original schema") |
12 |
13 | ## name Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-id.md:
--------------------------------------------------------------------------------
1 | # Id Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/id
5 | ```
6 |
7 | 节点在 Spec 中的唯一 Id
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## id Type
14 |
15 | `string` ([Id](node-properties-id.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-instancemode-metaenum.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Node Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/instanceMode/meta:enum
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## meta:enum Type
14 |
15 | unknown
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-name.md:
--------------------------------------------------------------------------------
1 | # Name Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/name
5 | ```
6 |
7 | 节点名
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## name Type
14 |
15 | `string` ([Name](node-properties-name.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-nodefileresources.md:
--------------------------------------------------------------------------------
1 | # Node.FileResources Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/fileResources
5 | ```
6 |
7 | 节点所需的文件资源定义或者引用
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## fileResources Type
14 |
15 | `object[]` ([FileResource](fileresource.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-nodefunctions.md:
--------------------------------------------------------------------------------
1 | # Node.Functions Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/functions
5 | ```
6 |
7 | 节点所需的函数定义或者引用
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## functions Type
14 |
15 | `object[]` ([Function](function.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-nodeinputartifact-properties-nodeinputartifactnodeoutputs.md:
--------------------------------------------------------------------------------
1 | # Node.InputArtifact.NodeOutputs Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/inputs/properties/nodeOutputs
5 | ```
6 |
7 | 节点使用的上游节点的预定义输出列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## nodeOutputs Type
14 |
15 | `object[]` ([Artifact](artifact.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-nodeinputartifact-properties-nodeinputartifacttables.md:
--------------------------------------------------------------------------------
1 | # Node.InputArtifact.Tables Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/inputs/properties/tables
5 | ```
6 |
7 | 节点使用的上游产出表列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## tables Type
14 |
15 | `object[]` ([Artifact](artifact.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-nodeinputartifact-properties-nodeinputartifactvariables.md:
--------------------------------------------------------------------------------
1 | # Node.InputArtifact.Variables Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/inputs/properties/variables
5 | ```
6 |
7 | 节点依赖的变量Variable列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## variables Type
14 |
15 | `object[]` ([Artifact](artifact.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-nodeoutputartifact-properties-nodeoutputartifactnodeoutputs.md:
--------------------------------------------------------------------------------
1 | # Node.OutputArtifact.NodeOutputs Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/outputs/properties/nodeOutputs
5 | ```
6 |
7 | 节点使用的上游节点的预定义输出列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## nodeOutputs Type
14 |
15 | `object[]` ([Artifact](artifact.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-nodeoutputartifact-properties-nodeoutputartifacttables.md:
--------------------------------------------------------------------------------
1 | # Node.OutputArtifact.Tables Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/outputs/properties/tables
5 | ```
6 |
7 | 节点使用的上游产出表列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## tables Type
14 |
15 | `object[]` ([Artifact](artifact.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-nodeoutputartifact-properties-nodeoutputartifactvariables.md:
--------------------------------------------------------------------------------
1 | # Node.OutputArtifact.Variables Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/outputs/properties/variables
5 | ```
6 |
7 | 节点依赖的变量Variable列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## variables Type
14 |
15 | `object[]` ([Artifact](artifact.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-priority.md:
--------------------------------------------------------------------------------
1 | # Untitled integer in Node Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/priority
5 | ```
6 |
7 | 定义节点的优先级, 数值越大优先级越高
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## priority Type
14 |
15 | `integer`
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-recurrence-metaenum.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Node Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/recurrence/meta:enum
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## meta:enum Type
14 |
15 | unknown
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-rerunmode-metaenum.md:
--------------------------------------------------------------------------------
1 | # Untitled undefined type in Node Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/rerunMode/meta:enum
5 | ```
6 |
7 |
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## meta:enum Type
14 |
15 | unknown
16 |
--------------------------------------------------------------------------------
/schema/docs/node-properties-timeout.md:
--------------------------------------------------------------------------------
1 | # Untitled integer in Node Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/node.schema.json#/properties/timeout
5 | ```
6 |
7 | 定义节点的超时时间, 运行超过指定时间后, 节点将会被kill掉, 单位为秒
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [node.schema.json\*](../../out/node.schema.json "open original schema") |
12 |
13 | ## timeout Type
14 |
15 | `integer`
16 |
--------------------------------------------------------------------------------
/schema/docs/runtimeresource-properties-id.md:
--------------------------------------------------------------------------------
1 | # Untitled string in RuntimeResource Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/runtimeResource.schema.json#/properties/id
5 | ```
6 |
7 | 唯一标识符
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [runtimeResource.schema.json\*](../../out/runtimeResource.schema.json "open original schema") |
12 |
13 | ## id Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/runtimeresource-properties-resourcegroup.md:
--------------------------------------------------------------------------------
1 | # Untitled string in RuntimeResource Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/runtimeResource.schema.json#/properties/resourceGroup
5 | ```
6 |
7 | 资源组唯一标识
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [runtimeResource.schema.json\*](../../out/runtimeResource.schema.json "open original schema") |
12 |
13 | ## resourceGroup Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/script-properties-id.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Script Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/script.schema.json#/properties/id
5 | ```
6 |
7 | 唯一标识
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [script.schema.json\*](../../out/script.schema.json "open original schema") |
12 |
13 | ## id Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/script-properties-language.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Script Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/script.schema.json#/properties/language
5 | ```
6 |
7 | 脚本语言
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [script.schema.json\*](../../out/script.schema.json "open original schema") |
12 |
13 | ## language Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/script-properties-path.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Script Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/script.schema.json#/properties/path
5 | ```
6 |
7 | 脚本路径
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [script.schema.json\*](../../out/script.schema.json "open original schema") |
12 |
13 | ## path Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/script-properties-scriptparameters.md:
--------------------------------------------------------------------------------
1 | # Script.Parameters Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/script.schema.json#/properties/parameters
5 | ```
6 |
7 | 脚本参数列表
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [script.schema.json\*](../../out/script.schema.json "open original schema") |
12 |
13 | ## parameters Type
14 |
15 | `object[]` ([Artifact](artifact.md))
16 |
--------------------------------------------------------------------------------
/schema/docs/script-properties-scriptruntime-properties-command.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Script Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/script.schema.json#/properties/runtime/properties/command
5 | ```
6 |
7 | 运行时环境的命令标识
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [script.schema.json\*](../../out/script.schema.json "open original schema") |
12 |
13 | ## command Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/script-properties-scriptruntime-properties-engine.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Script Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/script.schema.json#/properties/runtime/properties/engine
5 | ```
6 |
7 | 运行时引擎
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :-------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [script.schema.json\*](../../out/script.schema.json "open original schema") |
12 |
13 | ## engine Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/trigger-properties-cron.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Trigger Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/trigger.schema.json#/properties/cron
5 | ```
6 |
7 | 周期调度触发器的定时表达式
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [trigger.schema.json\*](../../out/trigger.schema.json "open original schema") |
12 |
13 | ## cron Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/trigger-properties-endtime.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Trigger Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/trigger.schema.json#/properties/endTime
5 | ```
6 |
7 | 周期调度的结束生效时间,节点只在startTime到endTime时间段内执行周期调度运行
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [trigger.schema.json\*](../../out/trigger.schema.json "open original schema") |
12 |
13 | ## endTime Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/trigger-properties-id.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Trigger Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/trigger.schema.json#/properties/id
5 | ```
6 |
7 | 唯一标识
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [trigger.schema.json\*](../../out/trigger.schema.json "open original schema") |
12 |
13 | ## id Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/trigger-properties-starttime.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Trigger Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/trigger.schema.json#/properties/startTime
5 | ```
6 |
7 | 周期调度的起始生效时间,节点只在startTime到endTime时间段内执行周期调度运行
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [trigger.schema.json\*](../../out/trigger.schema.json "open original schema") |
12 |
13 | ## startTime Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/docs/trigger-properties-timezone.md:
--------------------------------------------------------------------------------
1 | # Untitled string in Trigger Schema
2 |
3 | ```txt
4 | https://dataworks.data.aliyun.com/schemas/1.1.0/trigger.schema.json#/properties/timezone
5 | ```
6 |
7 | 周期调度时间的时区
8 |
9 | | Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In |
10 | | :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :---------------------------------------------------------------------------- |
11 | | Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [trigger.schema.json\*](../../out/trigger.schema.json "open original schema") |
12 |
13 | ## timezone Type
14 |
15 | `string`
16 |
--------------------------------------------------------------------------------
/schema/fileResource.schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$id": "https://dataworks.data.aliyun.com/schemas/1.1.0/fileResource.schema.json",
3 | "title": "FileResource",
4 | "description": "定义了文件资源, 如: jar, python, text file, archive files等",
5 | "type": "object",
6 | "properties": {
7 | "id": {
8 | "description": "唯一标识",
9 | "type": "string"
10 | },
11 | "name": {
12 | "description": "函数名称",
13 | "type": "string"
14 | },
15 | "script": {
16 | "description": "使用的脚本",
17 | "$ref": "script.schema.json"
18 | }
19 | },
20 | "required": [
21 | "id",
22 | "name",
23 | "script"
24 | ]
25 | }
--------------------------------------------------------------------------------
/schema/function.schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$id": "https://dataworks.data.aliyun.com/schemas/1.1.0/script.schema.json",
3 | "title": "Function",
4 | "description": "定义工作流节点使用的UDF",
5 | "type": "object",
6 | "properties": {
7 | "id": {
8 | "description": "唯一标识",
9 | "type": "string"
10 | },
11 | "name": {
12 | "description": "函数名称",
13 | "type": "string"
14 | },
15 | "script": {
16 | "description": "使用的脚本",
17 | "$ref": "script.schema.json"
18 | },
19 | "fileResources": {
20 | "description": "使用的资源列表",
21 | "$ref": "fileResource.schema.json"
22 | }
23 | },
24 | "required": [
25 | "id",
26 | "name",
27 | "script"
28 | ]
29 | }
--------------------------------------------------------------------------------
/schema/runtimeResource.schema.json:
--------------------------------------------------------------------------------
1 | {
2 | "$id": "https://dataworks.data.aliyun.com/schemas/1.1.0/runtimeResource.schema.json",
3 | "title": "RuntimeResource",
4 | "description": "节点的运行时资源定义或引用",
5 | "type": "object",
6 | "properties": {
7 | "id": {
8 | "description": "唯一标识符",
9 | "type": "string"
10 | },
11 | "resourceGroup": {
12 | "description": "资源组唯一标识",
13 | "type": "string"
14 | }
15 | },
16 | "required": [
17 | "id",
18 | "resourceGroup"
19 | ]
20 | }
--------------------------------------------------------------------------------
/spec/src/main/java/com/aliyun/dataworks/common/spec/domain/SpecContext.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.common.spec.domain;
17 |
18 | import lombok.Data;
19 | import lombok.EqualsAndHashCode;
20 |
21 | /**
22 | * @author 聿剑
23 | * @date 2023/11/29
24 | */
25 | @Data
26 | @EqualsAndHashCode
27 | public class SpecContext {
28 | private String version;
29 | }
30 |
--------------------------------------------------------------------------------
/spec/src/main/java/com/aliyun/dataworks/common/spec/domain/dw/codemodel/JsonFormCode.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.common.spec.domain.dw.codemodel;
17 |
18 | /**
19 | * Json格式的Code
20 | *
21 | * @author 聿剑
22 | * @date 2023/9/14
23 | */
24 | public interface JsonFormCode extends Code {
25 | }
26 |
--------------------------------------------------------------------------------
/spec/src/main/java/com/aliyun/dataworks/common/spec/domain/dw/codemodel/YamlFormCode.java:
--------------------------------------------------------------------------------
1 | package com.aliyun.dataworks.common.spec.domain.dw.codemodel;
2 |
3 | /**
4 | * Yaml格式的Code
5 | *
6 | * @author 戒迷
7 | * @date 2025/2/5
8 | */
9 | public interface YamlFormCode extends Code{
10 | }
11 |
--------------------------------------------------------------------------------
/spec/src/main/java/com/aliyun/dataworks/common/spec/domain/dw/types/IntEnum.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.common.spec.domain.dw.types;
17 |
18 | /**
19 | * @author 聿剑
20 | * @date 2023/01/12
21 | */
22 | public interface IntEnum {
23 | int getValue();
24 | }
25 |
--------------------------------------------------------------------------------
/spec/src/main/java/com/aliyun/dataworks/common/spec/domain/dw/types/LocaleAware.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.common.spec.domain.dw.types;
17 |
18 | import java.util.Locale;
19 |
20 | /**
21 | * @author 聿剑
22 | * @date 2023/9/8
23 | */
24 | public interface LocaleAware {
25 | String getDisplayName(Locale locale);
26 | }
27 |
--------------------------------------------------------------------------------
/spec/src/main/java/com/aliyun/dataworks/common/spec/domain/interfaces/Input.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.common.spec.domain.interfaces;
17 |
18 | /**
19 | * Node input type interface
20 | *
21 | * @author yiwei.qyw
22 | * @date 2023/7/14
23 | */
24 | public interface Input extends NodeIO {
25 | }
--------------------------------------------------------------------------------
/spec/src/main/java/com/aliyun/dataworks/common/spec/domain/interfaces/NodeIO.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.common.spec.domain.interfaces;
17 |
18 | /**
19 | * Node input/output interface
20 | *
21 | * @author yiwei.qyw
22 | * @date 2023/7/4
23 | */
24 | public interface NodeIO {
25 | }
--------------------------------------------------------------------------------
/spec/src/main/java/com/aliyun/dataworks/common/spec/domain/interfaces/Output.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.common.spec.domain.interfaces;
17 |
18 | /**
19 | * Node output interface
20 | *
21 | * @author yiwei.qyw
22 | * @date 2023/7/4
23 | */
24 | public interface Output extends NodeIO {
25 | }
--------------------------------------------------------------------------------
/spec/src/main/java/com/aliyun/dataworks/common/spec/domain/noref/SpecAssertIn.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024, Alibaba Cloud;
3 | * Licensed under the Apache License, Version 2.0 (the "License");
4 | * you may not use this file except in compliance with the License.
5 | * You may obtain a copy of the License at
6 | *
7 | * http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | * Unless required by applicable law or agreed to in writing, software
10 | * distributed under the License is distributed on an "AS IS" BASIS,
11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | * See the License for the specific language governing permissions and
13 | * limitations under the License.
14 | */
15 |
16 | package com.aliyun.dataworks.common.spec.domain.noref;
17 |
18 | import java.util.List;
19 |
20 | import lombok.Data;
21 |
22 | /**
23 | * Assert in
24 | *
25 | * @author 聿剑
26 | * @date 2023/10/25
27 | */
28 | @Data
29 | public class SpecAssertIn {
30 | private List