Skip to content
Snippets Groups Projects
installation-and-configuration-guide.md 105 KiB
Newer Older
  • Learn to ignore specific revisions
  • |`WRITE_DATASET`                   |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`WRITE_DATASET_PROPERTIES`        |         |`SPACE_USER`                        |                                                                                                                                                                                               |
    |`DELETE_DATASET`                  |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`WRITE_EXPERIMENT_SAMPLE`         |         |`SPACE_USER`                        |                                                                                                                                                                                               |
    |`WRITE_EXPERIMENT_ATTACHMENT`     |         |`SPACE_USER`                        |                                                                                                                                                                                               |
    |`WRITE_EXPERIMENT_PROPERTIES`     |         |`SPACE_USER`                        |                                                                                                                                                                                               |
    |`DELETE_EXPERIMENT`               |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`WRITE_SAMPLE`                    |         |`SPACE_USER`                        |                                                                                                                                                                                               |
    |`WRITE_SAMPLE_ATTACHMENT`         |         |`SPACE_USER`                        |                                                                                                                                                                                               |
    |`WRITE_SAMPLE_PROPERTIES`         |         |`SPACE_USER`                        |                                                                                                                                                                                               |
    |`DELETE_SAMPLE`                   |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`DELETE_SAMPLE_ATTACHMENT`        |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`WRITE_DATASET`                   |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`WRITE_DATASET_PROPERTIES`        |         |`SPACE_USER`                        |                                                                                                                                                                                               |
    |`DELETE_DATASET`                  |         |`SPACE_POWER_USER`                  |Delete datasets (this capability IS NOT enough to delete datasets with deletion_disallow flag set to true in their type - see `FORCE_DELETE_DATASET`)                                            |
    
    |`FORCE_DELETE_DATASET`            |         |`INSTANCE_DISABLED`                  |Delete datasets (this capability IS enough to delete datasets with deletion_disallow flag set to true in their type - see `DELETE_DATASET`)                                                      |
    
    |`ARCHIVE_DATASET`                 |         |`SPACE_POWER_USER`                  |Move dataset from data store into archive                                                                                                                                                      |
    |`UNARCHIVE_DATASET`               |         |`SPACE_USER`                        |Copy back dataset from archive to data store                                                                                                                                                   |
    |`LOCK_DATA_SETS`                  |         |`SPACE_ADMIN`                       |Prevent data sets from being archived                                                                                                                                                          |
    |`UNLOCK_DATA_SETS`                |         |`SPACE_ADMIN`                       |Release locked data sets                                                                                                                                                                       |
    |`WRITE_EXPERIMENT_SAMPLE_MATERIAL`|         |`INSTANCE_ADMIN`                    |Registration / update of experiments, samples and materials in one go                                                                                                                          |
    |`REGISTER_SPACE`                  |         |`SPACE_ADMIN`                       |The user will become space admin of the freshly created space                                                                                                                                  |
    |`DELETE_SPACE`                    |         |`SPACE_ADMIN`                       |                                                                                                                                                                                               |
    |`UPDATE_SPACE`                    |         |`SPACE_ADMIN`                       |                                                                                                                                                                                               |
    |`REGISTER_PROJECT`                |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`WRITE_PROJECT`                   |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`WRITE_SAMPLE_ATTACHMENT`         |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`DELETE_PROJECT`                  |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`WRITE_PROJECT_ATTACHMENT`        |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`REGISTER_VOCABULARY`             |         |`INSTANCE_ADMIN`                    |                                                                                                                                                                                               |
    |`WRITE_VOCABULARY`                |         |`INSTANCE_ADMIN`                    |                                                                                                                                                                                               |
    |`DELETE_VOCABULARY`               |         |`INSTANCE_ADMIN`                    |                                                                                                                                                                                               |
    |`WRITE_VOCABULARY_TERM`           |         |`SPACE_POWER_USER`                  |                                                                                                                                                                                               |
    |`WRITE_UNOFFICIAL_VOCABULARY_TERM`|         |`SPACE_USER`                        |                                                                                                                                                                                               |
    
    |`PURGE`                           |         |`SPACE_ADMIN`                       |Permanently delete experiments, samples and datasets in the trashcan (this capability IS NOT enough to delete datasets with deletion_disallow flag set to true in their type - see `FORCE_PURGE`)|
    
    |`FORCE_PURGE`                     |         |`INSTANCE_DISABLED`                  |Permanently delete experiments, samples and datasets in the trashcan (this capability IS enough to delete datasets with deletion_disallow flag set to true in their type - see `PURGE`)          |
    |`RESTORE`                         |         |`SPACE_USER`                        |Get back experiments, samples and datasets from the trashcan                                                                                                                                   |
    |`ASSIGN_EXPERIMENT_TO_PROJECT`    |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`ASSIGN_PROJECT_TO_SPACE`         |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`ASSIGN_SAMPLE_TO_EXPERIMENT`     |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER`|Re-assign a sample to a new experiment (called in 'register experiment', 'update experiment', 'update sample'')                                                                                |
    |`UNASSIGN_SAMPLE_FROM_EXPERIMENT` |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER`|                                                                                                                                                                                               |
    |`ASSIGN_SAMPLE_TO_SPACE`          |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |Re-assign a sample to a new space (called in 'update sample')                                                                                                                                  |
    |`ASSIGN_DATASET_TO_EXPERIMENT`    |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`ASSIGN_DATASET_TO_SAMPLE`        |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    
    |`SHARE_SAMPLE`                    |         |`INSTANCE_ADMIN`, `INSTANCE_ETL_SERVER`|                                                                                                                                                                                               |
    
    |`UNSHARE_SAMPLE`                  |         |`INSTANCE_ADMIN`, `INSTANCE_ETL_SERVER`|                                                                                                                                                                                               |
    
    |`ADD_PARENT_TO_SAMPLE`            |         |`SPACE_USER`, `SPACE_ETL_SERVER`       |                                                                                                                                                                                               |
    |`ADD_PARENT_TO_SAMPLE`            |SAMPLE   |`SPACE_USER`, `SPACE_ETL_SERVER`       |                                                                                                                                                                                               |
    |`ADD_PARENT_TO_SAMPLE`            |PARENT   |`SPACE_USER`, `SPACE_ETL_SERVER`       |                                                                                                                                                                                               |
    |`REMOVE_PARENT_FROM_SAMPLE`       |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`REMOVE_PARENT_FROM_SAMPLE`       |SAMPLE   |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`REMOVE_PARENT_FROM_SAMPLE`       |PARENT   |`SPACE_USER`, `SPACE_ETL_SERVER`       |                                                                                                                                                                                               |
    |`ADD_CONTAINER_TO_SAMPLE`         |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`REMOVE_CONTAINER_FROM_SAMPLE`    |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`ADD_PARENT_TO_DATASET`           |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`REMOVE_PARENT_FROM_DATASET`      |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`ADD_CONTAINER_TO_DATASET`        |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`REMOVE_CONTAINER_FROM_DATASET`   |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`ASSIGN_ROLE_TO_SPACE_VIA_DSS`    |         |`SPACE_ADMIN, `INSTANCE_ETL_SERVER`   |                                                                                                                                                                                               |
    |`CREATE_SPACES_VIA_DSS`           |         |`SPACE_ADMIN, `INSTANCE_ETL_SERVER`   |                                                                                                                                                                                               |
    |`CREATE_PROJECTS_VIA_DSS`         |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`UPDATE_PROJECTS_VIA_DSS`         |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`CREATE_EXPERIMENTS_VIA_DSS`      |         |`SPACE_USER`, `SPACE_ETL_SERVER`       |                                                                                                                                                                                               |
    |`UPDATE_EXPERIMENTS_VIA_DSS`      |         |`SPACE_USER`, `SPACE_ETL_SERVER`       |                                                                                                                                                                                               |
    |`CREATE_SPACE_SAMPLES_VIA_DSS`    |         |`SPACE_USER`, `SPACE_ETL_SERVER`       |                                                                                                                                                                                               |
    |`UPDATE_SPACE_SAMPLES_VIA_DSS`    |         |`SPACE_USER`, `SPACE_ETL_SERVER`       |                                                                                                                                                                                               |
    |`CREATE_INSTANCE_SAMPLES_VIA_DSS` |         |`INSTANCE_ETL_SERVER`                |                                                                                                                                                                                               |
    |`UPDATE_INSTANCE_SAMPLES_VIA_DSS` |         |`INSTANCE_ETL_SERVER`                |                                                                                                                                                                                               |
    |`CREATE_MATERIALS_VIA_DSS`        |         |`INSTANCE_ETL_SERVER`                |                                                                                                                                                                                               |
    |`UPDATE_MATERIALS_VIA_DSS`        |         |`INSTANCE_ETL_SERVER`                |                                                                                                                                                                                               |
    |`CREATE_DATA_SETS_VIA_DSS`        |         |`SPACE_USER`, `SPACE_ETL_SERVER`       |                                                                                                                                                                                               |
    |`UPDATE_DATA_SETS_VIA_DSS`        |         |`SPACE_POWER_USER`, `SPACE_ETL_SERVER` |                                                                                                                                                                                               |
    |`SEARCH_ON_BEHALF_OF_USER`        |         |`INSTANCE_OBSERVER`                  |All search or list operations being performed on behalf of another user. Supposed to be used by a service user for server-to-server communication tasks.                                       |
    
    
    Marco Del Tufo's avatar
    .
    Marco Del Tufo committed
    
    Older versions of openBIS used to allow changing entity relationships to
    regular `SPACE_USER`. If you want to get this behavior back, put these
    lines into `etc/capabilities`:
    
        ASSIGN_EXPERIMENT_TO_PROJECT: SPACE_USER
        ASSIGN_EXPERIMENT_TO_PROJECT: SPACE_ETL_SERVER
        ASSIGN_SAMPLE_TO_EXPERIMENT: SPACE_USER
        ASSIGN_SAMPLE_TO_EXPERIMENT: SPACE_ETL_SERVER
        UNASSIGN_SAMPLE_FROM_EXPERIMENT: SPACE_USER
        UNASSIGN_SAMPLE_FROM_EXPERIMENT: SPACE_ETL_SERVER
        ASSIGN_SAMPLE_TO_SPACE: SPACE_USER
        ASSIGN_SAMPLE_TO_SPACE: SPACE_ETL_SERVER
        ASSIGN_DATASET_TO_EXPERIMENT: SPACE_USER
        ASSIGN_DATASET_TO_EXPERIMENT: SPACE_ETL_SERVER
        ASSIGN_DATASET_TO_SAMPLE: SPACE_USER
        ASSIGN_DATASET_TO_SAMPLE: SPACE_ETL_SERVER
        ADD_PARENT_TO_SAMPLE: SPACE_USER
        ADD_PARENT_TO_SAMPLE: SPACE_ETL_SERVER
        REMOVE_PARENT_FROM_SAMPLE: SPACE_USER
        REMOVE_PARENT_FROM_SAMPLE: SPACE_ETL_SERVER
        ADD_CONTAINER_TO_SAMPLE: SPACE_USER
        ADD_CONTAINER_TO_SAMPLE: SPACE_ETL_SERVER
        REMOVE_CONTAINER_FROM_SAMPLE: SPACE_USER
        REMOVE_CONTAINER_FROM_SAMPLE: SPACE_ETL_SERVER
        ADD_PARENT_TO_DATASET: SPACE_USER
        ADD_PARENT_TO_DATASET: SPACE_ETL_SERVER
        REMOVE_PARENT_FROM_DATASET: SPACE_USER
        REMOVE_PARENT_FROM_DATASET: SPACE_ETL_SERVER
        ADD_CONTAINER_TO_DATASET: SPACE_USER
        ADD_CONTAINER_TO_DATASET: SPACE_ETL_SERVER
        REMOVE_CONTAINER_FROM_DATASET: SPACE_USER
        REMOVE_CONTAINER_FROM_DATASET: SPACE_ETL_SERVER
    
    #### Capability Role Map for V3 API
    
    | Method of IApplicationServerApi          | Default Roles                                     | Capability                        |
    |------------------------------------------|---------------------------------------------------|-----------------------------------|
    | archiveDataSets                          | PROJECT_POWER_USER, SPACE_ETL_SERVER              | ARCHIVE_DATASET                   |
    | confirmDeletions, forceDeletion == false | PROJECT_ADMIN, SPACE_ETL_SERVER                   | CONFIRM_DELETION                  |
    | confirmDeletions, forceDeletion == true  | disabled                                          | CONFIRM_DELETION_FORCED           |
    | createAuthorizationGroups                | INSTANCE_ADMIN                                    | CREATE_AUTHORIZATION_GROUP        |
    | createCodes                              | PROJECT_USER, SPACE_ETL_SERVER                    | CREATE_CODES                      |
    | createDataSetTypes                       | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | CREATE_DATASET_TYPE               |
    | createDataSets                           | PROJECT_USER, SPACE_ETL_SERVER                    | CREATE_DATASET                    |
    | createExperimentTypes                    | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | CREATE_EXPERIMENT_TYPE            |
    | createExperiments                        | PROJECT_USER, SPACE_ETL_SERVER                    | CREATE_EXPERIMENT                 |
    | createExternalDataManagementSystems      | INSTANCE_ADMIN                                    | CREATE_EXTERNAL_DMS               |
    | createMaterialTypes                      | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | CREATE_MATERIAL_TYPE              |
    | createMaterials                          | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | CREATE_MATERIAL                   |
    | createPermIdStrings                      | PROJECT_USER, SPACE_ETL_SERVER                    | CREATE_PERM_IDS                   |
    | createPersons                            | INSTANCE_ADMIN                                    | CREATE_PERSON                     |
    | createPlugins                            | INSTANCE_ADMIN                                    | CREATE_PLUGIN                     |
    | createProjects                           | SPACE_POWER_USER, SPACE_ETL_SERVER                | CREATE_PROJECT                    |
    | createPropertyTypes                      | INSTANCE_ADMIN                                    | CREATE_PROPERTY_TYPE              |
    | createQueries                            | PROJECT_OBSERVER, SPACE_ETL_SERVER                | CREATE_QUERY                      |
    | createRoleAssignments, instance role     | INSTANCE_ADMIN                                    | CREATE_INSTANCE_ROLE              |
    | createRoleAssignments, space role        | SPACE_ADMIN                                       | CREATE_SPACE_ROLE                 |
    | createRoleAssignments, project role      | PROJECT_ADMIN                                     | CREATE_PROJECT_ROLE               |
    | createSampleTypes                        | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | CREATE_SAMPLE_TYPE                |
    | createSamples                            | PROJECT_USER, SPACE_ETL_SERVER                    | CREATE_SAMPLE                     |
    | createSemanticAnnotations                | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | CREATE_SEMANTIC_ANNOTATION        |
    | createSpaces                             | SPACE_ADMIN, SPACE_ETL_SERVER                     | CREATE_SPACE                      |
    | createTags                               | PROJECT_OBSERVER, SPACE_ETL_SERVER                | CREATE_TAG                        |
    | createVocabularies                       | INSTANCE_ADMIN                                    | CREATE_VOCABULARY                 |
    | createVocabularyTerms, official terms    | PROJECT_POWER_USER, SPACE_ETL_SERVER              | CREATE_OFFICIAL_VOCABULARY_TERM   |
    | createVocabularyTerms, unofficial terms  | PROJECT_USER, SPACE_ETL_SERVER                    | CREATE_UNOFFICIAL_VOCABULARY_TERM |
    | deleteAuthorizationGroups                | INSTANCE_ADMIN                                    | DELETE_AUTHORIZATION_GROUP        |
    | deleteDataSetTypes                       | INSTANCE_ADMIN                                    | DELETE_DATASET_TYPE               |
    | deleteDataSets                           | PROJECT_POWER_USER, SPACE_ETL_SERVER              | DELETE_DATASET                    |
    | deleteExperimentTypes                    | INSTANCE_ADMIN                                    | DELETE_EXPERIMENT_TYPE            |
    | deleteExperiments                        | PROJECT_POWER_USER, SPACE_ETL_SERVER              | DELETE_EXPERIMENT                 |
    | deleteExternalDataManagementSystems      | INSTANCE_ADMIN                                    | DELETE_EXTERNAL_DMS               |
    | deleteMaterialTypes                      | INSTANCE_ADMIN                                    | DELETE_MATERIAL_TYPE              |
    | deleteMaterials                          | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | DELETE_MATERIAL                   |
    | deleteOperationExecutions                | PROJECT_USER, SPACE_ETL_SERVER                    | DELETE_OPERATION_EXECUTION        |
    | deletePlugins                            | INSTANCE_ADMIN                                    | DELETE_PLUGIN                     |
    | deleteProjects                           | SPACE_POWER_USER, PROJECT_ADMIN, SPACE_ETL_SERVER | DELETE_PROJECT                    |
    | deletePropertyTypes                      | INSTANCE_ADMIN                                    | DELETE_PROPERTY_TYPE              |
    | deleteQueries                            | PROJECT_OBSERVER, SPACE_ETL_SERVER                | DELETE_QUERY                      |
    | deleteRoleAssignments, instance role     | INSTANCE_ADMIN                                    | DELETE_INSTANCE_ROLE              |
    | deleteRoleAssignments, space role        | SPACE_ADMIN                                       | DELETE_SPACE_ROLE                 |
    | deleteRoleAssignments, project role      | PROJECT_ADMIN                                     | DELETE_PROJECT_ROLE               |
    | deleteSampleTypes                        | INSTANCE_ADMIN                                    | DELETE_SAMPLE_TYPE                |
    | deleteSamples                            | PROJECT_POWER_USER, SPACE_ETL_SERVER              | DELETE_SAMPLE                     |
    | deleteSemanticAnnotations                | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | DELETE_SEMANTIC_ANNOTATION        |
    | deleteSpaces                             | SPACE_ADMIN, SPACE_ETL_SERVER                     | DELETE_SPACE                      |
    | deleteTags                               | PROJECT_OBSERVER, SPACE_ETL_SERVER                | DELETE_TAG                        |
    | deleteVocabularies                       | INSTANCE_ADMIN                                    | DELETE_VOCABULARY                 |
    | deleteVocabularyTerms                    | PROJECT_POWER_USER, SPACE_ETL_SERVER              | DELETE_VOCABULARY_TERM            |
    | executeAggregationService                | PROJECT_OBSERVER                                  | EXECUTE_AGGREGATION_SERVICES      |
    | executeCustomASService                   | PROJECT_OBSERVER, SPACE_ETL_SERVER                | EXECUTE_CUSTOM_AS_SERVICE         |
    | executeProcessingService                 | PROJECT_USER                                      | EXECUTE_PROCESSING_SERVICES       |
    | executeQuery                             | PROJECT_OBSERVER, SPACE_ETL_SERVER                | EXECUTE_QUERY                     |
    | executeReportingService                  | PROJECT_OBSERVER                                  | EXECUTE_REPORTING_SERVICES        |
    | executeSearchDomainService               | PROJECT_OBSERVER                                  | EXECUTE_SEARCH_DOMAIN_SERVICES    |
    | executeSql                               | PROJECT_OBSERVER, SPACE_ETL_SERVER                | EXECUTE_QUERY                     |
    | getAuthorizationGroups                   | PROJECT_ADMIN                                     | GET_AUTHORIZATION_GROUP           |
    | getDataSetTypes                          | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_DATASET_TYPE                  |
    | getDataSets                              | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_DATASET                       |
    | getExperimentTypes                       | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_EXPERIMENT_TYPE               |
    | getExperiments                           | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_EXPERIMENT                    |
    | getExternalDataManagementSystems         | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_EXTERNAL_DMS                  |
    | getMaterialTypes                         | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_MATERIAL_TYPE                 |
    | getMaterials                             | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_MATERIAL                      |
    | getOperationExecutions                   | PROJECT_USER, SPACE_ETL_SERVER                    | GET_OPERATION_EXECUTION           |
    | getPersons                               | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_PERSON                        |
    | getPlugins                               | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_PLUGIN                        |
    | getProjects                              | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_PROJECT                       |
    | getPropertyTypes                         | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_PROPERTY_TYPE                 |
    | getQueries                               | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_QUERY                         |
    | getRoleAssignments                       | PROJECT_ADMIN                                     | GET_ROLE_ASSIGNMENT               |
    | getSampleTypes                           | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_SAMPLE_TYPE                   |
    | getSamples                               | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_SAMPLE                        |
    | getSemanticAnnotations                   | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_SEMANTIC_ANNOTATION           |
    | getSessionInformation                    | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_SESSION                       |
    | getSpaces                                | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_SPACE                         |
    | getTags                                  | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_TAG                           |
    | getVocabularies                          | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_VOCABULARY                    |
    | getVocabularyTerms                       | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_VOCABULARY_TERM               |
    | lockDataSets                             | PROJECT_ADMIN                                     | LOCK_DATASET                      |
    | revertDeletions                          | PROJECT_USER, SPACE_ETL_SERVER                    | REVERT_DELETION                   |
    | searchAggregationServices                | PROJECT_OBSERVER                                  | SEARCH_AGGREGATION_SERVICES       |
    | searchAuthorizationGroups                | PROJECT_ADMIN                                     | SEARCH_AUTHORIZATION_GROUP        |
    | searchCustomASServices                   | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_CUSTOM_AS_SERVICES         |
    | searchDataSetTypes                       | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_DATASET_TYPE               |
    | searchDataSets                           | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_DATASET                    |
    | searchDataStores                         | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_DATASTORE                  |
    | searchDeletions                          | PROJECT_USER, SPACE_ETL_SERVER                    | SEARCH_DELETION                   |
    | searchExperimentTypes                    | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_EXPERIMENT_TYPE            |
    | searchExperiments                        | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_EXPERIMENT                 |
    | searchExternalDataManagementSystems      | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_EXTERNAL_DMS               |
    | searchGlobally                           | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_GLOBALLY                   |
    | searchMaterialTypes                      | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_MATERIAL_TYPE              |
    | searchMaterials                          | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_MATERIAL                   |
    | searchObjectKindModifications            | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_OBJECT_KIND_MODIFICATION   |
    | searchOperationExecutions                | PROJECT_USER, SPACE_ETL_SERVER                    | GET_OPERATION_EXECUTION           |
    | searchPersons                            | PROJECT_OBSERVER, SPACE_ETL_SERVER                | GET_PERSON                        |
    | searchPlugins                            | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_PLUGIN                     |
    | searchProcessingServices                 | PROJECT_OBSERVER                                  | SEARCH_PROCESSING_SERVICES        |
    | searchProjects                           | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_PROJECT                    |
    | searchPropertyTypes                      | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_PROPERTY_TYPE              |
    | searchQueries                            | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_QUERY                      |
    | searchReportingServices                  | PROJECT_OBSERVER                                  | SEARCH_REPORTING_SERVICES         |
    | searchRoleAssignments                    | PROJECT_ADMIN                                     | SEARCH_ROLE_ASSIGNMENT            |
    | searchSampleTypes                        | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_SAMPLE_TYPE                |
    | searchSamples                            | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_SAMPLE                     |
    | searchSearchDomainServices               | PROJECT_OBSERVER                                  | SEARCH_SEARCH_DOMAIN_SERVICES     |
    | searchSemanticAnnotations                | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_SEMANTIC_ANNOTATION        |
    | searchSpaces                             | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_SPACE                      |
    | searchTags                               | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_TAG                        |
    | searchVocabularies                       | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_VOCABULARY                 |
    | searchVocabularyTerms                    | PROJECT_OBSERVER, SPACE_ETL_SERVER                | SEARCH_VOCABULARY_TERM            |
    | unarchiveDataSets                        | PROJECT_USER, SPACE_ETL_SERVER                    | UNARCHIVE_DATASET                 |
    | unlockDataSets                           | PROJECT_ADMIN                                     | UNLOCK_DATASET                    |
    | updateAuthorizationGroups                | INSTANCE_ADMIN                                    | UPDATE_AUTHORIZATION_GROUP        |
    | updateDataSetTypes                       | INSTANCE_ADMIN                                    | UPDATE_DATASET_TYPE               |
    | updateDataSets                           | PROJECT_POWER_USER, SPACE_ETL_SERVER              | UPDATE_DATASET                    |
    | updateDataSets, properties               | PROJECT_POWER_USER, SPACE_ETL_SERVER              | UPDATE_DATASET_PROPERTY           |
    | updateExperimentTypes                    | INSTANCE_ADMIN                                    | UPDATE_EXPERIMENT_TYPE            |
    | updateExperiments                        | PROJECT_USER, SPACE_ETL_SERVER                    | UPDATE_EXPERIMENT                 |
    | updateExperiments, attachments           | PROJECT_USER, SPACE_ETL_SERVER                    | UPDATE_EXPERIMENT_ATTACHMENT      |
    | updateExperiments, properties            | PROJECT_USER, SPACE_ETL_SERVER                    | UPDATE_EXPERIMENT_PROPERTY        |
    | updateExternalDataManagementSystems      | INSTANCE_ADMIN                                    | UPDATE_EXTERNAL_DMS               |
    | updateMaterialTypes                      | INSTANCE_ADMIN                                    | UPDATE_MATERIAL_TYPE              |
    | updateMaterials                          | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | UPDATE_MATERIAL                   |
    | updateMaterials, properties              | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | UPDATE_MATERIAL_PROPERTY          |
    | updateOperationExecutions                | PROJECT_USER, SPACE_ETL_SERVER                    | UPDATE_OPERATION_EXECUTION        |
    | updatePersons, activate                  | INSTANCE_ADMIN                                    | ACTIVATE_PERSON                   |
    | updatePersons, deactivate                | INSTANCE_ADMIN                                    | DEACTIVATE_PERSON                 |
    | updatePersons, set home space            | SPACE_ADMIN                                       | UPDATE_HOME_SPACE                 |
    | updatePlugins                            | INSTANCE_ADMIN                                    | UPDATE_PLUGIN                     |
    | updateProjects                           | SPACE_POWER_USER, PROJECT_ADMIN, SPACE_ETL_SERVER | UPDATE_PROJECT                    |
    | updateProjects, attachments              | SPACE_POWER_USER, PROJECT_ADMIN, SPACE_ETL_SERVER | UPDATE_PROJECT_ATTACHMENT         |
    | updatePropertyTypes                      | INSTANCE_ADMIN                                    | UPDATE_PROPERTY_TYPE              |
    | updateQueries                            | PROJECT_OBSERVER, SPACE_ETL_SERVER                | UPDATE_QUERY                      |
    | updateSampleTypes                        | INSTANCE_ADMIN                                    | UPDATE_SAMPLE_TYPE                |
    | updateSamples                            | PROJECT_USER, SPACE_ETL_SERVER                    | UPDATE_SAMPLE                     |
    | updateSamples, attachments               | PROJECT_USER, SPACE_ETL_SERVER                    | UPDATE_SAMPLE_ATTACHMENT          |
    | updateSamples, properties                | PROJECT_USER, SPACE_ETL_SERVER                    | UPDATE_SAMPLE_PROPERTY            |
    | updateSemanticAnnotations                | INSTANCE_ADMIN, INSTANCE_ETL_SERVER               | UPDATE_SEMANTIC_ANNOTATION        |
    | updateSpaces                             | SPACE_ADMIN, SPACE_ETL_SERVER                     | UPDATE_SPACE                      |
    | updateTags                               | PROJECT_OBSERVER, SPACE_ETL_SERVER                | UPDATE_TAG                        |
    | updateVocabularies                       | INSTANCE_ADMIN                                    | UPDATE_VOCABULARY                 |
    | updateVocabularyTerms, official terms    | PROJECT_POWER_USER, SPACE_ETL_SERVER              | UPDATE_OFFICIAL_VOCABULARY_TERM   |
    | updateVocabularyTerms, unofficial terms  | PROJECT_USER, SPACE_ETL_SERVER                    | UPDATE_UNOFFICIAL_VOCABULARY_TERM |
    
    ### Querying Project Database
    
    In some customized versions of openBIS an additional project-specific
    database is storing data from registered data sets. This database can be
    queried via SQL Select statements in openBIS Web application. In order
    to protect modification of this database by malicious SQL code openBIS
    application server should access this database as a user which is member
    of a read-only group. The name of this read-only group is project
    specific.
    
    
    ```{note}
    It is possible to configure openBIS to query multiple project-specific databases.
    ```
    
    Marco Del Tufo's avatar
    .
    Marco Del Tufo committed
    
    #### Create Read-Only User in PostgreSQL
    
    A new user (aka role) is created by
    
        CREATE ROLE <read-only user> LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
    
    This new user is added to the read-only group by the following command:
    
        GRANT <read-only group> TO <read-only user>;
    
    The name of the read-only group can be obtained by having a look into
    the list of all groups:
    
        SELECT * from PG_GROUP;
    
    *Note that by default openBIS creates a user* ` openbis_readonly `
    *which has read-only permissions to all database objects. You can use
    this user to access the openBIS meta database through the openBIS query
    interface.*
    
    #### Enable Querying
    
    To enable querying functionality for additional databases in openBIS Web
    application a [core plugin](/display/openBISDoc2010/Core+Plugins) of
    type query-databases has to be created. The following
    `plugin.properties` have to be specified:
    
    | Property          | Description                                                                                                               |
    |-------------------|---------------------------------------------------------------------------------------------------------------------------|
    | label             | Label of the database. It will be used in the Web application in drop down lists for adding / editing customized queries. |
    | database-driver   | JDBC Driver of the database, e.g. org.postgresql.Driver for postgresql.                                                   |
    | database-url      | JDBC URL to the database containing full database name, e.g. jdbc:postgresql://localhost/database_name for postgresql     |
    | database-username | Above-mentioned defined read-only user.                                                                                   |
    | database-password | Password of the read-only user.                                                                                           |
    
    #### Configure Authorization
    
    In order to configure authorization two additional properties can be
    configured:
    
    | Property                              | Description                                                                                                                                                                 |
    |---------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
    
    Marco Del Tufo's avatar
    Marco Del Tufo committed
    | <database>.data-space           | To which data-space this database belongs to (optional, i.e. a query database can be configured not to belong to one data space by leaving this configuration value empty). |
    | <database>.creator-minimal-role | What role is required to be allowed to create / edit queries on this database (optional, default: INSTANCE_OBSERVER if data-space is not set, POWER_USER otherwise).        |
    
    Marco Del Tufo's avatar
    .
    Marco Del Tufo committed
    
    The given parameters data-space and creator-minimal-role are used by
    openBIS to enforce proper authorization.
    
    For example, if
    
        data-space = CISD
        creator-minimal-role = SPACE_ADMIN
    
    is configured, then for the query database configured with key `db1`:
    
    -   only a `SPACE_ADMIN` on data space `CISD` and an `INSTANCE_ADMIN`
        are allowed to create / edit queries,
    -   only a user who has the `OBSERVER` role in data space `CISD` is
        allowed to execute a query.
    
    For query databases that do not belong to a space but that have a column
    with any of the [magic column
    names](/display/openBISDoc2010/Custom+Database+Queries#CustomDatabaseQueries-Hyperlinks),
    the query result is filtered on a per-row basis according to what the
    user executing the query is allowed to see. In detail this means: if the
    user executing the query is not an instance admin, filter out all rows
    which belong to a data space where the user doesn't have a least the
    observer role. The relationship between a row and a data space is
    established by means of the experiment / sample / data set whose
    `permId` is given by one of the magical column names.
    
    For sensitive data where authorization needs to be enforced, there are
    two setups possible:
    
    1.  Configure a query database that **does not** belong to a data space
        and set the creator-minimal-role to `INSTANCE_ADMIN`. Any instance
        admin can be trusted to understand authorization issues and ensure
        that only queries are added for this query database that contain a
        proper reference to an experiment / sample / data set. This way, it
        can be ensured that only properly filtered query results are
        returned to the user running the query.
    2.  Configure a query database that **does** belong to a specific data
        space and set the creator-minimal-role to `POWER_USER`. The
        datastore server (or whatever server maintains the query database)
        ensures that only information related to the configured data space
        is added to the query database. Thus whatever query the power user
        writes for this database, it will only reveal information from this
        data space. As only users with `OBSERVER` role on this data space
        are allowed to execute the query, authorization is enforced properly
        without the need of filtering query results.
    
    ### Master data import/export
    
    The master data of openBIS comprises all entity/property types, property
    assignments, vocabularies etc. needed for your customized installation
    to work. The system offers a way to export/import master data via Jython
    scripts. More information on how to do create such scripts and run them
    manually see the advanced guide [Jython Master Data
    Scripts](/display/openBISDoc2010/Jython+Master+Data+Scripts#JythonMasterDataScripts-Commandlinetools).
    
    A master data script can be run automatically by start up of the AS if
    it is defined in an AS core plugin. The script path should be
    `<installation directory>/servers/core-plugins/<module name>/<version number>/as/initialize-master-data.py`.
    For more details about the folder structure of core plugins see [Core
    Plugins](/display/openBISDoc2010/Core+Plugins). If there are several
    core plugins with master data scripts the scripts will be executed in
    alphabetical order of the module names. For example, the master data
    script of module `screening-optional` will be executed after the master
    data script of module `screening` has been executed.
    
    Execution of master data script can be suppressed by
    disabling `initialize-master-data` core plugin. For more details see
    [Core Plugins](/display/openBISDoc2010/Core+Plugins).
    
    ### Limit of open files
    
    When putting a lot of files in a drop box you might run into the problem
    of  '`too many open files error`'. Please consider changing the ulimit
    value (for RHEL6 edit `/etc/security/limits.conf` ) to a higher value.
    
    ### Runtime changes to logging
    
    The
    script  `<installation directory>/servers/openBIS-server/jetty/bin/configure.sh `can
    be used to change the logging behavior of openBIS application server
    while the server is running.
    
    The script is used like this: configure.sh \[command\] \[argument\]
    
    The table below describes the possible commands and their arguments.
    
    | Command                              | Argument(s)                                            | Default Value | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
    |--------------------------------------|--------------------------------------------------------|---------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
    | log-service-calls                    | 'on', 'off'                                            | 'off'         | Turns on / off detailed service call logging.
    
    Marco Del Tufo's avatar
    Marco Del Tufo committed
    When this feature is enabled, openBIS will log about start and end of every service call it executes to file <installation directory>/servers/openBIS-server/jetty/log/openbis_service_calls.txt                                                                                                                                                                                                                                 |
    
    Marco Del Tufo's avatar
    .
    Marco Del Tufo committed
    | log-long-running-invocations         | 'on', 'off'                                            | 'on'          | Turns on / off logging of long running invocations.
    
    Marco Del Tufo's avatar
    Marco Del Tufo committed
    When this feature is enabled, openBIS will periodically create a report of all service calls that have been in execution more than 15 seconds to file <installation directory>/servers/openBIS-server/jetty/log/openbis_long_running_threads.txt.                                                                                                                                                                          |
    
    Marco Del Tufo's avatar
    .
    Marco Del Tufo committed
    | debug-db-connections                 | 'on', 'off'                                            | 'off'         | Turns on / off logging about database connection pool activity.
    
    Marco Del Tufo's avatar
    Marco Del Tufo committed
    When this feature is enabled, information about every borrow and return to database connection pool is logged to openBIS main log in file <installation directory>/servers/openBIS-server/jetty/log/openbis_log.txt                                                                                                                                                                                            |
    | log-db-connections                   | no argument / minimum connection age (in milliseconds) | 5000          | When this command is executed without an argument, information about every database connection that has been borrowed from the connection pool is written into openBIS main log in file <installation directory>/servers/openBIS-server/jetty/log/openbis_log.txt
    
    Marco Del Tufo's avatar
    .
    Marco Del Tufo committed
    If the "minimum connection age" argument is specified, only connections that have been out of the pool longer than the specified time are logged. The minimum connection age value is given in milliseconds. |
    | record-stacktrace-db-connections     | 'on', 'off'                                            | 'off'         | Turns on / off logging of stacktraces.
    When this feature is enabled AND debug-db-connections is enabled, the full stack trace of the borrowing thread will be recorded with the connection pool activity logs.                                                                                                                                                                                                                                                                       |
    | log-db-connections-separate-log-file | 'on', 'off'                                            | 'off'         | Turns on / off database connection pool logging to separate file.
    
    Marco Del Tufo's avatar
    Marco Del Tufo committed
    When this feature is disabled, the database connection pool activity logging is done only to openBIS main log. When this feature is enabled, the activity logging is done ALSO to file <installation directory>/servers/openBIS-server/jetty/log/openbis_db_connections.txt.                                                                                                                                 |
    
    Marco Del Tufo's avatar
    .
    Marco Del Tufo committed
    
     
    
    ### Deleted Entity History
    
    Logging the history of deleted entities can be enabled / disabled in
    service.properties using setting
    
    entity-history.enabled = \[true | false\]
    
    Since 20.10.1 the default value is true (meaning, entity history is
    enabled). Before 20.10.1 the default value was false.
    
    Deleted entity history can be queried with script show-history.sh, which
    is located in $OPENBIS\_INSTALL\_DIR/bin
    
    ## Troubleshooting Problems
    
    ### Samples with datasets and no experiments
    
    In the openBIS UI users could detach samples with container data sets
    from the experiment. This bug was fix on version S176 released on 14 of
    march of 2014.
    
    The following SQL script lists all samples with data sets but no
    experiments:
    
        ##
        ## SELECT SAMPLES WITH DATASETS AND NO EXPERIMENTS
        ##
        SELECT s.id, d.expe_id from samples_all s join data_all d on (d.samp_id=s.id) where s.expe_id is null ORDER by s.id
    
    If the last query shows no output the system is fine, if not, it can be
    repaired with the following update query.
    
        ##
        ## FIX SAMPLES WITH DATASETS AND NO EXPERIMENTS ASSIGNING EXPERIMENT FROM DATASET
        ##
        UPDATE samples_all
        SET expe_id = subquery.expe_id
        FROM (
            SELECT s.id as samp_id, d.expe_id as expe_id from samples_all s join data_all d on (d.samp_id=s.id) where s.expe_id is null
        ) as subquery
    
        where id = subquery.samp_id