dev.nichedb/nichedb

NicheDB

Sources in, feeds out: an open, ever-growing database of real-time public data, enriched.

0.1.0
Version
remote + npm
Transport
27
Tools

Security review

Review passed

Reviewed 23h ago.

  • tools: 27 tools scanned
  • metadata: scanned
  • packages: 1 checked

No findings.

Tools (27)

  • stats

    What this deployment holds: collections, sources, items, items added today, feeds.

  • list_collections

    The collections (niches) with their source, feed and item counts.

  • list_adapters

    Every adapter this deployment can run, with the config fields each takes. Use before add_source.

  • list_enrichers

    Every enricher (YouTube videos, Wikipedia, repo stats, downloads, company profiles, TL;DRs) and which collections turn it on by default. Items carry their results under `enrichment`.

  • list_sources

    Sources with status, last run and item counts. Optionally one collection.

  • list_feeds

    Public feeds, most followed first. Optionally one collection.

  • feed_items

    What a feed selects, newest first. Page with before_id.

  • recent_items

    Newest items, optionally narrowed to a collection, source or kind.

  • upcoming

    Items dated in the future (releases, launches, deadlines), soonest first.

  • search_items

    Full-text search over titles, summaries and tags. Use this first when you know a name.

  • match_items

    Which title, channel or fixture is this name? Give a file name, a release name or a playlist entry ("Top.Gun.Maverick.2022.1080p.mkv", "US: ESPN2 HD"); it is cleaned (year, season and episode, quality tags, playlist decorations) and matched by similarity. A matchup ("NFL: Chiefs vs Bills", "Lakers @ Celtics", "Rangers at Celtic 19:45") is answered by the fixture whose two teams those are, kicking off between 36 hours ago and 7 days ahead unless date narrows it. Each result carries a score in 0..1. Use screen for films and TV, channels for television channels, sports for fixtures.

  • get_item

    One item with its full adapter payload.

  • population

    Population and demography, drilled down from the world to the ZIP code. Give a `key` (us, us-ca, us-ca-los-angeles, gb, gb-england-london), a US `zip`, or a place name in `q`; no argument is the world. Answers with the area (population, year, measures: age, income, home value, rent, poverty, education, unemployment, race and Hispanic origin for the US; growth, age structure, births, deaths, fertility, life expectancy, migration, GDP per head and Gini for countries), how many areas of each level it contains, and the largest of its children at `level` (country, state, city or zip). Sources: World Bank, US Census ACS 5-year, GeoNames.

  • create_feed

    Save a query as a feed (needs a key). Sources, kinds and tags narrow; q is a text match; upcoming keeps only future-dated items.

  • follow_feed

    Follow a feed as the key owner (needs a key). Channels: webpush, email, webhook.

  • submit_feed

    Suggest an RSS or Atom feed for the index. No key needed. An admin reviews every suggestion before anything is fetched; approved podcast feeds are handed to rssamplifier, everything else becomes a source here.

  • search_profiles

    People: one entry per person assembled from every app that serves their OpenProfile.md (podcasters from p0dcasters, public profiles from OutreachGraph). Search by name, headline or anything in the document; newest change first. Each answer carries the page, the openprofile.md URL, accounts, topics, Broadcast shows, the Guest section, and the job title, company and seniority the person published (filter on them with title, company, seniority or tags).

  • find_profile_by_linkedin

    The public profile a LinkedIn profile or company URL belongs to (linkedin.com/in/… or /company/…), or null. LinkedIn only: profiles are never looked up by email.

  • get_profile

    One person by id, `<slug>-<id>` or handle: the parsed view and the OpenProfile.md as served.

  • claim_profile

    Claim a profile as the key owner (needs a key). Proven when the key owner’s email is one the profile lists, or when the person’s site or show page links back to the profile’s nichedb page. An admin may claim on behalf of an email.

  • update_profile

    Edit a profile you own (needs a key). Send `markdown`, a whole OpenProfile.md that replaces what you wrote before, or any of `name`, `headline`, `emoji`, `pronouns`, `web`, `identity` (key: value, null removes), `sections` (name: body, `none` removes), `handle`, `public`. What you write wins over every source and survives every re-read.

  • add_source

    Add a source: an adapter with a config, fetched on a schedule (needs a key; admins and Pro). Call list_adapters first for the fields.

  • run_source

    Fetch a source now instead of waiting for its schedule (needs a key; owner or admin).

  • search_tlds

    Top-level domains: every label in IANA's root, with type, registry, RDAP server and each registrar's one-year register/renew/transfer price (Porkbun, Dynadot, Cloudflare, OVHcloud). Sorted by renewal by default, because the first year is a promotion. `best` is the cheapest USD price across registrars; with `registrar` it is that registrar's own price in its currency. Answers carry facet counts. `trap: true` keeps only labels that renew at 2x the first year or more.

  • get_tld

    One top-level domain: type, registry, RDAP server, when it entered or left the root, every registrar price (register, renew, transfer, restore, promotions, privacy, restrictions) and its change history.

  • tld_changes

    Top-level domains added to or removed from IANA's root, newest first, with the IANA list version each happened in. Nobody else publishes this diff.

  • check_domain

    Is a domain name registered? Asks each registry over RDAP. Give `name` as a full name (foo.watches), or a bare word with `tlds` (foo + com,dev,io), or several names comma separated. Each answer is registered (with registrar and expiry), not_registered, or unknown. not_registered means the registry holds no registration; the name may still be reserved or premium, so it is not a promise that it is for sale. unknown (no RDAP server, a timeout, a 429) is never a yes. Each answer carries the cheapest known USD price for its ending.