Skip to content

[4.0.0-beta desktop] Docs still describe STORAGE_BACKEND=server fallback but the SDK is gone #258

Closed

Description

@Fujio-Turner

PROBLEM

README (and compose comments) still say:

If you run locally without [CBL bindings], the Server Edition falls back to STORAGE_BACKEND=server (external Couchbase Server) automatically.

That is false on release-4.0.0-beta:

  • cbl_store.storage_backend() always returns 'cbl' or raises
  • Dockerfile: "STORAGE_BACKEND is no longer needed — Couchbase Lite is the only supported storage backend. The Couchbase Server SDK has been removed."
  • app_base.py comments: /api/couchbase/query etc. are gone; source data is JSON-upload only

app/docker-compose.yml still sets STORAGE_BACKEND: cbl (ignored).

Operators who follow README and skip CBL think they can point at a cluster; instead every persistence call 500s (see CBL_AVAILABLE issue).

README layout is also stale — it lists app.py, Dockerfile, build_mac.spec, docker-compose.yml at repo root. They all live under app/. python app.py from the root cannot work.

Suggested RCA

Docs were written for a dual-backend design (02_CBL_STORE_MODULE.md era) and not rewritten when the Server SDK was deleted. Compose kept the env var. Root-level file tree in README describes a post-migration layout that was never moved.

Suggested FIX

README Server Edition section:

### Option B — Local Python
cd app
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# CBL bindings are not on PyPI — without them the app starts but
# persistence endpoints return 503. Use Docker for a batteries-included run.
python app.py   # http://localhost:8080

Delete every STORAGE_BACKEND=server sentence. Compose:

environment:
  CBL_DB_DIR: /app/data
  CBL_DB_NAME: cb_tools_db
  PORT: "${PORT:-8080}"

Fix the project-layout tree to prefix app/.

Unit tests

# tests/python/test_docs_storage_backend.py
from pathlib import Path
import cbl_store

def test_storage_backend_is_cbl_only():
    if cbl_store.USE_CBL:
        assert cbl_store.storage_backend() == "cbl"
    else:
        try:
            cbl_store.storage_backend()
            assert False, "should raise when bindings missing"
        except RuntimeError as e:
            assert "Couchbase Lite" in str(e)

def test_readme_does_not_promise_server_fallback():
    readme = Path("README.md").read_text()
    assert "STORAGE_BACKEND=server" not in readme

def test_readme_layout_points_at_app_dir():
    readme = Path("README.md").read_text()
    assert "app/app.py" in readme or "├── app/" in readme
    assert "├── app.py" not in readme  # root-level lie

Context: found on branch release-4.0.0-beta while reviewing standalone macOS .app / Windows .exe packaging. Issues in this batch share the title prefix [4.0.0-beta desktop].

Activity

  1. added
    bugSomething isn't working
    documentationImprovements or additions to documentation
    on Sep 10, 2026
  2. Fujio-Turner commented on Sep 15, 2026

    @Fujio-Turner
    OwnerAuthor

    Fixed on release-4.0.0-beta via #263

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdocumentationImprovements or additions to documentation

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions