TDX Member Data Access
Purpose and session gate
Use this skill only when the current TDX tab visibly shows an authenticated member session, such as 會員中心, 登出, and the auto-logout countdown. The main routes are:
/user/dataservice/key— API/MQTT access keys and key guidance./user/dataservice/access— enabled and approval-required service families./user/dataservice/statistics— per-key usage statistics./user/apply/history— historical/ticket application records and file status./user/apply/cart— pending application list./user/memberService/manage— current subscription and points overview./user/memberService/getEditAuth— password-protected account branch.
Load member-workflows.md when the user needs field semantics, statuses, or a safe stopping boundary.
Procedure
- Confirm the visible authenticated state and preserve the current session. If the tab is not visibly authenticated, finish any public task first and ask the user to sign in manually in this same tab; do not enter passwords.
- Choose the route that matches the user's intent. Prefer the page's visible navigation or a route already confirmed in the site map/sidebar; do not guess account URLs.
- After each navigation, visually verify the same tab and confirm the page heading, selected controls, URL, and result state. An empty table means no visible records, not that the feature does not exist.
- Re-fetch current account values, enabled services, statistics, application statuses, points, and dates at task time. Never persist live identifiers, Client Secrets, passwords, private records, or current counts in instructions.
- Stop before any irreversible or representational boundary: creating/deleting keys, applying for access, submitting a form, purchasing/upgrading, downloading a user-specific file, changing account settings, or entering a password.
Workflows
Inspect API/MQTT keys
- Open
/user/dataservice/keyand readAPI金鑰使用說明andMQTT金鑰使用說明before interpreting a key row. - API keys consist of Client Id and Client Secret and use OIDC Client Credential authentication. The page states that each member may create at most three API keys; subscription level controls call frequency.
- MQTT uses ClientId, account, and password to authenticate and then subscribes to topic names. Treat these as sensitive credentials.
- Record only non-secret properties needed by the user: key type, masked identifier presence, creation/status labels, and the route for
查詢用量. Do not click刪除or change管理state during inspection.
Inspect service access
- Open
/user/dataservice/access. - Separate
免審核提供資料from需審核提供資料. The page shows enabled families such as basic, advanced, premium, historical, tourism, weather, and MaaS, and approval-gated families such as ticket, GTFS Beta, booking/dispatch integrations, and shipping. - For each family, verify the current status and the visible
申請使用服務or查詢服務使用歷程action. Do not submit an application as part of a read-only task.
Inspect usage statistics
- Open
/user/dataservice/statistics. - Use the
金鑰名稱selector to choose all keys or one key. Use the月,季, or年period buttons, then verify the year/month/quarter inputs and press查詢only when the user requests a query. - Report the selected period and key scope with the result. A visible
無資料state is a valid result; do not replace it with public statistics.
Inspect historical applications
- Open
/user/apply/historyand read the page's rules before interpreting a row. - Use the status filter only for a user-requested read-only lookup. Durable status meanings include
候隊審核,資料準備中,產製完成,產製失敗,已購買,資料逾期,申請退回, and自行取消. - The table can show item, application time, data interval, production progress, file size, estimated points, status, and management controls. Keep current rows out of durable guidance.
- Historical files may be produced asynchronously and the site says completion is notified by email. Purchased historical/ticket files are available for 30 days from production completion; do not copy a download password or click a download unless the user explicitly requests that specific file action.
Inspect cart and subscription
/user/apply/cartlists selected services, data intervals, and management controls. An empty table is a normal state. Do not submit or remove items./user/memberService/manageshows the current plan, next-cycle plan, discounts, and points usage. Treat all amounts, dates, and points as dynamic. Do not click payment, upgrade, renewal, or reduction controls./user/memberService/getEditAuthis a password gate for account details. Stop at the prompt and hand the password entry back to the user.
Safety and privacy
- Never record or reveal passwords, API Client Secrets, full Client Ids, email addresses, private account records, download passwords, or user-specific files.
- Login state does not authorize purchases, submissions, access requests, deletion, password entry, or account changes. Confirm at action time for any such operation.
- Keep public and authenticated observations separate. A route can show a different page after login, as
/data-service/gtfsdid during exploration; re-check the authenticated variant instead of copying public assumptions. - Do not sign out or let an idle session expire intentionally. If the countdown is near expiry, stop and ask the user to take over.
Drift maintenance
Before acting, compare the current visible authenticated UI, route, labels, controls, permissions, and first-party explanations with this procedure. If a stable behavior differs, safely complete only the requested read-only portion, record the old/new behavior, page variant, route, verification evidence, and date, and patch this skill or its reference when the change is clear. Never store dynamic values or secrets. Re-run the affected safe workflow and quick_validate.py; report ambiguous or broad changes instead of guessing.
References
- member-workflows.md — route matrix, field semantics, status meanings, and confirmation boundaries.