# SDisk MCP File Manager (Monorepo)
��� ����ں� ������ ���ε��ϰ� ���縦 ���� Ȱ��ȭ�� ��, MCP ������ ChatGPT Apps�� ����Ǵ� �����Դϴ�.
## ����
- `apps/account-server` (NestJS): SSO(SAML/OIDC) + OAuth 2.1 Authorization Server
- `apps/management-server` (NestJS): ���� ���ε�/��ȸ, ���� ����, ȯ�漳��, Role ����
- `apps/mcp-server` (Node): MCP ����(���� ���/��Ÿ������ ����)
- `apps/web` (Next.js): ���� ���/���ε� UI
- `packages/shared`: ���� Ÿ��
## ���� ����
- `PENDING`: ������
- `REJECTED`: �ݷ�
- `ACTIVE`: ����Ϸ�(��� ����)
- `EXPIRED`: ����(����� �ʿ�)
## OAuth 2.1 (ChatGPT Apps ���� �ٽ�)
ChatGPT Apps SDK�� OAuth 2.1 �䱸������ �����ؾ� �մϴ�. �ֿ� ����Ʈ:
- MCP ������ `/.well-known/oauth-protected-resource` ����
- Authorization Server���� OAuth ��Ÿ������ ����(JWKS, PKCE `S256` ����)
- `resource` �Ķ���� Authorization/Token ��û�� ����
- ChatGPT �����̷�Ʈ URI ���
����ؾ� �ϴ� �����̷�Ʈ URI ����:
- `https://chatgpt.com/connector_platform_oauth_redirect`
- `https://platform.openai.com/apps-manage/oauth`
���� ���̵�� `https://developers.openai.com/apps-sdk/build/auth`�� �����ϼ���.
## ����
1. Postgres ����
```bash
docker compose up -d
```
2. ȯ�溯�� ����
```bash
cp apps/account-server/.env.example apps/account-server/.env
cp apps/management-server/.env.example apps/management-server/.env
cp apps/mcp-server/.env.example apps/mcp-server/.env
cp apps/web/.env.example apps/web/.env
```
3. ������ ��ġ
```bash
npm install
```
4. ���� ���� ����
```bash
npm run dev
```
## Notes
- SSO ������ ������ IdP ������ ���� `apps/account-server`�� ȯ�溯��(SAML/OIDC)�� ä���� �մϴ�.
- ���� API�� `APPROVAL_API_BASE`�� �����ϸ�, �ݹ��� `POST /files/approvals/callback`�Դϴ�.
- ������ ����� `ENV` ���̺��� `FILE_EXPIRY_DAYS` ��(�⺻ 30��)�� ���˴ϴ�.
- MCP ������ Streamable HTTP(`/mcp`)�� �����Ǿ� �ֽ��ϴ�. ChatGPT Apps ��� �� `https://<domain>/mcp` ���·� ����ϼ���.