Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗A discovery layer for Malaysian official data. A user asks a question in plain words (English, Bahasa Malaysia or both) and the platform points to the right official dataset, report, dashboard or live feed, then sends them to the original source.
The platform holds metadata only. It never copies, generates or displays data values. Every result links to the agency's own page.
harvest/harvest.py datagovmy-meta, BNM, MOH, NAPIC, docs, ... -> registry/registry.json
harvest/verify_links.py checks every page and file URL -> registry/registry.json, registry/link_report.md
harvest/build_app.py registry + app template -> dist/index.html
Python 3 standard library plus curl (BNM and ElectionData reject Python's TLS handshake). Run in this order:
python3 harvest/harvest.py # clones datagovmy-meta and the MOH repos into .cache/ on first run
python3 harvest/verify_links.py # about 1,400 URLs; results cached 12 hours in .cache/
python3 harvest/build_app.py
| Kind | Source | Records |
|---|---|---|
| Dataset | data.gov.my / OpenDOSM / KKMNOW catalogue (data-catalogue/) | 297 |
| Dataset | Bank Negara Malaysia Open API: one record per statistical table, from BNM's own specification (harvest/bnm.py) | 341 |
| Dataset | Ministry of Health open-data repositories covid19-public and data-darah-public on GitHub (harvest/moh.py) | 36 |
| Dataset | ElectionData.MY catalogue, an independent project compiling Election Commission results; always Tier 3 (harvest/electiondata.py) | 202 |
| Dataset | Archive copies in booluckgmie/sharecode (APIMS air pollutant index, GSO electricity generation, Sabah job portal, NAPIC 2022 property tables, MPOB palm oil prices, Bursa PN17/GN3); allowlisted folders only, always Tier 3 (harvest/sharecode.py) | 7 |
| Dataset | Toll sources (harvest/tolls.py): LLM's directories of 33 operating and 3 under-construction highways, read directly from llm.gov.my | 2 |
| Dashboard / Dataset | Toll rate lookup (kadartol.llm.gov.my) and two old data.gov.my toll datasets: identified through web search only, not read, flagged unreachable | 3 |
| Report series | NAPIC (JPPH) property publications: 14 series across market, stock, status and price/rental indices, read from napic.jpph.gov.my (harvest/napic.py) | 14 |
| Dashboard | NAPIC open transaction data, an embedded Tableau Public dashboard | 1 |
| Dataset / Report series | MPOB public pages (harvest/mpob.py): daily CPO price (rolling 3 years, Excel per year), the latest monthly industry performance report and year summary, and the annual Overview of the Malaysian Oil Palm Industry (10 PDFs, 2016 to 2025) | 4 |
| Report series | DOSM publications (pub-dosm/), editions grouped into series, with technical notes attached | 94 |
| Report series | DOSM release archive (harvest/dosm_archive.py): edition history back to 2014 added to 8 labour and wage series (Salaries & Wages 15 editions, Labour Force 194), plus a new series, Job Vacancies Advertised Online | 1 new |
| Dashboard | portal dashboards and explorers (dashboards/, explorers/) | 56 |
| Live feed | DOE APIMS public API: hourly Air Pollutant Index by station, last 24 hours (harvest/doe.py) | 1 |
| Live feed | data.gov.my realtime APIs read from the developer docs: weather forecast, weather and earthquake warnings, flood warning, GTFS static and realtime for KTMB, Prasarana and BAS.MY (harvest/devdocs.py) | 10 |
| API | data.gov.my static query APIs from the same docs: the Data Catalogue API and the OpenDOSM API | 2 |
Of these, 66 are withheld from the page: 6 dashboards whose portal page is gone, and 60 BNM tables that the agency lists but whose endpoint returns no records.
See registry/SCHEMA.md for the record format and registry/tiers.json for the provisional reliability tiers.
api.data.gov.my allows 4 requests per minute per API, so the pipeline spaces and caches its calls to it, and checks one endpoint per API record.registry/link_report.md. A network error never hides a record./api/chalice-search/...): not called. JobStreet's terms say "You may not use data mining, robots, screen scraping, or similar automated data gathering, extraction or publication tools on our websites and apps", and its robots.txt disallows its job search API paths. The endpoint is undocumented and the pasted URL carried personal user and session ids, which are deliberately not stored here. DOSM's Job Vacancies Advertised Online (built from job ads on major private recruitment platforms) is the official source.| What | Pattern |
|---|---|
| Daily CPO price, table | /admin2/price_local_daily_view_cpo_msia.php?more=Y&jenis={1W,1M,3M,6M,1Y}[&tahun=YYYY] |
| Daily CPO price, chart | /admin2/chart_cpomsia.php?jenis={1W,1M,3M,6M,1Y}&tahun=YYYY |
| Daily CPO price, Excel | /admin2/price_local_daily_view_cpo_msia_excel.php?val=YYYY&excel=Y |
| Monthly performance report | /stat/web_report1.php?val=<id>&val1=<MM>: latest month only; <id> cannot be derived for other months |
| Annual overview | /images/overview/Overview_of_Industry_YYYY.pdf (2016 to 2020), Overview{YYYY}.pdf (2021 on) |
Daily is the finest granularity published. Only the last three years answer (2024 to 2026 when checked); earlier years return an empty file. price.mpob.gov.my and the export duties page need a login and are not touched.
archive/)The registry holds metadata only. archive/ is a separate, deliberate exception: preserved copies of source files that an official site stops serving, so the history survives. The registry still sends users to the official page first.
archive/mpob/cpo_daily_YYYY.csv: MPOB's daily crude palm oil price, one tidy file per year, columns date, price_rm_per_tonne, status where status is price, public_holiday, no_trade or pending. MPOB serves only the last three years, so each year is saved while it is still available and never deleted afterwards. 2023 was imported from an earlier scrape of the MPOB price pages; 2024 to 2026 come straight from MPOB's Excel export. The parser was checked against that independent scrape (0 differences over 628 days). Future public holidays and weekends in the current year are listed by MPOB in advance and appear with their status and no price.harvest/archive_mpob.py does the download and parsing. It rewrites a file only when the parsed content changes (the Excel files embed a new timestamp on every download)..github/workflows/archive-mpob.yml runs it every Monday and can be started by hand. It has not yet run on GitHub: the first run needs the Actions tab, and GitHub runs scheduled workflows from the default branch only.sharecode adapter is an allowlist. That repository also holds personal, employer and research files, which are never read. Weather (Open-Meteo, not official), data_oku (origin undocumented) and SARA2025 (third-party platform, business addresses) are left out on purpose.emisonline.moe.gov.my/risalahmap/) resets the TLS handshake and www.moe.gov.my returns 403. Run the pipeline from another network, or add the host to the environment's allowed domains and retry.kadartol.llm.gov.my) and the old data.gov.my toll datasets could not be read from the harvesting environment (503, connection reset, and a firewall 403). They are indexed as pointers from search results, marked unverified, and no rate values are stored. Rerun from another network to read them./year/{year}) cannot be link-checked beyond their portal page.frequency_inferred.devdocs DRIFT when they differ. Titles and descriptions are written in the adapter, not taken from the docs.data-catalogue/openapi/ carry no titles and mostly duplicate catalogue datasets, so they are not indexed.The page loads Vercel's cookie-free analytics script (/_vercel/insights/script.js, served only on Vercel once Web Analytics is enabled for the project). It sends no search text and no custom events. The "Site usage" section shows aggregate visitors, pageviews, daily trend, top pages, countries, devices and referrers from app/analytics.json, a snapshot taken at build time. Refresh it with VERCEL_TOKEN=... python3 tools/fetch_analytics.py, rebuild, and commit. Hobby plans keep 31 days of data.
talentcorp.com.my, 66 occupations) and earlier editions back to 2015/2016. It carries no salary figures; it scores shortage using vacancy and wage-premium indicators. It does list a data scientist and analyst occupation as in shortage, with respondents reporting vacancies mostly at junior level (1 to 3 years). It is useful as demand evidence, not as a pay source. No LinkedIn-published Malaysia salary report was found; LinkedIn's talent insights are not public.pnb.com.my, 49 pages) analyses the MEF Salary Survey, which MEF sells. It shows its series as charts, so the numbers are not in the PDF text and were not extracted from images. It is a third-party analysis of private-sector members only.belanjawan.mof.gov.my/pdf/belanjawan2026/sp/LAMPIRAN-A.pdf, 3 pages) lists minimum and maximum monthly pay for every public-sector grade under SSPA. It covers public-service posts only and is by grade, not job title. The 2017 data.gov.my dataset "Minimum and Maximum Median Monthly Basic Salary by MSIC and MASCO" is on archive.data.gov.my, which this environment cannot reach. Lampiran A is extracted to data/mof/sspa_pay_scales/2026; the 2017 dataset is not.