Skip to content

Update storage addon development guide#18

Open
chiku-samugari wants to merge 2 commits into
RCOSDP:masterfrom
chiku-samugari:feature/storage-addon-development-guide
Open

Update storage addon development guide#18
chiku-samugari wants to merge 2 commits into
RCOSDP:masterfrom
chiku-samugari:feature/storage-addon-development-guide

Conversation

@chiku-samugari

Copy link
Copy Markdown

ストレージアドオンの開発ガイドを更新します。

バックエンドにGravyValetが追加され、Webフロントエンドがangular-osfに置き換わった現在のOSFでのストレージアドオン開発のためのローカル環境の構築と、その環境を利用したストレージアドオン開発の手順を説明する内容に更新しました。

chiku-samugari and others added 2 commits July 12, 2026 04:49
…tion

Rewrite the storage addon developer guide for the latest construction,
whose backend is the upstream osf.io + GravyValet + WaterButler and
whose frontend is angular-osf.

StorageAddon/README.md:
- Add a "開発環境の準備" (development environment) section: run osf.io /
  GravyValet / WaterButler as independent Docker Compose projects and
  angular-osf via `ng serve`, unified behind a single-origin Caddy
  reverse proxy on http://localhost. All local changes live in override
  files; the upstream sources stay untouched. Covers per-service setup,
  the bring-up order, and health checks.
- Describe a storage addon as a standalone plugin (triplet: osf.io addon
  + GravyValet foreign addon imp + WaterButler provider), installed via
  pip/poetry as normal Python packages instead of being embedded in the
  osf.io / GravyValet / WaterButler codebases.
- Add the GravyValet addon imp section (ForeignAddonImpConfig, the imp /
  addon_imp_name properties, the unique app label, build_wb_config).
- Update the osf.io addon part (proxy models + TypedModelRejoinMixin,
  AppConfig, getattr-based settings, migration stripping), document the
  identifier coupling rule (short_name / _provider / addon_imp_name /
  wb_key / WaterButler entry point), and the credential/settings
  delegation flow:
    osf.io -> GravyValet -> WaterButler
- Drop RDM/ember-only content (mako templates, *-cfg.js, Fangorn, JS
  i18n, storageAddons.json, RDM timestamp); the UI is provided by
  angular-osf and GravyValet.
- Switch the running example from "My MinIO" to NextCloud, with
  clickable links to the `nextcloud_plugin` repository.
- Update install/verification steps (addons.json short_name,
  ADDONS_FOLDER_CONFIGURABLE, GravyValet ADDON_IMPS, wb_key; NextCloud
  Docker walkthrough), and add a screenshot of the NextCloud
  ExternalStorageService setup in the GravyValet admin.

Figures (StorageAddon/images/):
- Add Mermaid sources + rendered PNGs and embed three figures: the
  single-origin proxy routing (proxy-routing), the triplet install
  (architecture), and the credential/settings delegation (delegation),
  rendered on a white background so they stay legible in GitHub dark
  mode. Also add a naming/identifier diagram source (naming); the
  identifier relationships themselves are given in-text as a table.
- Remove the superseded RDM UML diagrams (osf_class, wb_class, crud).

Remove the orphaned RDM-osf.io "My MinIO" example sources under
StorageAddon/osf.io/ and StorageAddon/waterbutler/ (43 files), no longer
referenced after the rewrite.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… guide

Add a「新規ユーザの登録(サインアップ)とメール確認」subsection to
「開発環境の準備」covering the three things that must line up for local
sign-up email confirmation to work on the single-origin stack:

- enable_mailhog waffle switch — otherwise the send takes the SendGrid
  path, raises (no local API key), and the request transaction rolls back,
  so the unconfirmed user is never created (HTTP 500).
- populate_notification_types seeding — otherwise the NotificationType
  rows have empty templates, yielding an empty body / Subject: None. Also
  document the 2h ttl_cached_property cache on NotificationTypeEnum.*.instance
  that requires restarting the osf.io app containers after seeding.
- Caddy /confirm route — add /confirm /confirm/* to the @Flask matcher so
  the confirmation link reaches osf.io Flask (:5000) instead of falling
  through to the angular SPA (which resolves it as /v2/guids/confirm/ -> 404).
- Add mailhog to the backend startup command in 起動手順のまとめ.
- Note that features.yaml is the one tracked file edited (for the sign-up
  switch defaults), unlike the other override-only files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant