greglab
AI LabLive

BCBC Archive

A searchable, read-only home for Bergen County Brew Crew history.

A private, read-only web archive that preserves Bergen County Brew Crew Slack conversations, threads, files, and member context behind Slack sign-in.

Access
Slack members
Mode
Read only
Data
PostgreSQL
First commit
2026-05-07

What it is

BCBC Archive gives club members a durable way to browse and search material that originated in Slack. The public surface is only a Slack OpenID sign-in; archive content remains private to the crew.

A synchronization worker imports channels, messages, replies, files, and workspace identity into PostgreSQL. Incremental runs revisit a recent history window so replies added to older threads are not missed.

The Express and EJS application presents channels, threads, search results, and bounded media layouts without allowing edits back into Slack.

Secrets load from AWS Systems Manager Parameter Store, while authorization uses Slack workspace identity before any archive view is served.

Highlights

  • Read-only searchable archive
  • Thread and file retention
  • Scheduled incremental synchronization

Captured features

Inside the project

Member-only accessThe public surface stops at Slack member sign-in; conversations and files remain private to the Bergen County Brew Crew.
Slack OpenID is the access boundary for the read-only member archive; no private archive data was captured.

Capabilities

Key features

Member-only access

Slack OpenID verifies workspace identity before the private archive is exposed.

Read-only browsing

Members can revisit synchronized channels and threads without the archive mutating the source workspace.

Full-text search

Stored posts and replies can be searched across the retained conversation history.

Thread preservation

Synchronization revisits recent history to capture late replies attached to older parent messages.

File retention

Slack file metadata and locally retained media remain connected to their original message context.

Incremental sync

Scheduled imports advance from durable cursors while a lookback window protects against delayed updates.

Under the hood

How it works

  1. 1A scheduled Slack API sync imports approved workspace history and files into PostgreSQL.
  2. 2Durable cursors make imports incremental, while a recent lookback captures late thread replies.
  3. 3Express and EJS render read-only channel, thread, search, and media views.
  4. 4Slack OpenID gates every archive route before member content is returned.

Recent changes

Full changelog →
  1. Moved secret loading to AWS

    Made Systems Manager Parameter Store the primary secret source.

  2. Documented Slack access scopes

    Clarified the bot and OpenID permissions required by the archive.

  3. Improved archive media display

    Tightened thread layouts and constrained images to the viewport.