CoGe/iPlant authentication update

From CoGepedia
Jump to navigation Jump to search

Background

CoGe's backend is being updated to forward all authentication requests to iPlant's authentication system. This is to provide the following features:

  • enable individual user accounts
  • use iPlant's infrastructure to create and manage those accounts
  • permit users to move seamlessly between iPlant and CoGe resources
  • permit users to send to and retrieve data from their iPlant data store

Additional goals of having better management of individual user accounts are:

  • user have fine-grain control of data
    • users can have private genomes and annotations
    • users can share genomes and annotations with other users
  • users can save custom preferences for CoGe's tools
  • users can save analyses
  • users can save sets of genomic features
  • users can save sets of genomes

Updates

Several new tables are required in the database to accommodate fine-grain data permissions for user accounts:

drop table user_group_data_connector;
drop table user_group;
drop table user_group_connector;
drop table role;
drop table role_permission_connector;
drop table permission;

create table user_group_data_connector (
      user_group_dataset_connector_id  int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      dataset_group_id  int(11) NULL,
      dataset_id   int(11) NULL,
      user_group_id    int(11) NULL
);

create table user_group (
      user_group_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      name varchar(255),
      description longtext,
      role_id int(11) NOT NULL
);

create table user_group_connector (
      user_group_connector_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      user_id int(11) NOT NULL,
      user_group_id int(11) NOT NULL
);

create table role (
      role_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      name varchar(255) NOT NULL,
      description longtext
);

create table role_permission_connector (
      role_permission_connector_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      role_id int(11) NOT NULL,
      permission_id int(11) NOT NULL
);
 
create table permission (
      permission_id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
      name varchar(255) NOT NULL,
      description longtext
);


These tables require updates to CoGe's API: CoGeX