|
1 | 1 | import logging |
2 | 2 |
|
3 | 3 | import uvicorn |
| 4 | +from beanie import init_beanie |
| 5 | +from fastapi import APIRouter, Depends, FastAPI |
| 6 | +from fastapi.middleware.cors import CORSMiddleware |
| 7 | +from motor.motor_asyncio import AsyncIOMotorClient |
| 8 | +from pydantic import BaseConfig |
| 9 | + |
4 | 10 | from app.config import settings |
5 | 11 | from app.keycloak_auth import get_current_username |
6 | 12 | from app.models.authorization import AuthorizationDB |
|
26 | 32 | MetadataDefinitionDB, |
27 | 33 | MetadataFreezeDB, |
28 | 34 | ) |
| 35 | +from app.models.projects import ProjectDB |
29 | 36 | from app.models.thumbnails import ThumbnailDB, ThumbnailDBViewList, ThumbnailFreezeDB |
30 | 37 | from app.models.tokens import TokenDB |
31 | 38 | from app.models.users import ListenerAPIKeyDB, UserAPIKeyDB, UserDB |
|
48 | 55 | files, |
49 | 56 | folders, |
50 | 57 | groups, |
| 58 | + projects, |
51 | 59 | jobs, |
52 | 60 | keycloak, |
53 | 61 | licenses, |
|
67 | 75 | users, |
68 | 76 | visualization, |
69 | 77 | ) |
70 | | - |
71 | 78 | # setup loggers |
72 | 79 | # logging.config.fileConfig('logging.conf', disable_existing_loggers=False) |
73 | 80 | from app.search.config import indexSettings |
74 | 81 | from app.search.connect import connect_elasticsearch, create_index |
75 | | -from beanie import init_beanie |
76 | | -from fastapi import APIRouter, Depends, FastAPI |
77 | | -from fastapi.middleware.cors import CORSMiddleware |
78 | | -from motor.motor_asyncio import AsyncIOMotorClient |
79 | | -from pydantic import BaseConfig |
80 | 82 |
|
81 | 83 | logger = logging.getLogger(__name__) |
82 | 84 |
|
83 | 85 | app = FastAPI( |
84 | 86 | title=settings.APP_NAME, |
85 | 87 | openapi_url=f"{settings.API_V2_STR}/openapi.json", |
86 | 88 | description="A cloud native data management framework to support any research domain. Clowder was " |
87 | | - "developed to help researchers and scientists in data intensive domains manage raw data, complex " |
88 | | - "metadata, and automatic data pipelines. ", |
| 89 | + "developed to help researchers and scientists in data intensive domains manage raw data, complex " |
| 90 | + "metadata, and automatic data pipelines. ", |
89 | 91 | version="2.0.0-beta.2", |
90 | 92 | contact={"name": "Clowder", "url": "https://clowderframework.org/"}, |
91 | 93 | license_info={ |
|
228 | 230 | tags=["groups"], |
229 | 231 | dependencies=[Depends(get_current_username)], |
230 | 232 | ) |
| 233 | +api_router.include_router( |
| 234 | + projects.router, |
| 235 | + prefix="/projects", |
| 236 | + tags=["projects"], |
| 237 | +) |
231 | 238 | api_router.include_router( |
232 | 239 | visualization.router, |
233 | 240 | prefix="/visualizations", |
@@ -303,6 +310,7 @@ async def startup_beanie(): |
303 | 310 | UserAPIKeyDB, |
304 | 311 | ListenerAPIKeyDB, |
305 | 312 | GroupDB, |
| 313 | + ProjectDB, |
306 | 314 | TokenDB, |
307 | 315 | ErrorDB, |
308 | 316 | VisualizationConfigDB, |
|
0 commit comments