
Huawei Scan
CertifiedScan a GeminiDB (DynamoDB-compatible) table
Huawei Scan
Scan a GeminiDB (DynamoDB-compatible) table
Performs a Scan over the entire table. fetchType defaults to STORE, writing matching rows
to internal storage; FETCH/FETCH_ONE load them into memory; NONE runs the scan without
fetching any results. An optional filterExpression narrows the returned set after items are
read, so it does not reduce the read cost.
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.
Authenticate with the instance's database account — accessKeyId: rwuser and the instance
admin password as secretAccessKey. Huawei IAM AK/SK credentials are not accepted by the
DynamoDB-compatible data plane.
type: io.kestra.plugin.huawei.geminidb.ScanExamples
Scan an entire table
id: geminidb_scan
namespace: company.team
tasks:
- id: scan
type: io.kestra.plugin.huawei.geminidb.Scan
accessKeyId: rwuser
secretAccessKey: "{{ secret('GEMINIDB_ADMIN_PASSWORD') }}"
endpoint: "http://192.168.0.10:8000"
tableName: persons
Scan a table with a filter expression
id: geminidb_scan_filter
namespace: company.team
tasks:
- id: scan
type: io.kestra.plugin.huawei.geminidb.Scan
accessKeyId: rwuser
secretAccessKey: "{{ secret('GEMINIDB_ADMIN_PASSWORD') }}"
endpoint: "http://192.168.0.10:8000"
tableName: persons
filterExpression: "lastname = :lastname"
expressionAttributeValues:
":lastname": "Doe"
Properties
endpoint *Requiredstring
GeminiDB instance connection address
The DynamoDB-compatible API endpoint of the GeminiDB for NoSQL instance, e.g.
http://192.168.0.10: 8000. Find it under Connections on the instance's console page.
Unlike other Huawei Cloud services, this address is per-instance and cannot be derived
from region.
The data-plane port is 8000 and is fixed: it cannot be chosen at creation or changed afterwards (a high-availability port 80 is also documented). Do not use 8635 — that is the Cassandra/CQL port of the underlying kernel and does not speak the DynamoDB protocol.
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.
tableName *Requiredstring
Table name
Target GeminiDB (DynamoDB-compatible) table for the operation.
accessKeyId string
GeminiDB database account username
The DynamoDB-compatible data plane authenticates against the instance's own database account, not Huawei IAM — set this to the fixed database username rwuser. Sensitive — always provide via {{ secret('NAME') }}.
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.
expressionAttributeValues object
Expression attribute values
Map of : placeholder values referenced by filterExpression. Numeric values are stored
as DynamoDB string (S) attributes, not numbers (N) — quote or compare them as strings.
fetchType string
STORESTOREFETCHFETCH_ONENONEFetch 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 scan without fetching
results.
filterExpression string
Filter expression
Server-side filter applied to scanned items; requires expressionAttributeValues.
limit integerstring
100Maximum 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.
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.
secretAccessKey string
GeminiDB database account password
The instance admin password set when the GeminiDB instance was purchased — it cannot be retrieved later, only reset. Paired with accessKeyId: rwuser. Sensitive — always provide via {{ secret('NAME') }}.
securityToken string
Not supported by GeminiDB
GeminiDB's DynamoDB-compatible data plane never consults Huawei IAM, so a security token (or an inline temporaryCredentials exchange) has nothing to authenticate against. Setting either causes the task to fail fast with an actionable error instead of the opaque AccessDeniedException: auth failed a real GeminiDB instance would otherwise return. Use accessKeyId/secretAccessKey instead.
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.
Outputs
row object
Map containing the first row of fetched data.
Only populated if using fetchType=FETCH_ONE.
rows array
List containing the fetched data.
Only populated if using fetchType=FETCH.
size integer
The number of fetched rows.
uri string
uriKestra's internal storage URI of the stored data.
Only populated if using fetchType=STORE.
Metrics
records counter
itemsNumber of items scanned from GeminiDB.