teams

Sentivex Incidents Ticket API

GET/api/teams

워크스페이스 내 팀(team) 목록 조회 및 신규 팀 생성을 담당한다.

API 라우트: /api/teams 워크스페이스 내 팀(team) 목록 조회 및 신규 팀 생성을 담당한다. - GET : 특정 워크스페이스의 팀 목록 반환 (워크스페이스 멤버 이상 접근 가능) - POST : 새 팀 생성 + 생성자를 자동으로 "lead" 역할로 등록 (워크스페이스 어드민 전용) 팀은 `teams` 테이블에, 팀 멤버십은 `teamMembers` 테이블에 저장된다. 슬러그(slug)는 워크스페이스 내 유일해야 하며, 미입력 시 팀 이름에서 자동 생성된다. @author jijuta ([email protected]) @since 2026-05-12 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Responses

200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X GET https://sit.in-bridge.com/api/teams \
  -H "Authorization: Bearer $TOKEN"
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/teams", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${token}`
  }
});
const data = await res.json();
POST/api/teams

워크스페이스 내 팀(team) 목록 조회 및 신규 팀 생성을 담당한다.

API 라우트: /api/teams 워크스페이스 내 팀(team) 목록 조회 및 신규 팀 생성을 담당한다. - GET : 특정 워크스페이스의 팀 목록 반환 (워크스페이스 멤버 이상 접근 가능) - POST : 새 팀 생성 + 생성자를 자동으로 "lead" 역할로 등록 (워크스페이스 어드민 전용) 팀은 `teams` 테이블에, 팀 멤버십은 `teamMembers` 테이블에 저장된다. 슬러그(slug)는 워크스페이스 내 유일해야 하며, 미입력 시 팀 이름에서 자동 생성된다. @author jijuta ([email protected]) @since 2026-05-12 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Request body

workspaceIdstring<uuid>required
namestringrequired
slugstring
iconstring
colorstring

Responses

200 성공400 입력 검증 실패(zod)401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X POST https://sit.in-bridge.com/api/teams \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"workspaceId":"00000000-0000-0000-0000-000000000000","name":"string","slug":"string","icon":"string","color":"string"}'
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/teams", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "workspaceId": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "slug": "string",
    "icon": "string",
    "color": "string"
  })
});
const data = await res.json();
GET/api/teams/{teamId}

단일 팀 리소스에 대한 CRUD 엔드포인트.

API 라우트: /api/teams/[teamId] 단일 팀 리소스에 대한 CRUD 엔드포인트. - GET : 팀 상세 조회 (워크스페이스 멤버면 조회 가능) - PATCH : 팀 메타데이터(이름/설명/아이콘/색상) 수정 (워크스페이스 어드민 전용) - DELETE : 팀 삭제 (워크스페이스 어드민 전용) 멤버 관리는 /api/teams/[teamId]/members 라우트에서 별도 처리한다. @author jijuta ([email protected]) @since 2026-05-12 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Path parameters

teamIdstringrequired

Responses

200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X GET https://sit.in-bridge.com/api/teams/{teamId} \
  -H "Authorization: Bearer $TOKEN"
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/teams/{teamId}", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${token}`
  }
});
const data = await res.json();
PATCH/api/teams/{teamId}

단일 팀 리소스에 대한 CRUD 엔드포인트.

API 라우트: /api/teams/[teamId] 단일 팀 리소스에 대한 CRUD 엔드포인트. - GET : 팀 상세 조회 (워크스페이스 멤버면 조회 가능) - PATCH : 팀 메타데이터(이름/설명/아이콘/색상) 수정 (워크스페이스 어드민 전용) - DELETE : 팀 삭제 (워크스페이스 어드민 전용) 멤버 관리는 /api/teams/[teamId]/members 라우트에서 별도 처리한다. @author jijuta ([email protected]) @since 2026-05-12 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Path parameters

teamIdstringrequired

Request body

namestring
descriptionstring
iconstring
colorstring

Responses

200 성공400 입력 검증 실패(zod)401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X PATCH https://sit.in-bridge.com/api/teams/{teamId} \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","description":"string","icon":"string","color":"string"}'
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/teams/{teamId}", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "name": "string",
    "description": "string",
    "icon": "string",
    "color": "string"
  })
});
const data = await res.json();
DELETE/api/teams/{teamId}

단일 팀 리소스에 대한 CRUD 엔드포인트.

API 라우트: /api/teams/[teamId] 단일 팀 리소스에 대한 CRUD 엔드포인트. - GET : 팀 상세 조회 (워크스페이스 멤버면 조회 가능) - PATCH : 팀 메타데이터(이름/설명/아이콘/색상) 수정 (워크스페이스 어드민 전용) - DELETE : 팀 삭제 (워크스페이스 어드민 전용) 멤버 관리는 /api/teams/[teamId]/members 라우트에서 별도 처리한다. @author jijuta ([email protected]) @since 2026-05-12 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Path parameters

teamIdstringrequired

Responses

200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X DELETE https://sit.in-bridge.com/api/teams/{teamId} \
  -H "Authorization: Bearer $TOKEN"
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/teams/{teamId}", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${token}`
  }
});
const data = await res.json();
GET/api/teams/{teamId}/members

특정 팀의 멤버를 관리하는 엔드포인트.

API 라우트: /api/teams/[teamId]/members 특정 팀의 멤버를 관리하는 엔드포인트. - GET : 팀 멤버 목록 조회 (워크스페이스 멤버면 조회 가능) - POST : 팀에 새 멤버 추가 (워크스페이스 어드민 전용) - DELETE : 팀에서 멤버 제거, 쿼리 파라미터 userId 필요 (워크스페이스 어드민 전용) 팀은 워크스페이스 소속이므로 모든 권한 검사는 팀의 workspaceId 기준으로 수행된다. @author jijuta ([email protected]) @since 2026-05-12 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Path parameters

teamIdstringrequired

Responses

200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X GET https://sit.in-bridge.com/api/teams/{teamId}/members \
  -H "Authorization: Bearer $TOKEN"
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/teams/{teamId}/members", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${token}`
  }
});
const data = await res.json();
POST/api/teams/{teamId}/members

특정 팀의 멤버를 관리하는 엔드포인트.

API 라우트: /api/teams/[teamId]/members 특정 팀의 멤버를 관리하는 엔드포인트. - GET : 팀 멤버 목록 조회 (워크스페이스 멤버면 조회 가능) - POST : 팀에 새 멤버 추가 (워크스페이스 어드민 전용) - DELETE : 팀에서 멤버 제거, 쿼리 파라미터 userId 필요 (워크스페이스 어드민 전용) 팀은 워크스페이스 소속이므로 모든 권한 검사는 팀의 workspaceId 기준으로 수행된다. @author jijuta ([email protected]) @since 2026-05-12 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Path parameters

teamIdstringrequired

Request body

userIdstring<uuid>required
roleenumrequired
leadmember

Responses

200 성공400 입력 검증 실패(zod)401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X POST https://sit.in-bridge.com/api/teams/{teamId}/members \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"userId":"00000000-0000-0000-0000-000000000000","role":"lead"}'
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/teams/{teamId}/members", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "userId": "00000000-0000-0000-0000-000000000000",
    "role": "lead"
  })
});
const data = await res.json();
DELETE/api/teams/{teamId}/members

특정 팀의 멤버를 관리하는 엔드포인트.

API 라우트: /api/teams/[teamId]/members 특정 팀의 멤버를 관리하는 엔드포인트. - GET : 팀 멤버 목록 조회 (워크스페이스 멤버면 조회 가능) - POST : 팀에 새 멤버 추가 (워크스페이스 어드민 전용) - DELETE : 팀에서 멤버 제거, 쿼리 파라미터 userId 필요 (워크스페이스 어드민 전용) 팀은 워크스페이스 소속이므로 모든 권한 검사는 팀의 workspaceId 기준으로 수행된다. @author jijuta ([email protected]) @since 2026-05-12 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Path parameters

teamIdstringrequired

Responses

200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X DELETE https://sit.in-bridge.com/api/teams/{teamId}/members \
  -H "Authorization: Bearer $TOKEN"
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/teams/{teamId}/members", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${token}`
  }
});
const data = await res.json();