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

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.1
File Size Uploaded Provenance
onestep_feishu_bitable-0.6.1.tar.gz 69.7 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 109.5 kB

Release files / onestep_feishu_bitable-0.6.1.tar.gz

Download URL onestep_feishu_bitable-0.6.1.tar.gz
Size 69.7 kB
Tags Source
SHA-256 checksum
How to use checksums
72e9e566914225743ca52d7b00ed6e46a958b680e4d271739c41eb33d67b15c9
BLAKE2b-256 checksum
How to use checksums
b05bbdd244edc404db7cf87588d1c2db2c9ccd488938cac4791bc747798e335c
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.1-py3-none-any.whl

Download URL onestep_feishu_bitable-0.6.1-py3-none-any.whl
Size 39.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e7fd1bb829620372a771e491273002446c45d263b054dcfde588ed4b960f3085
BLAKE2b-256 checksum
How to use checksums
c3bfc8e7c99fac5923766ed42d993d7aa58074e4153bea8256952c7e619760f5
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.1

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