Skip to main content

onestep-feishu-bitable

Feishu Bitable connector plugin for onestep.

Install the plugin in the same Python environment as onestep:

pip install onestep-feishu-bitable

Python API:

from onestep_feishu_bitable import FeishuBitableConnector

feishu = FeishuBitableConnector(app_id="cli_xxx", app_secret="secret")
source = feishu.incremental(
    app_token="bascnxxx",
    table_id="tbl_source",
    cursor_field="最后更新时间",
    fallback_scan_page_limit=100,
)

fallback_scan_page_limit caps the unsorted fallback scan used when Feishu rejects cursor sorting. Increase it only for tables where a full fallback scan is acceptable.

YAML resource types registered by the plugin:

  • feishu_bitable
  • feishu_bitable_incremental
  • feishu_bitable_table_sink

Table sinks can resolve business keys into Feishu relation record IDs:

resources:
  projects:
    type: feishu_bitable_table_sink
    connector: feishu
    app_token: project-app-token
    table_id: projects
    mode: upsert
    match_fields: [project_id]
    relations:
      companies:
        from: company_names
        table_id: companies
        key: name
        on_missing: create

The input may contain one business key or a list. Missing related records can fail the send, be omitted, or be created and linked. Set relations.*.cache to lazy or eager to cache key-to-record-ID resolution in the sink instance and cut the repeated search_records calls that cause 429 throttling. See the Feishu Bitable broker documentation for the complete behavior and concurrency limits.

For immutable, insert-only logs, insert_key_index: true preloads one unique match_fields value and removes normal per-row destination searches. It is single-writer only, cannot be combined with relations, retains no record IDs, and waits for each batch member's confirmed outcome before returning from send(). Ambiguous writes are searched by affected key before confirmed misses are recreated. See example/mysql_feishu_insert.yaml.

Because the preloaded index is only a snapshot taken at open(), a key that is reported as already present is confirmed with one exact lookup before it is skipped — otherwise a row deleted upstream after startup would be dropped while the runtime still acknowledged it, losing data permanently. This costs one extra search per pre-existing key that is re-sent; keys this sink writes itself are trusted without a lookup.

Set insert_index_skip_verification: true to restore the original zero-lookup behaviour. Do this only when the destination table is append-only for the whole run (no row is ever deleted or moved): it is the highest-throughput mode, and it accepts that a pre-existing key whose row disappeared is silently skipped.

close_drain_max_rounds (default 1000) bounds the shutdown drain; exceeding it reports a ConnectorOperationError rather than looping. Sending after close() raises a permanent ConnectorOperationError instead of silently buffering into a sink that will never flush again.

Metadata

Release files for onestep-feishu-bitable 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for onestep-feishu-bitable 0.6.0
File Size Uploaded Provenance
onestep_feishu_bitable-0.6.0.tar.gz 67.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for onestep-feishu-bitable 0.6.0
File Interpreter ABI Platform
onestep_feishu_bitable-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 107.1 kB

Release files / onestep_feishu_bitable-0.6.0.tar.gz

Download URL onestep_feishu_bitable-0.6.0.tar.gz
Size 67.9 kB
Tags Source
SHA-256 checksum
How to use checksums
461d3ee19347ac7ef0e9abda98f50a80e7ba3439fea2cf494a3c86c4380b3ff2
BLAKE2b-256 checksum
How to use checksums
e7b2a5b6c45a6791656d9fc559949aa92c3c4e7318d99dbab84f01f716927700
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / onestep_feishu_bitable-0.6.0-py3-none-any.whl

Download URL onestep_feishu_bitable-0.6.0-py3-none-any.whl
Size 39.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
651adc6f01f09daebb4f465a42b8f1449df59f97d88c92bcb082a824d089d0a9
BLAKE2b-256 checksum
How to use checksums
8e8318838cfd35dc0aed35f856542d6f761b0928d7107d196d3ec60d1642761f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for onestep-feishu-bitable 0.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page