=============== LIBRARY RULES =============== From library maintainers: - Use only public Docusaurus docs pages; do not expose internal agent, planning, incident, TODO, or governance execution records. - Treat zh-CN docs under docs/ as the source of truth and /en pages as maintained English mirrors. - Prefer stable user-facing pages, OpenAPI guides, MCP guides, deployment docs, FAQ, and changelog entries for answers. ### SMTP Service Configuration Example Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Example configuration for the .env file to set up SMTP service for sending emails. This example uses QQ Enterprise Mail settings. ```env SMTP_ADMIN_EMAIL=your_account@yourcompany.com SMTP_HOST=smtp.exmail.qq.com SMTP_PORT=465 SMTP_USER=your_account@yourcompany.com SMTP_PASS=your_password_or_auth_code SMTP_SENDER_NAME=your_account@yourcompany.com ``` -------------------------------- ### Install Node.js and Dependencies Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/dev/dev-env.md Installs Node.js version 24 using nvm, sets it as the default, and then installs project dependencies using npm ci. Ensure nvm is installed first. ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash nvm install 24 nvm alias default 24 nvm use 24 npm ci ``` -------------------------------- ### Install and Run CLI Globally Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/integration/cli.md Install the TianGong LCA CLI globally for easy access from any directory. This allows direct invocation of `tiangong-lca` commands. ```bash npm install --global @tiangong-lca/cli tiangong-lca --help tiangong-lca doctor ``` -------------------------------- ### Start All Services and View Logs Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Starts all Docker services and displays their logs in the current terminal session. ```bash docker compose up ``` -------------------------------- ### Example Base URL for Cloud Service Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/openapi/tidas-package-import.md This is the example base URL for the current TianGong LCA cloud service. ```text https://qgzvkongdjqiiamzbbts.supabase.co/functions/v1 ``` -------------------------------- ### Start Services with Docker Compose Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Start all necessary services for the TianGong LCA application and its Supabase backend using Docker Compose. This command runs in detached mode. ```bash # 启动所有服务 docker compose up -d ``` -------------------------------- ### Example Response for Prepare Upload Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/openapi/tidas-package-import.md This is an example JSON response after preparing to upload a TIDAS package. It includes job IDs, artifact IDs, and direct upload details. ```json { "ok": true, "action": "prepare_upload", "job_id": "4a56e7b2-8f18-4f0f-a6b4-cf40f343d8b8", "source_artifact_id": "9ad0da68-3933-4f7b-a3cb-a494b70ec0a2", "artifact_url": "https://example.supabase.co/storage/v1/object/sign/tidas/import/example-package.zip", "upload": { "bucket": "tidas", "object_path": "imports/example-package.zip", "path": "imports/example-package.zip", "token": "signed-upload-token", "signed_url": "https://example.supabase.co/storage/v1/upload/resumable", "expires_in_seconds": 300, "filename": "example-package.zip", "byte_size": 123456, "content_type": "application/zip" } } ``` -------------------------------- ### Start Local Development Server Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/dev/dev-env.md Runs the Docusaurus development server to preview the documentation site locally. The site is typically accessible at http://localhost:3000/. ```bash npm run start ``` -------------------------------- ### Configure Environment Variables Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Copy the example environment file and edit it to set up your configuration. Key variables include database passwords, JWT secrets, Supabase authentication keys, dashboard credentials, and SMTP settings for email authentication. ```bash cd docker cp .env.example .env ``` -------------------------------- ### Restore PostgreSQL Logical Backup Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Stop services, reset the database volume, start the database service, wait for it to be ready, and then restore from the SQL backup file. Finally, start all services. ```bash # 停止服务 docker compose down # 重置数据库卷 rm -rf ./volumes/db/data # 启动数据库服务 docker compose up -d db # 等待数据库准备就绪 sleep 10 # 从备份文件恢复 cat your_backup_file.sql | docker exec -i supabase-db psql -U postgres # 启动所有服务 docker compose up -d ``` -------------------------------- ### Run Latest CLI Version Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/integration/cli.md Execute the latest version of the TianGong LCA CLI without a global installation. Useful for quick, one-off commands. ```bash npm exec --yes --package=@tiangong-lca/cli@latest -- tiangong-lca --help npm exec --yes --package=@tiangong-lca/cli@latest -- tiangong-lca doctor ``` -------------------------------- ### Dify MCP Tool Configuration Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/MCP/lca_remote.md Configuration example for the MCP tool within Dify. Ensure to replace 'XXX' with your actual Access token or API Key. ```JSON { "tiangong_lca_remote": { "transport": "streamable_http", "url": "https://lcamcp.tiangong.earth/mcp", "headers": { "Accept": "application/json,text/event-stream", "Authorization": "Bearer XXX" }, "timeout": 50, "sse_read_timeout": 50 } } ``` -------------------------------- ### Launch MCP Inspector Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/MCP/lca_remote.md Use this command to start the MCP Inspector in your terminal. It automatically navigates to the Inspector page. ```bash npx @modelcontextprotocol/inspector ``` -------------------------------- ### Configure Brand Environment Variables Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Create a .env file from .env.example and set environment variables for light/dark primary colors and logos. ```bash APP_LIGHT_PRIMARY='#5C246A' APP_DARK_PRIMARY='#9e3ffd' APP_LIGHT_LOGO=/logo.svg APP_DARK_LOGO=/logo_dark.svg ``` -------------------------------- ### Start All Services in Background Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Use this command to start all Docker services in detached mode, running them in the background. ```bash docker compose up -d ``` -------------------------------- ### Serve Built Site Locally Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/dev/dev-env.md Serves the production build of the documentation site locally for testing. ```bash npm run serve ``` -------------------------------- ### Build Production Documentation Site Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/dev/dev-env.md Creates a production-ready build of the Docusaurus site, including running the `docs:llms` command as a prebuild step. ```bash npm run build ``` -------------------------------- ### Access Full Command Help Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/integration/cli.md Display detailed help information for specific TianGong LCA CLI modules. Use this to understand all available parameters and options for a given command. ```bash tiangong-lca flow --help tiangong-lca process --help tiangong-lca lifecyclemodel --help tiangong-lca review --help ``` -------------------------------- ### Restart All Services Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Restarts all Docker services. This command stops and then starts all services defined in the compose file. ```bash docker compose restart ``` -------------------------------- ### Supabase Dashboard Credentials Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Example of Supabase dashboard login credentials. It is recommended to update the default password for security. ```bash DASHBOARD_USERNAME=supabase DASHBOARD_PASSWORD=this_password_is_insecure_and_should_be_updated ``` -------------------------------- ### Check All Service Logs Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md View logs for all running services to diagnose startup issues or other problems. ```bash docker compose logs ``` -------------------------------- ### Configure Layout and Title Environment Variables Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Set environment variables in the .env file to customize the application layout, Chinese and English titles, and login subtitle. ```bash APP_LAYOUT=mix APP_TITLE_ZH_CN='天工生命周期数据平台' APP_TITLE_EN_US='TianGong LCA Data Platform' APP_LOGIN_SUBTITLE_ZH_CN='全球最大的开放生命周期数据平台' APP_LOGIN_SUBTITLE_EN_US="World's Largest Open LCA Data Platform" ``` -------------------------------- ### Get TIDAS Package Import Job Status Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/openapi/tidas-package-import.md Polls for the status and report of a TIDAS package import job. This is the fourth step in the import flow. ```APIDOC ## GET /tidas_package_jobs/{job_id} ### Description Polls for the status and report of a TIDAS package import job. This is the fourth step in the import flow. ### Method GET ### Endpoint /tidas_package_jobs/{job_id} ### Parameters #### Path Parameters - **job_id** (string) - Required - The ID of the import job to retrieve status for. ### Response #### Success Response (200) - **status** (string) - The current status of the import job (e.g., PENDING, PROCESSING, COMPLETED, FAILED). - **report** (object) - An object containing details about the import results, including validation failures, filtered data, and conflicts. ``` -------------------------------- ### Configure MCP Server Connection in Dify Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/MCP/lca_local.md This JSON configuration is used within Dify to set up a connection to a local MCP server. Ensure the URL and transport type match your local setup. ```json { "tiangong_lca_local": { "transport": "streamable_http", "url": "http://host.docker.internal:9278/mcp", "headers": { "Accept": "application/json,text/event-stream" }, "timeout": 50, "sse_read_timeout": 50 } } ``` -------------------------------- ### 配置GLAD数据集查询环境变量 Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/MCP/lca_local.md 在启动MCP Server前配置GLAD API密钥和基础URL,以便在MCP工具中查询GLAD数据集。请勿将密钥写入公开文档。 ```bash GLAD_API_KEY=your-glad-api-key GLAD_API_BASE_URL=https://www.globallcadataaccess.org/api/v1 ``` -------------------------------- ### Restore PostgreSQL Logical Backup Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/deploy/local-deploy.md Restore the PostgreSQL database from a logical backup file. This process involves stopping services, resetting the database volume, starting the database, and then importing the backup using psql. ```bash # Stop the services docker compose down # Reset the database volume rm -rf ./volumes/db/data # Start the database service docker compose up -d db # Wait for the database to be ready sleep 10 # Restore from backup cat your_backup_file.sql | docker exec -i supabase-db psql -U postgres # Start all services docker compose up -d ``` -------------------------------- ### Create Volume Snapshot for Backup Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Stop services, create a compressed archive of the volumes directory, and then restart services. This method is recommended for backing up all data, including Postgres, Supabase Storage, and Redis. ```bash cd docker docker compose down tar -czf tiangong_volumes_snapshot_$(date +%Y-%m-%d_%H-%M-%S).tar.gz volumes docker compose up -d ``` -------------------------------- ### Prepare Upload Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/openapi/tidas-package-import.md Initiates the package import process by preparing for file upload. This endpoint returns necessary information for the subsequent upload, including a signed URL and artifact details. ```APIDOC ## POST /import_tidas_package ### Description Prepares for uploading a Tidas package. This endpoint generates a signed URL and provides artifact details required for the upload process. ### Method POST ### Endpoint /import_tidas_package ### Parameters #### Request Body - **action** (string) - Required - Must be "prepare_upload" - **filename** (string) - Required - The name of the file to be uploaded (e.g., "example-package.zip"). - **byte_size** (integer) - Required - The size of the file in bytes. - **content_type** (string) - Required - The MIME type of the file (e.g., "application/zip"). ### Request Example ```json { "action": "prepare_upload", "filename": "example-package.zip", "byte_size": 123456, "content_type": "application/zip" } ``` ### Response #### Success Response (200) - **ok** (boolean) - Indicates if the request was successful. - **action** (string) - The action performed, should be "prepare_upload". - **job_id** (string) - The ID of the asynchronous job, used for polling. - **source_artifact_id** (string) - The ID of the source artifact, required for the "enqueue" call. - **artifact_url** (string) - A URL related to the artifact. - **upload** (object) - Contains details for the upload process: - **bucket** (string) - The storage bucket name. - **object_path** (string) - The path within the bucket for the object. - **path** (string) - Alias for object_path. - **token** (string) - A token required for SDK uploads. - **signed_url** (string) - The direct URL for uploading the file. - **expires_in_seconds** (integer) - The expiration time of the signed URL in seconds. - **filename** (string) - The name of the file being uploaded. - **byte_size** (integer) - The size of the file in bytes. - **content_type** (string) - The MIME type of the file. #### Response Example ```json { "ok": true, "action": "prepare_upload", "job_id": "4a56e7b2-8f18-4f0f-a6b4-cf40f343d8b8", "source_artifact_id": "9ad0da68-3933-4f7b-a3cb-a494b70ec0a2", "artifact_url": "https://example.supabase.co/storage/v1/object/sign/tidas/import/example-package.zip", "upload": { "bucket": "tidas", "object_path": "imports/example-package.zip", "path": "imports/example-package.zip", "token": "signed-upload-token", "signed_url": "https://example.supabase.co/storage/v1/upload/resumable", "expires_in_seconds": 300, "filename": "example-package.zip", "byte_size": 123456, "content_type": "application/zip" } } ``` ``` -------------------------------- ### Poll TIDAS Package Job Status Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/openapi/tidas-package-import.md Retrieve the status of a TIDAS package import job using a GET request to the /tidas_package_jobs endpoint, providing the job ID. The response contains the job status and artifact details. ```bash curl -i --location --request GET "${BASE_URL}/tidas_package_jobs/" \ --header "Authorization: Bearer ${USER_API_KEY}" ``` -------------------------------- ### Follow All Logs in Real-time Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Continuously stream logs from all services to monitor activity and diagnose issues as they occur. ```bash # 查看所有日志信息 docker compose logs -f ``` -------------------------------- ### Run Lint and Build Commands Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/dev/docs-product-sync.md After completing public documentation modifications, at least run the lint and build commands to ensure code quality and site integrity. ```bash npm run lint npm run build ``` -------------------------------- ### Create Volume Snapshot for Backup Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/deploy/local-deploy.md Create a compressed archive of the volumes directory to back up your local database and storage data. Ensure all containers are stopped before creating the snapshot to prevent data corruption. ```bash cd docker docker compose down tar -czf tiangong_volumes_snapshot_$(date +%Y-%m-%d_%H-%M-%S).tar.gz volumes docker compose up -d ``` -------------------------------- ### Create PostgreSQL Logical Backup Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/deploy/local-deploy.md Create a logical backup of the PostgreSQL database using pg_dumpall. This backup is saved as a SQL file. ```bash # Create a backup of the PostgreSQL database docker exec -t supabase-db pg_dumpall -c -U postgres > backup_$(date +%Y-%m-%d_%H-%M-%S).sql ``` -------------------------------- ### Clone the Repository Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Clone the TianGong LCA Next.js repository to your local machine. Ensure you replace the placeholder URL with your actual repository URL. ```bash TODO: 将仓库 URL 替换为你自己的 git clone https://github.com/linancn/tiangong-lca-next.git cd tiangong-lca-next ``` -------------------------------- ### Node.js版本安装与使用 Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/MCP/lca_local.md 使用nvm安装和配置特定版本的Node.js。首先安装Node.js版本22,然后将其设置为当前使用的版本。 ```bash nvm install 22 nvm use 22 ``` -------------------------------- ### Create PostgreSQL Logical Backup Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Use `pg_dumpall` to create a SQL backup of the PostgreSQL database. This is an alternative to volume snapshots. ```bash # 创建 PostgreSQL 数据库备份 docker exec -t supabase-db pg_dumpall -c -U postgres > backup_$(date +%Y-%m-%d_%H-%M-%S).sql ``` -------------------------------- ### Prepare Upload Request Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/openapi/tidas-package-import.md Initiates the TIDAS package import process by preparing for file upload. Include an idempotency key for retries. Requires API Key for authentication. ```bash curl -i --location --request POST "${BASE_URL}/import_tidas_package" \ --header 'Content-Type: application/json' \ --header "Authorization: Bearer ${USER_API_KEY}" \ --header 'X-Idempotency-Key: tidas-import-prepare-001' \ --data '{ \ "action": "prepare_upload", \ "filename": "example-package.zip", \ "byte_size": 123456, \ "content_type": "application/zip" \ }' ``` -------------------------------- ### Upload ZIP File using Supabase Storage SDK Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/openapi/tidas-package-import.md Alternatively, use the Supabase Storage SDK with the bucket, path, and token from the 'prepare_upload' response to upload the file. ```typescript const { error } = await supabase.storage .from(upload.bucket) .uploadToSignedUrl(upload.path, upload.token, file, { contentType: upload.content_type, upsert: true, }); ``` -------------------------------- ### Prepare Upload Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/openapi/tidas-package-import.md Initiates the TIDAS package import process by preparing for file upload. This step requires the filename, size, and content type of the ZIP package. It returns a job ID, artifact ID, and a signed URL for uploading the file. ```APIDOC ## POST /import_tidas_package (action=prepare_upload) ### Description Prepares for uploading a TIDAS ZIP package by generating a signed URL and providing necessary identifiers for the import job. ### Method POST ### Endpoint /import_tidas_package ### Parameters #### Query Parameters - **action** (string) - Required - Must be set to `prepare_upload`. #### Request Body - **filename** (string) - Required - The name of the ZIP file to be imported. - **byte_size** (integer) - Required - The size of the ZIP file in bytes. - **content_type** (string) - Required - The MIME type of the file, typically `application/zip`. ### Request Example ```json { "action": "prepare_upload", "filename": "example-package.zip", "byte_size": 123456, "content_type": "application/zip" } ``` ### Response #### Success Response (200) - **ok** (boolean) - Indicates if the request was successful. - **action** (string) - The action performed, will be `prepare_upload`. - **job_id** (string) - The unique identifier for the import job. - **source_artifact_id** (string) - The identifier for the source artifact, used in subsequent steps. - **artifact_url** (string) - A URL related to the artifact. - **upload** (object) - Contains details for uploading the file: - **bucket** (string) - The storage bucket name. - **object_path** (string) - The path within the bucket for the object. - **path** (string) - The path for the object. - **token** (string) - An upload token. - **signed_url** (string) - The URL to use for uploading the file content. - **expires_in_seconds** (integer) - The expiration time for the signed URL in seconds. - **filename** (string) - The name of the file being uploaded. - **byte_size** (integer) - The size of the file in bytes. - **content_type** (string) - The content type of the file. #### Response Example ```json { "ok": true, "action": "prepare_upload", "job_id": "4a56e7b2-8f18-4f0f-a6b4-cf40f343d8b8", "source_artifact_id": "9ad0da68-3933-4f7b-a3cb-a494b70ec0a2", "artifact_url": "https://example.supabase.co/storage/v1/object/sign/tidas/import/example-package.zip", "upload": { "bucket": "tidas", "object_path": "imports/example-package.zip", "path": "imports/example-package.zip", "token": "signed-upload-token", "signed_url": "https://example.supabase.co/storage/v1/upload/resumable", "expires_in_seconds": 300, "filename": "example-package.zip", "byte_size": 123456, "content_type": "application/zip" } } ``` ``` -------------------------------- ### Follow Specific Service Logs in Real-time Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Continuously stream logs from a specific service (e.g., 'app', 'db', 'auth') to monitor its activity. ```bash # 查看指定服务的日志 docker compose logs -f app docker compose logs -f db docker compose logs -f auth ``` -------------------------------- ### 启动MCP-Server Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/MCP/lca_local.md 使用npx命令启动本地MCP-Server。此命令会运行一个HTTP服务,用于与MCP进行通信。 ```bash npx -p @tiangong-lca/mcp-server tiangong-lca-mcp-http-local ``` -------------------------------- ### Tagging and Pushing for Release Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/dev/dev-env.md Commands to create a Git tag for a release and push it to the origin repository, triggering the release publishing workflow. ```bash git tag git tag v0.0.1 git push origin v0.0.1 ``` -------------------------------- ### Connect to Postgres (Session-based) Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md Connect to the PostgreSQL database using a session-based connection string. This is equivalent to a direct connection to the database. ```bash psql 'postgres://postgres.your-tenant-id:your-super-secret-and-long-postgres-password@localhost:5432/postgres' ``` -------------------------------- ### Dry Run Publish Ruleset Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/integration/cli.md Simulate a publish step to review the results of publish rulesets before a real write or publish action. This command helps in verifying the publish configuration and potential outcomes without affecting live data. ```bash tiangong-lca publish run --input ./publish-request.json --dry-run --json ``` -------------------------------- ### 安装MCP-Server Package Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/MCP/lca_local.md 全局安装指定版本的MCP-Server package。请确保已正确安装和配置Node.js和npm。 ```bash npm install -g @tiangong-lca/mcp-server@0.0.14 ``` -------------------------------- ### Check Specific Service Logs Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/docs/deploy/local-deploy.md View logs for a particular service (e.g., 'app', 'db') to pinpoint errors. ```bash docker compose logs app docker compose logs db ``` -------------------------------- ### Prepare TIDAS Package Upload Source: https://github.com/linancn/tiangong-lca-next-docs/blob/main/i18n/en/docusaurus-plugin-content-docs/current/openapi/tidas-package-import.md Use this cURL command to prepare for uploading a TIDAS package. It requires the filename, size, and content type. The response provides essential IDs and upload URLs. ```bash curl -i --location --request POST "${BASE_URL}/import_tidas_package" \ --header 'Content-Type: application/json' \ --header "Authorization: Bearer ${USER_API_KEY}" \ --header 'X-Idempotency-Key: tidas-import-prepare-001' \ --data '{ \ "action": "prepare_upload", \ "filename": "example-package.zip", \ "byte_size": 123456, \ "content_type": "application/zip" \ }' ```