
Huawei StartJobRun
CertifiedStart a DataArts Studio (DataArts Factory) job run
Huawei StartJobRun
Start a DataArts Studio (DataArts Factory) job run
Triggers an on-demand run of a batch job in Huawei Cloud DataArts Factory (DLF) by creating a
supplement-data (PatchData) instance via POST /v2/{project_id}/factory/supplement-data, then
optionally polling until it completes.
Why supplement-data: DataArts Factory publishes no usable job-trigger API. Both
jobs/{job_name}/run-immediate and jobs/{job_name}/start reject every request with
DLF.3051, on standard and sovereign regions alike, and neither route appears in the Huawei
SDK's own route metadata. Supplement-data is the only declared mechanism that creates a run,
and it comes with matching status and stop routes.
Requirement — the job must have a trigger: supplement-data only accepts a job configured
with a cron schedule, an HTTP trigger, or a parent job. A run-once / manually-triggered job is
rejected with DLF.30111. The schedule does not have to fire on its own — it only has to
exist. Since DataArts publishes no other working job-trigger route, giving the job a schedule
in the console is a prerequisite for driving it from Kestra.
What this means in practice: supplement-data is a backfill — it runs the job over a
range of business dates (startDate to endDate, defaulting to today). The run itself is
identified by the runName you choose rather than by a numeric instance ID, and appears in
the console's Supplement Data view; the job instances it spawns appear under Monitor
Instance, named P_<jobName>_<timestamp>.
Sizing the range and maxDuration: one instance is created per scheduling period of the
job that falls inside the range, and at parallel: 1 they run one after another. An hourly
job over the default single-day range therefore means 24 sequential instances — minutes of
wall time even when each instance takes seconds. To run the job just once, set the range to a
single scheduling period (one hour for an hourly job); to speed up a real backfill, raise
parallel (max 5).
Use StopJobRun with the same runName to cancel a run before it completes. GetJobRun
reports on plain job instances (including console-triggered ones) and is not tied to this
task.
type: io.kestra.plugin.huawei.dataarts.StartJobRunExamples
Run a single instance of a DataArts Factory job and wait for it to complete. The range covers one scheduling period of the job — one hour here — so exactly one instance is created. Leaving the range at its default spans a whole day, which for an hourly job means 24 instances run one after another.
id: dataarts_start_job
namespace: company.team
tasks:
- id: start_job
type: io.kestra.plugin.huawei.dataarts.StartJobRun
accessKeyId: "{{ secret('HUAWEI_AK') }}"
secretAccessKey: "{{ secret('HUAWEI_SK') }}"
region: eu-west-101
projectId: "{{ secret('HUAWEI_PROJECT_ID') }}"
workspaceId: "{{ secret('HUAWEI_WORKSPACE_ID') }}"
jobName: my_etl_job
startDate: "{{ now() | date('yyyy-MM-dd HH:00:00') }}"
endDate: "{{ now() | dateAdd(1, 'HOURS') | date('yyyy-MM-dd HH:00:00') }}"
wait: true
maxDuration: PT10M
Run a DataArts Factory job for the whole of today's business date. Every scheduling period in the range produces its own instance, so size maxDuration for the total rather than for one instance.
id: dataarts_start_job_today
namespace: company.team
tasks:
- id: start_job
type: io.kestra.plugin.huawei.dataarts.StartJobRun
accessKeyId: "{{ secret('HUAWEI_AK') }}"
secretAccessKey: "{{ secret('HUAWEI_SK') }}"
region: eu-west-101
projectId: "{{ secret('HUAWEI_PROJECT_ID') }}"
workspaceId: "{{ secret('HUAWEI_WORKSPACE_ID') }}"
jobName: my_etl_job
wait: true
maxDuration: PT30M
Backfill a job over a date range, four instances at a time, without waiting.
id: dataarts_backfill
namespace: company.team
tasks:
- id: backfill
type: io.kestra.plugin.huawei.dataarts.StartJobRun
accessKeyId: "{{ secret('HUAWEI_AK') }}"
secretAccessKey: "{{ secret('HUAWEI_SK') }}"
region: eu-west-101
projectId: "{{ secret('HUAWEI_PROJECT_ID') }}"
workspaceId: "{{ secret('HUAWEI_WORKSPACE_ID') }}"
jobName: my_etl_job
runName: backfill_july
startDate: "2026-07-01"
endDate: "2026-07-31"
parallel: 4
stopWhenFail: false
wait: false
Properties
jobName *Requiredstring
Name of the DataArts Factory job to run
Must match the job name exactly as defined in the DataArts Studio console.
accessKeyId string
Access Key (AK) used to authenticate with Huawei Cloud
Huawei Cloud access key used together with secretAccessKey to sign API requests. Required for AK/SK-based authentication; not required when providing a pre-obtained securityToken. Sensitive — always provide via {{ secret('NAME') }}.
dayGranularity booleanstring
trueTreat the date range as day-granular
When true (the default), one instance is created per day in the range. Set to false
for jobs scheduled at a finer granularity, where the range should follow the job's own
schedule instead.
domainId string
Huawei Cloud Account Domain ID
Identifies the Huawei Cloud account (domain). Required when authenticating against global services such as IAM, or when requesting a domain-scoped IAM token.
endDate string
End of the business-date range to run the job for
Accepts the same formats as startDate, except that a date-only value means the end of
that day (23: 59: 59), so startDate: 2026-07-01 with endDate: 2026-07-31 covers all of
July. Defaults to the end of the day startDate falls on, making the default a single-day
run — the equivalent of a plain "run now".
Must be at least two seconds after startDate: DataArts compares the two as timestamps
and rejects a zero-length or inverted range with DLF.30121.
endpointOverride string
DataArts Studio endpoint URL override
Overrides the default endpoint derived from region. Use this when running against a
private endpoint, a non-standard deployment, or in tests.
When set, the region property is ignored for endpoint resolution. Format:
https://dayu.<region>.myhuaweicloud.com (without trailing slash).
interval string
PT5SPolling interval while waiting for the run to complete
ISO-8601 duration (e.g. PT5S). Defaults to 5 seconds.
maxDuration string
PT1HMaximum time to wait for the run to complete
ISO-8601 duration (e.g. PT30M, PT1H). Bounds both the wait for the run to become
visible and the status polling that follows. When the deadline passes before the run
reaches a terminal state, the task fails with a timeout error. Defaults to 1 hour.
parallel integerstring
1Number of instances to run concurrently, from 1 to 5
Only meaningful when the date range spans more than one instance. Defaults to 1, which runs the range strictly in order. 5 is the maximum DataArts accepts; a value outside 1-5 fails the task before anything is submitted.
pluginDefaultsRef Non-dynamicstring
Reference (ref) of the pluginDefaults to apply to this task.
projectId string
Huawei Cloud Project ID
Identifies the region-scoped project against which most regional services authenticate. Mutually exclusive with domainId for global services such as IAM.
region string
Huawei Cloud region
Region identifier such as eu-west-101, ap-southeast-1, or cn-north-4.
runName string
Name to give the supplement-data run
Identifies the run for status polling and for StopJobRun. Must be unique within the
workspace — reusing a name conflicts with the existing run. When omitted, a unique name
is generated as kestra_<jobName>_<random>.
runTimeWindow string
Daily window the run is allowed to execute in, as HH: mm-HH: mm
Omitted by default, which lets DataArts run the backfill immediately — its documented
default of 00: 00-00: 00 does not restrict execution, verified live.
Set this only to confine a backfill to off-peak hours, e.g. 01: 00-05: 00.
secretAccessKey string
Secret Key (SK) used to authenticate with Huawei Cloud
Huawei Cloud secret key paired with accessKeyId. Required for AK/SK-based authentication. Sensitive — always provide via {{ secret('NAME') }}.
securityToken string
Pre-obtained Huawei Cloud IAM token used as bearer credential for downstream API calls
When set, downstream Huawei tasks send this value in the X-Auth-Token header instead of signing requests with AK/SK. Sensitive.
startDate string
Start of the business-date range to run the job for
Accepts yyyy-MM-dd (start of that day), yyyy-MM-dd HH: mm: ss, or an ISO date-time —
with or without a Z/+HH: mm offset. Times without an offset are read as UTC; times
with one are converted to UTC. Defaults to the start of today (UTC).
DataArts itself requires the form 2026-07-28T00: 00: 00 +00 and does not parse any other
spelling, so the value is converted for you. A value already in that exact form is sent
through verbatim, which is the escape hatch if the required form ever changes.
stopWhenFail booleanstring
trueAbort the remaining instances if one fails
When true (the default), a failed instance stops the rest of the range from running.
temporaryCredentials string
Inline IAM credential exchange
When set, the connection layer calls the Huawei IAM STS API once per task execution and
uses the returned temporary AK/SK + security token instead of the static accessKeyId
and secretAccessKey properties.
Configure once via pluginDefaults to apply transparently to every task in a namespace
without per-task credential wiring:
pluginDefaults:
- type: io.kestra.plugin.huawei.obs
values:
region: eu-west-101
temporaryCredentials:
authMethod: PASSWORD
username: my-iam-user
password: "{{ secret('HUAWEI_IAM_PASSWORD') }}"
domainName: my-account-domain
durationSeconds: 3600
**Long-running tasks: ** the exchange runs once at execution start. For RealtimeTrigger
or long-running Consume tasks that outlive durationSeconds, credentials will expire
mid-run. Use long-lived AK/SK properties or refresh externally in that case.
io.kestra.plugin.huawei.TemporaryCredentialsConfig
PASSWORDPASSWORDTOKENAuthentication method
Controls which credentials are used to obtain the session token before exchanging for temporary STS credentials.
PASSWORD(default): provideusername,password, anddomainName.TOKEN: provide an existingiamToken(X-Auth-Token).
Account domain name (PASSWORD method only)
The Huawei Cloud account name (domain name) that owns the IAM user.
Required when authMethod is PASSWORD. Visible in the Huawei Cloud console under
My Credentials → Domain Name.
900Lifetime of the temporary credentials in seconds
How long the returned temporary AK/SK/security-token should remain valid. Huawei Cloud accepts values between 900 (15 minutes) and 86400 (24 hours). Defaults to 900 seconds.
myhuaweicloud.comHuawei Cloud IAM endpoint suffix
Domain suffix used to build the IAM endpoint URL when no explicit endpoint override is set.
Defaults to myhuaweicloud.com. Set to myhuaweicloud.eu for the European sovereign cloud
(region eu-west-101 / EU-Dublin).
IAM token to exchange (TOKEN method only)
An existing Huawei Cloud X-Auth-Token to exchange for temporary STS credentials.
Required when authMethod is TOKEN. Sensitive — always provide via {{ secret('NAME') }}.
IAM password (PASSWORD method only)
Password for the IAM user identified by username.
Required when authMethod is PASSWORD.
Sensitive — always provide via {{ secret('NAME') }}.
Project name for project-scoped tokens (PASSWORD method only)
Overrides the project name used for scope=PROJECT token requests.
Defaults to the task's region value when omitted, which is correct for most regions.
PROJECTPROJECTDOMAINToken scope (PASSWORD method only)
Scope of the session token obtained during password authentication.
PROJECT(default): token is scoped to the project matchingprojectName(or the task'sregionwhenprojectNameis omitted). Use for most downstream tasks.DOMAIN: token is scoped to the domain.
IAM username (PASSWORD method only)
Huawei Cloud IAM username. Required when authMethod is PASSWORD.
wait booleanstring
trueWait for the run to reach a terminal state
When true (the default), the task polls the run's status until it completes, then fails
the Kestra task if the run did not succeed. Set to false to return as soon as the run
has been accepted and is visible.
workspaceId string
DataArts Studio workspace ID
Identifies the DataArts Studio workspace to target. Required for all DataArts Factory operations when your account has multiple workspaces. When omitted, the default workspace is used.
Find the workspace ID in the DataArts Studio console under Workspaces → Settings.
Outputs
endDate string
date-timeEnd of the covered business-date range
jobList array
Jobs covered by the run
jobName string
Job name
parallel integer
Number of instances executed in parallel
runName string
Name of the supplement-data run
Pass this to StopJobRun to cancel the run.
startDate string
date-timeStart of the covered business-date range
status string
Status of the run when the task returned
submittedDate string
date-timeTime the run was submitted
userName string
User the run was submitted as