Skip to content

IAM 연동 및 멀티 테넌시 처리(Organization) 설계서

SeungpilPark edited this page Mar 20, 2017 · 1 revision

스키마


DROP TABLE IF EXISTS organization;
CREATE TABLE organization (
    id VARCHAR(36) NOT NULL,
    name VARCHAR(256) NOT NULL,
    tenant_id VARCHAR(36) NOT NULL,
    tenant_external_key VARCHAR(255) NULL,
    tenant_api_key VARCHAR(128) NULL,
    tenant_api_secret VARCHAR(128) NULL,
    tenant_api_salt VARCHAR(128) NULL,
    fax VARCHAR(255) NULL,
    website VARCHAR(255) NULL,
    language_code VARCHAR(10) NULL,
    time_zone VARCHAR(125) NULL,
    date_format VARCHAR(128) NULL,
    currency varchar(3) DEFAULT NULL,
    is_active CHAR(1) DEFAULT 'Y',
    address1 varchar(100) DEFAULT NULL,
    address2 varchar(100) DEFAULT NULL,
    company_name varchar(256) DEFAULT NULL,
    city varchar(50) DEFAULT NULL,
    state_or_province varchar(50) DEFAULT NULL,
    country varchar(50) DEFAULT NULL,
    postal_code varchar(16) DEFAULT NULL,
    phone varchar(25) DEFAULT NULL,
    notes varchar(4096) DEFAULT NULL,
    reg_dt            TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(id)
)
  ENGINE=InnoDB
  DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS authority;
CREATE TABLE authority (
    id VARCHAR(36) NOT NULL,
    organization_id VARCHAR(36) NOT NULL,
    user_id VARCHAR(36) NOT NULL,
    user_name VARCHAR(128) NOT NULL,
    role VARCHAR(36) NOT NULL,
    reg_dt            TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(id)
)
  ENGINE=InnoDB
  DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS organization_email;
CREATE TABLE organization_email (
    id VARCHAR(36) NOT NULL,
    organization_id VARCHAR(36) NOT NULL,
    email varchar(128) NOT NULL,
    is_active CHAR(1) DEFAULT 'Y',
    is_default CHAR(1) DEFAULT 'N',
    reg_dt            TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(id)
)
  ENGINE=InnoDB
  DEFAULT CHARSET=utf8;

REST 정의

도메인 METHOD URI 설명
Auth POST /rest/v1/access_token 아이디, 패스워드로 로그인하여 토큰을 받아온다.
GET /rest/v1/token_info 토큰 정보를 알아낸다
organization POST /rest/v1/organization 조직을 생성한다
GET /rest/v1/organization 조직 리스트를 가져온다
GET /rest/v1/organization{id} 조직 한건의 정보를 가져온다
PUT /rest/v1/organization{id} 조직 한건을 업데이트한다.
organizationEmail POST /rest/v1/organizationEmail 조직 이메일을 추가한다.
GET /rest/v1/organizationEmail 조직 이메일 리스트를 가져온다.
GET /rest/v1/organizationEmail{id} 조직 이메일 한건을 가져온다.
DELETE /rest/v1/organizationEmail{id} 조직 이메일을 삭제한다.
Clone this wiki locally