Add third-party section, multi-tenant catalogs extension to readme#891
Add third-party section, multi-tenant catalogs extension to readme#891jonhealy1 wants to merge 8 commits intostac-utils:mainfrom
Conversation
**Related Issue(s):** - #308 - stac-utils/stac-fastapi#880 - stac-utils/stac-fastapi#891 **Description:** This PR migrates the internal Catalogs Extension implementation to the new, standardized stac-fastapi-catalogs-extension library available on PyPI, reducing local maintenance burden. This transition aligns our multi-tenant catalog support with the official STAC API ecosystem: https://github.com/StacLabs/stac-fastapi-catalogs-extension **PR Checklist:** - [x] Code is formatted and linted (run `pre-commit run --all-files`) - [x] Tests pass (run `make test`) - [x] Documentation has been updated to reflect changes, if applicable - [x] Changes are added to the changelog
There was a problem hiding this comment.
If we keep the stac-fastapi-catalogs-extension as its own repo (and don't integrate it in #880) are we creating any headaches for users/implementers? Or is the usage story pretty simple, and they just have to depend on both?
If it's not a huge headache, I'm inclined to go with this PR's approach by just point to stac-fastapi-catalogs-extension in the docs. My reasoning is that there doesn't feel like there's a strong consensus on the need and implementation expressed in #880 (not saying it's wrong or right, just that there's not a consensus).
|
@gadomski One argument for hosting it externally too is that the extension is still in active development. |
Sounds good ... if you're in agreement, maybe we can close #880 and just have this one to review (it's light)? I haven't looked into the CI failures deeply, but it looks like some sort issue w/ min-mypy version on new Python. |
|
@gadomski How should I move forward with this? Should I try to create a new pr from main? It seems weird this passes on main. |
I believe this is a "bitrot" situation, specifically because mypy released a new version yesterday: https://pypi.org/project/mypy/1.20.0/. A good way to fix would be: git checkout fix-mypy
uv run pre-commit autoupdate # to update our pre-commit config w/ the new mypy version
uv run --with mypy --with types-attrs mypy -p stac_fastapiAnd then fix the typing errors. The root cause appears to be these two lines: stac-fastapi/.github/workflows/cicd.yaml Lines 37 to 38 in 5a1e78f Specifically, the second one doesn't pin the mypy version, so it drifted to the new version on this PR's latest run. |
| ## Related External Projects | ||
|
|
||
| * [stac-fastapi-catalogs-extension](https://github.com/StacLabs/stac-fastapi-catalogs-extension): Multi-tenant virtual catalogs extension for STAC FastAPI deployments, adding a dedicated `/catalogs` registry, scoped catalog routes, and an optional catalog management system for maintaining catalog hierarchies. | ||
|
|
There was a problem hiding this comment.
I'd move this below the local submodules section, and rename as per this suggestion:
| ## Related External Projects | |
| * [stac-fastapi-catalogs-extension](https://github.com/StacLabs/stac-fastapi-catalogs-extension): Multi-tenant virtual catalogs extension for STAC FastAPI deployments, adding a dedicated `/catalogs` registry, scoped catalog routes, and an optional catalog management system for maintaining catalog hierarchies. | |
| ## External third party extensions | |
| These extensions are hosted in other repositories but can be included in **stac-fastapi** projects. See each extensions' README for instructions on their use. | |
| * [stac-fastapi-catalogs-extension](https://github.com/StacLabs/stac-fastapi-catalogs-extension): Multi-tenant virtual catalogs extension for STAC FastAPI deployments, adding a dedicated `/catalogs` registry, scoped catalog routes, and an optional catalog management system for maintaining catalog hierarchies. | |
| #### Third-Party Extensions | ||
|
|
||
| - [stac-fastapi-catalogs-extension](https://github.com/StacLabs/stac-fastapi-catalogs-extension): Multi-tenant virtual catalogs extension for STAC FastAPI deployments. It adds a dedicated `/catalogs` registry, scoped catalog routes, and an optional catalog management system for maintaining catalog hierarchies within one API. | ||
|
|
There was a problem hiding this comment.
It would be easier just to have one place to update when we add other external extension repos.
| #### Third-Party Extensions | |
| - [stac-fastapi-catalogs-extension](https://github.com/StacLabs/stac-fastapi-catalogs-extension): Multi-tenant virtual catalogs extension for STAC FastAPI deployments. It adds a dedicated `/catalogs` registry, scoped catalog routes, and an optional catalog management system for maintaining catalog hierarchies within one API. | |
| There are some **stac-fastapi** extensions hosted in external repositories. See [the docs](https://stac-utils.github.io/stac-fastapi/api/stac_fastapi/extensions/third_party/) for a listing. |
There was a problem hiding this comment.
@gadomski I would rather have some visibility in the main readme if that's ok.
There was a problem hiding this comment.
You are basically moving a length of one sentence from the main readme.
There was a problem hiding this comment.
Also, if there's no sub heading for third party extensions period, no one is going to notice - I think in the future there will be more stac-fastapi extensions
|
How would you feel about something like this - no description. At least we are letting people know that there are third party extensions and they can build one too if they would like. I am still wondering what classifies an extension as 'third-party'. From someone outside the 'community' maybe? There is an issue here #881 that I think correctly points out that there shouldn't be this concept differentiating third-party and core extensions - they all come from the community. Maybe this would be more appropriate? Would you be ok with something like this? they could be in alphabetical order |
|
why did we close this ? |
|
@vincentsarago I closed this because I thought we were moving away from classifying some extensions as third-party. Then I started thinking it would be much better to just list all the known stac-fastapi extensions in the readme - we are not asking for a special place in the readme just for our extension ie #898 I created an issue here too: - for better documentation surrounding extensions period #900 I can reopen this if you think this is better |
|
I feel like it's reasonable that people who use stac-fastapi should have good information about the extensions that are out there. Especially if we are going to not allow some extensions to be hosted in the repository - which is reasonable. Extensions hosted externally would generally have better documentation and they can be easily imported. |
Related Issue(s):
Description:
This can be viewed as an alternative pr to #880
PR Checklist:
pre-commithooks pass locallymake test)make docs)