Repository navigation
[4.0.0-beta desktop] Docs still describe STORAGE_BACKEND=server fallback but the SDK is gone #258
Description
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.pycomments:/api/couchbase/queryetc. 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:8080Delete 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 lieContext: 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
Fujio-Turner commentedon Sep 15, 2026
Fixed on
release-4.0.0-betavia #263