Skip to content

chore(workspace): track the fess-storage-* and fess-sso-* plugin repositories - #35

Merged
marevol merged 1 commit into
mainfrom
chore/track-storage-sso-plugin-repos
Sep 10, 2026
Merged

marevol merged 1 commit into
mainfrom
chore/track-storage-sso-plugin-repos

Conversation

@marevol

@marevol marevol commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Six repositories carry features that 15.9 moves out of the Fess distribution, and none of them were tracked here. sets/all.yaml now clones and builds them, taking the set from 48 repositories to 54:

Repository Serves
fess-storage-s3 storage.type=s3 (and the s3_compat auto-detection), s3: crawling
fess-storage-gcs storage.type=gcs, gcs: crawling
fess-sso-saml sso.type=saml
fess-sso-spnego sso.type=spnego
fess-sso-entraid sso.type=entraid, and the legacy aad
fess-sso-oidc sso.type=oic — the one place a repo name and its type differ

All six default to main. fess-storage-gcs had never been added, so this covers the GCS split as well as the ones just extracted.

Documentation

README.md gets a table per group plus what core keeps — SsoManager resolving <sso.type>Authenticator, StorageClientFactory resolving <storage.type>StorageClient — with the implementation and its SDK in the plugin, and the s3:/gcs: crawler client registered by the plugin around a class that stays in fess-crawler.

plugins.yaml is deliberately untouched. It covers data stores only, which the README now states rather than leaving a reader to infer it from the list. Its three entries that are not in all.yaml (fess-ds-office365, -s3, -gitbucket) already carry a gotcha; fess-ds-office365 is archived upstream.

CLAUDE.md records where the code went, so a grep of repos/fess that comes up empty is not a surprise — the storage half is already on master, the SSO half is codelibs/fess#3430 — plus the version-pairing constraint and the fact that a plugin repo's prefix is also its PluginHelper.ArtifactType (STORAGE and SSO were added in 15.9).

Skills

  • fess-doc-review/refs/source-mapping.md — the four SSO rows and three new storage rows point at the plugin repos, each naming what stayed in core: sso.type and the entraid.* keys with their aad.* fallback in FessProp, StorageClientFactory's lookup, StorageType's endpoint detection. A note says where to read the same classes when reviewing 15.8 or earlier docs. The OIDC credential also changed package, out of org.codelibs.fess.app.web.base.login.
  • fess-version-bumpfess-sso-* and fess-storage-* belong to wave 5. Only the documented wave needed the edit; scripts/lib.sh derives its list from all.yaml and picked them up unchanged.
  • fess-tech-doc — both plugin families added to the "where to look" list.

Verified

  • sets/all.yaml parsed with the workspace's own yaml_parser.sh: 54 repositories, the six resolving to main.
  • All six cloned; status.sh --short reports 54 repositories and each new checkout clean on main.
  • Every claim in the prose checked against the code rather than a summary of it: fess_sso++.xml on 15.8.x declares all four authenticators, while 15.8.x has no fess_storage.xml and no s3StorageClient component — which is why the double-registration paragraph is scoped to SSO. FessProp on master keeps the storage.* accessors, sso.type, and entraid.permission.fields / entraid.use.ds with the aad.* fallback, so those rows say "still in core" rather than moving them to the plugins. PluginHelper.ArtifactType on master has STORAGE("fess-storage") and SSO("fess-sso").

…sitories

15.9 moves the S3 and GCS storage clients and the four SSO authenticators out of
the Fess distribution, so sets/all.yaml now clones and builds the six repos that
carry them: fess-storage-s3, fess-storage-gcs, fess-sso-saml, fess-sso-spnego,
fess-sso-entraid and fess-sso-oidc. All six default to main. That takes the set
from 48 repositories to 54 -- fess-storage-gcs had never been added, so this
covers the GCS split as well as the ones just extracted.

README.md gains a table per group, with the sso.type / storage.type value each
plugin serves. fess-sso-oidc is the one place the repo name and the type differ,
since the type stays oic. The prose says what core keeps: SsoManager resolving
<sso.type>Authenticator, StorageClientFactory resolving
<storage.type>StorageClient, with the implementation and the SDK in the plugin,
and the s3:/gcs: crawler client registered by the plugin around a class that
stays in fess-crawler. plugins.yaml is left alone: it covers data stores only,
which the README now says outright rather than leaving a reader to infer it.

CLAUDE.md records where the code went, so a grep of repos/fess that comes up
empty is not a surprise: the storage half is already on master, the SSO half is
codelibs/fess#3430. It also records the version-pairing constraint -- an SSO
plugin from a different minor than the war registers the same component name
twice, because core ships its own fess_sso++.xml up to 15.8 and LastaDi merges
every ++ file on the class path, so container.init() succeeds and getComponent()
then throws TooManyRegistrationComponentException. Storage has no counterpart
before 15.9: fess_storage.xml and the <storage.type>StorageClient lookup are
both new. And a plugin repo's prefix is also its PluginHelper.ArtifactType,
where STORAGE and SSO were added in 15.9.

Skills:
- fess-doc-review/refs/source-mapping.md: the four SSO rows and three new
  storage rows point at the plugin repos, each naming what stayed in core --
  sso.type and the entraid keys with their aad fallback in FessProp,
  StorageClientFactory's lookup, StorageType's endpoint detection -- plus a note
  on where the same classes live when reviewing 15.8 or earlier docs. The OIDC
  credential also changed package, out of org.codelibs.fess.app.web.base.login.
- fess-version-bump: fess-sso-* and fess-storage-* belong to wave 5. The script
  derives its list from all.yaml, so only the documented wave needed an edit.
- fess-tech-doc: both plugin families added to the "where to look" list.

Verified by parsing sets/all.yaml with the workspace's own yaml_parser.sh (54
repositories, the six resolving to main), cloning all six, and running
status.sh --short.
@marevol marevol self-assigned this Sep 10, 2026
@marevol
marevol merged commit f759929 into main Sep 10, 2026
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