Huawei Query

Huawei Query

Certified

Query items from a GeminiDB (DynamoDB-compatible) table

Executes a Query request using a key condition expression. fetchType defaults to STORE, writing matching rows to internal storage; FETCH/FETCH_ONE load them into memory; NONE runs the query without fetching any results.

Reads a single response page: items beyond limit (or GeminiDB's own page-size limit) are not automatically paginated across LastEvaluatedKey. A log message is emitted whenever the response was truncated so a partial result set isn't missed silently.

yaml
type: io.kestra.plugin.huawei.geminidb.Query

Query items by partition key

yaml
id: geminidb_query
namespace: company.team

tasks:
  - id: query
    type: io.kestra.plugin.huawei.geminidb.Query
    accessKeyId: "{{ secret('HUAWEI_AK') }}"
    secretAccessKey: "{{ secret('HUAWEI_SK') }}"
    endpoint: "https://192.168.0.10:8635"
    tableName: persons
    keyConditionExpression: "id = :id"
    expressionAttributeValues:
      ":id": "1"

Query items with an additional filter expression

yaml
id: geminidb_query_filter
namespace: company.team

tasks:
  - id: query
    type: io.kestra.plugin.huawei.geminidb.Query
    accessKeyId: "{{ secret('HUAWEI_AK') }}"
    secretAccessKey: "{{ secret('HUAWEI_SK') }}"
    endpoint: "https://192.168.0.10:8635"
    tableName: persons
    keyConditionExpression: "id = :id"
    filterExpression: "lastname = :lastname"
    expressionAttributeValues:
      ":id": "1"
      ":lastname": "Doe"
Properties

GeminiDB instance connection address

The DynamoDB-compatible API endpoint of the GeminiDB for NoSQL instance, e.g. https://192.168.0.10: 8635. Find it on the instance's "Connection Management" page in the Huawei Cloud console. Unlike other Huawei Cloud services, this address is per-instance and cannot be derived from region.

region is used only for SigV4 request signing and does not affect routing — GeminiDB routes solely by this endpoint property; leave region at its default unless signing requires a specific value.

Expression attribute values

Map of : placeholder values referenced by keyConditionExpression and, if set, filterExpression. Numeric values are stored as DynamoDB string (S) attributes, not numbers (N) — quote or compare them as strings.

Key condition expression

Expression on the table's partition key (and sort key, if defined), e.g. id = : id.

Table name

Target GeminiDB (DynamoDB-compatible) table for the operation.

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') }}.

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.

DefaultSTORE
Possible Values
STOREFETCHFETCH_ONENONE

Fetch strategy

STORE (default) writes matching rows to internal storage; FETCH loads all rows into memory; FETCH_ONE returns only the first row; NONE runs the query without fetching results.

Filter expression

Additional server-side filter evaluated after the key condition; its placeholders must also be present in expressionAttributeValues.

Default100

Maximum number of items to evaluate

Caps the number of items read in the single response page (1-1000). Defaults to 100. Does not paginate across LastEvaluatedKey — see the task description.

Reference (ref) of the pluginDefaults to apply to this task.

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.

Huawei Cloud region

Region identifier such as eu-west-101, ap-southeast-1, or cn-north-4.

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') }}.

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.

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.

Definitions
authMethodstring
DefaultPASSWORD
Possible Values
PASSWORDTOKEN

Authentication method

Controls which credentials are used to obtain the session token before exchanging for temporary STS credentials.

  • PASSWORD (default): provide username, password, and domainName.
  • TOKEN: provide an existing iamToken (X-Auth-Token).
domainNamestring

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.

durationSecondsintegerstring
Default900

Lifetime 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.

endpointSuffixstring
Defaultmyhuaweicloud.com

Huawei 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).

iamTokenstring

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') }}.

passwordstring

IAM password (PASSWORD method only)

Password for the IAM user identified by username. Required when authMethod is PASSWORD. Sensitive — always provide via {{ secret('NAME') }}.

projectNamestring

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.

scopestring
DefaultPROJECT
Possible Values
PROJECTDOMAIN

Token scope (PASSWORD method only)

Scope of the session token obtained during password authentication.

  • PROJECT (default): token is scoped to the project matching projectName (or the task's region when projectName is omitted). Use for most downstream tasks.
  • DOMAIN: token is scoped to the domain.
usernamestring

IAM username (PASSWORD method only)

Huawei Cloud IAM username. Required when authMethod is PASSWORD.

Map containing the first row of fetched data.

Only populated if using fetchType=FETCH_ONE.

List containing the fetched data.

Only populated if using fetchType=FETCH.

The number of fetched rows.

Formaturi

Kestra's internal storage URI of the stored data.

Only populated if using fetchType=STORE.

Unititems

Number of items fetched from the GeminiDB query.