Proto commits in obiba/opal

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:181ce63
Author:Yannick Marcon
Committer:GitHub

feat: added job queue per R cluster (#4147) * feat: added job queue per R cluster * fix: code review

The documentation is generated from this commit.

Commit:cbcb8b3
Author:Yannick Marcon
Committer:GitHub

feat: added file bundle task for preparing download of large files (#4137) * feat: added file bundle command and options * feat: file bundle command implementation, add command result interface, applied to file download * feat: added support for multiple files bundling * feat: added file bundle progress message * feat: file bundle command can be cancelled * feat: file downloads can be reinstated * fix: always include project files link * fix: make sure file bundle command is available to everyone * fix: code review

Commit:ecbb499
Author:Yannick Marcon
Committer:GitHub

feat: added audit all permission allowing read only access to system (#4136) * feat: added audit all permission allowing read only access to system * feat: audit all permission added using wildcards * feat: updated ui to support audit all perm * feat: safeguard names from wildcard * chore: tr updated

Commit:ab3bb13
Author:Yannick Marcon
Committer:GitHub

feat: added project entities counts per type and files count (#4092) * feat: added entity counts per type * feat: added project files count * chore: code cleaning

Commit:73b0b3d
Author:Yannick Marcon
Committer:GitHub

feat: added setting to restrict R/DataSHIELD usage to personal access token authentication (#4090)

Commit:498ecd6
Author:Yannick Marcon
Committer:GitHub

feat: added userinfo to subject profile when available from oidc realm (#4088) * feat: added userinfo to subject profile when available from oidc realm * fix: sanitize user info values

Commit:8fdc04f
Author:Yannick Marcon
Committer:GitHub

feat: add re-auth on critical paths (#4079) * feat: added support for prompt and max_age in OIDC config, to help with reauthentication if provider supports it * feat: added ReAuthenticate to apply to REST resources that need to be protected with an authentication timeout, UI updated accordingly * feat: reauth in a dialog to not loose form data in a redirect * fix: cleaned add user dialog layout * fix: reauthenticate with credentials when user is from realm managed by agate * feat: reauth timeout for critical paths is configurable and can be disabled with a non positive value * feat: one resignin dialog for the app, api does the interception * feat: re-auth endpoints are configurable * feat: use simple wildcard in reauth config paths * chore: code cleaning

Commit:c9e0d0a
Author:Yannick Marcon
Committer:Yannick Marcon

feat: R session has a state (#4062) * feat: R session task manager added * feat: R session state and events added * feat: rock pod R session init moved to RockPodSession * fix: added logs and check r session is not pending before closing it * feat: display R session state/status in R admin page * fix: break loop when thread is interrupted * fix: break loop when thread is interrupted * fix: use a custom thread pool for rock pod sessions init * chore: code cleaning

Commit:6606011
Author:Yannick Marcon
Committer:GitHub

feat: improved management of pods (#4051) * feat: added liveness and readiness to rock pod #4048 * feat: added rock pod delay and max attempts to config #4049 * feat: attempts to reload project #4047 * feat: list or delete pod refs per spec * chore: log debug

Commit:b107a1e
Author:Yannick Marcon
Committer:GitHub

feat: added labels, node name, node selector and tolerances to pod spec (#4032) * feat: added labels, node name and selector to pod spec * feat: tolerances added to pod spec

Commit:9514071
Author:Yannick Marcon
Committer:GitHub

feat: kubernetes integration, rock spawner capability (#4031) * feat: legacy Rserve support removed * feat: added rock spawner app type (wip) * feat: added rock spawner app, with discovery and registration as an R cluster entry point * feat: rock spawner integration (wip) * feat: added k8s pod spec, ref and service * feat: added rock pod cluster of servers * fix: case rserver name does not have expected syntax * feat: ensure no potential conflict with pod name prefix * feat: improved rock spawner init phase * feat: R sessions ui * feat: added application lock file to avoid conflict when restarting opal pod * feat: download R server logs of the running pods * feat: added a beta badge to kubernetes admin page * fix: ensure work dir exists when locking * feat: rock spawner service has a running flag * feat: validate image references, can be restricted to a list of allowed ones * feat: added ui validations for pod specs * feat: make sure resource providers are initialized in k8s context * feat(ui): added pod spec removal

Commit:b7ca04d
Author:Ramin Haeri Azad
Committer:GitHub

Added query count API to get correct total counts (#3970) Co-authored-by: Ramin Haeri Azad <rhaeri@maelstrom-reseach.org>

Commit:3cb4e87
Author:Ramin Haeri Azad
Committer:GitHub

Clear only when starting search, added lastDoc for pagination (#3967) Co-authored-by: Ramin Haeri Azad <rhaeri@maelstrom-reseach.org>

Commit:059f0ad
Author:Yannick Marcon

feat: R packages management system setting added, disabled by default #3858

Commit:248cd3b
Author:Yannick Marcon
Committer:GitHub

feat: reporting feature removed (#3924)

Commit:40e80a8
Author:Yannick Marcon

feat(ui): added import data (wip), generate ts from proto

Commit:85db2a4
Author:Yannick Marcon
Committer:GitHub

feat: upgrade to Java 21, spring 6 and more (#3828) * Replaced @PostConstruct and @PreDestroy annotations by InitializingBean and DisposableBean interfaces * Upgrade of GWT, not working! * feat: java 17 wip * feat: upgrades orientdb graalvm resteasy (wip) * first java 17 compile and test * travis uses java 17 * deps versions fixes * jaxb * java 21 * opal-gwt-client removed * feat: upgraded vfs * feat: deb control updated with recommended packages * fix: upgraded slf4j, graal js engine usage to retrieve resourcer settings and utils * resteasy upgraded to latest * configure polyglot log * unzip plugin files in start scripts * orientdb and atomikos configurations * fix: ensure mime type on file download * code cleanup * do not load datasources concurrently (for now, to avoid liquibase errors) * removed windows start script because of missing plugins in classpath * orientdb create index is thread safe * opal upgrade is done in a separate, preliminary, process, because it was confusing some third party libs * jgit updated * makefile updated: removed gwt and update orientdb version

Commit:6772303
Author:Yannick Marcon

feat(backend): added configuration option for enforcing 2fa to users from ini and opal realms #3724

Commit:6b57061
Author:Yannick Marcon

R session activity web services added

Commit:07b0c77
Author:Yannick Marcon

#3802 R package commands added

Commit:aef26e4
Author:Yannick Marcon
Committer:GitHub

DataSHIELD activity logging (#3794) * #3744 #3745 WIP * Datashield context added for logging * DS error logging * DS workspace actions logging * Download all or latest logs. Record time spent in the R server. * Log assignments when async * Log rm * r_size added to track result size

Commit:1ad9423
Author:Yannick Marcon
Committer:Yannick Marcon

#3598 Use the OIDC end_session_endpoint when defined (and when enabled, default is true), to logout both from opal and the Identity provider

Commit:fc9080e
Author:Yannick Marcon

#3756 Added a configurable logout URL

Commit:97124c9
Author:Yannick Marcon

#3663 Added a list of emails to notify when report generation fails

Commit:24fc31f
Author:Yannick Marcon
Committer:Yannick Marcon

#3743 Opal file system bean extracted from the opal runtime one

Commit:d91ce6d
Author:Yannick Marcon

#3743 Opal file system bean extracted from the opal runtime one

Commit:b9979ce
Author:Yannick Marcon
Committer:Yannick Marcon

#3735 Apply domain specific callback url to ID providers

Commit:1df2b84
Author:Yannick Marcon

#3735 Apply domain specific callback url to ID providers

Commit:f4ab180
Author:Yannick Marcon

Use of table status

Commit:7245485
Author:Yannick Marcon

#3626 Added token expiration (default -1, no expiration) and activity (60d) timeouts

Commit:0d976ec
Author:Yannick Marcon
Committer:GitHub

Two-factor authentication mechanism added (#3711) * #3710 2FA feature added based on the TOTP mechanism * OTP exception allows HTTP header spec * #3710 2FA settings can be administrated

Commit:f7604b0
Author:Yannick Marcon

#3569 All columns property added

Commit:52b8735
Author:Yannick Marcon

#3569 No mutation script support (security), script edition not available for resource variables

Commit:b501752
Author:Yannick Marcon

#3569 Resource view can be associated to a R server profile

Commit:a22a77b
Author:Yannick Marcon

value table status added

Commit:6062e9a
Author:Yannick Marcon

#3569 Continuous summary added, without normal distribution and support of missing categories

Commit:c17861f
Author:Yannick Marcon

#3569 ResourceView first implementation, reusing RValueTable helper classes

Commit:ff69ecc
Author:Yannick Marcon

DS profile R parser version can be modified

Commit:656ebd8
Author:Yannick Marcon

#3655 DS R parser version handling, based on ds4j 2.0

Commit:7f45005
Author:Yannick Marcon

#3529 Both ID provider username (with claim name) and groups (with claim name and/or JS script) can be configured

Commit:0e0aaa7
Author:Yannick Marcon

R profiles added

Commit:e62902d
Author:Yannick Marcon
Committer:GitHub

DataSHIELD/R server profiles (#3648) * Get the R server by profile name. Datashield config storage move to orientdb started. * Datashield config moved to orientdb. DS methods handling refactored. * R administration page displays R server clusters * R cluster display layout * DataSHIELD administration page to handle profiles * Datashield Packages and Profiles sections, WIP * Reset DS profile * Reset DS profile and many UI improvements * Package DS settings can be (un)published in bulk * Confirm DS settings reset * Case there are multiple packages with same name (different servers and location) * Datashield profiles can be enabled/disabled and have their own REST resources * RServerProfile interface added * DataSHIELD profile access can require permission * Fix missing default R server profile definitio * Fix missing default R server profile definitio * DS methods and options can be removed in bulk * Handle case a R cluster is missing and associated profiles are still there * Fix resource providers discovery in the context of multiple clusters, ds admin permissions and default R server usage * DS profile display, addition, deletion * New DS profile is initialized with base profile settings

Commit:d6c7493
Author:Yannick Marcon

#3500 Read only token added

Commit:adbf9dd
Author:Yannick Marcon

#3616 SQL service added to Personal access token

Commit:bed4f6b
Author:Yannick Marcon

#3616 SQL history refactored as a log file

Commit:041b692
Author:Yannick Marcon

#3621 Project admin section added to personl access token

Commit:ba372ef
Author:Yannick Marcon

#3616 SQL query audit added: GET /service/sql/history

Commit:73680b7
Author:Yannick Marcon
Committer:Yannick Marcon

Fix App self-registration

Commit:0d485e9
Author:Yannick Marcon

Fix App self-registration

Commit:739f692
Author:Yannick Marcon

Cluster name added to App, refactored Rock app info

Commit:49064ec
Author:Yannick Marcon

#3579 Entity ID column name can be specified at export time

Commit:2dfd606
Author:Yannick Marcon

R errors handling reviewed

Commit:e9f2124
Author:Yannick Marcon

#2044 Extract R server host nb of cores and amount of free memory

Commit:f28355f
Author:Yannick Marcon

R packages with cluster and R server name

Commit:246d998
Author:Yannick Marcon
Committer:GitHub

#2044 R server clusters (#3610) * Refactor R server interactions with adapter pattern, to not expose Rserve implementation and allow Rock implementation * R command queue sync fix, more doc * Fixed DS result setter * R server cluster management added * RDatasource updated to read JSON objects * Write file to Rock * Sync resource providers seek after R servers have been init, R variable categories can be provided by labels attribute * Rock credentials config, code cleaning * Rserve integrated to default cluster, code cleaning * REST entry point added to manage R clusters and associated R servers (get/start/stop/log). * R sessions are associated to the R cluster and server where they were created * Rock R server discovery * App rejection * App have tags and not necessarily a server public address (case of app discovery) * DataSHIELD packages management * DataSHIELD packages management, Rserve fix * Merge R logs from a cluster of R servers * More R server web services, either at cluster or server level * R servers of default R cluster listed in the UI * App authentication, Opal connects as an admin if manager/user is not defined * Notify when R server is stopped, clean managed R sessions accordingly * Renamed default apps properties * Check for legacy R server service availability * Refresh R sessions after R server stop event * Stop/start R server individually * Apps administration UI added * R server logs can be downloaded individually or concatenated * Rock app config UI added * Rock config user credentials UI * Data assignment refactored so that base64 content is just forwarded to Rock

Commit:a881959
Author:Yannick Marcon

#2044 App registry added, to prepare R server app registration and usage.

Commit:40803ea
Author:Yannick Marcon

#3563 Option to backup views as tables

Commit:575cf7e
Author:Yannick Marcon

#3563 Restore zip archive, possibly encrypted. Override option is false by default

Commit:acfd94e
Author:Yannick Marcon

#3563 Project backup command added, restore command in progress.

Commit:17f20b8
Author:Yannick Marcon

#2171 User and group suggestions, based of opal realm, profiles and permissions

Commit:d5aebae
Author:Yannick Marcon

Resource providers status added

Commit:1488b7e
Author:Yannick Marcon

#3566 Project's dashboard added. Async load of projects' datasources on startup.

Commit:1d5a38f
Author:Yannick Marcon

#3567 Description field added to resource reference

Commit:0a77b73
Author:Yannick Marcon

Resource files are merged in one

Commit:76dcd68
Author:Yannick Marcon

Resource services refactored to use R packages configuration instead of a plugin

Commit:ce7625d
Author:Yannick Marcon
Committer:GitHub

Resources (#3556) * Resource plugins SPI added * #3538 Resource plugin web services and dtos * #3538 Resource reference model, dto, service, resource * #3538 Resource reference web service for CRUD operations * #3540 Resources tab added to project view, listing of resources * #3540 Project resources UI first commit. Credentials data are encrypted in the database. * #3539 R/DataSHIELD resource assignment, first commit * Case resource name has a dot * JSON schema form enum items can have title * Resource factories can be grouped * Resources list with more columns * Html integer input box added * Resources permissions added * Clean resources on resource deletion * Refactored resources UI to have a view per resource (to apply permission at this level) * Fix resource permissions * Added edit and remove buttons to resource page * Resource duplication, removal in batch, with confirmation * Fix project page authorizations * More project authorizers added * Required package can be identified from the form and loaded at assignment time * Fix case stream value is null

Commit:ea067d8
Author:Yannick Marcon

News panel and web service added, based on obiba.org data

Commit:bb1fd1c
Author:Yannick Marcon

#3529 Groups claim setting added to ID provider config

Commit:f8438bd
Author:Yannick Marcon
Committer:meek0

#3508 Tokens have a scope (#3521) * #3508 Access token scope can be restricted to enumerated projects * #3508 Project commands added to the scope of the token * #3508 Services added to the scope of the token * Handle token access to transient datasources * Token UI adjustments * Token UI adjustments (2) * #3508 #3477 opal.token option added to report template UI. Report parameters are stored encrypted and opal.password/opal.token options are hidden from the user. * Report UI fix * #3508 Sys admin added to token's scope * #3508 More system operations are submitted to token to be granted system admin * #3508 Opal REST client can authenticate with token. Applied to data import from a Opal server

Commit:cff113a
Author:Yannick Marcon
Committer:meek0

#3508 API access token added and handled to authenticate and grant permissions (#3520) * #3508 Opal token realm added, based on subject token object (managed by service and resources) * #3508 Token can give readonly access * #3508 Groups are saved in subject profile for reuse by token realm * #3508 No readonly mode, authz cache is managed by event subscription * #3508 UI to manage own's token added * Fix token realm shiro credentials (after token has been hashed) * Delete current session even when session id is specified (legacy)

Commit:54624d3
Author:Yannick Marcon

Subject profile page can include the account link when defined in the identity provider

Commit:00c8e4e
Author:Ramin Haeri Azad
Committer:Yannick Marcon

Project id mapping (#3481) * Added ProjectIdentifiersMapping in server/client code. * Remove project id mapping upon identifiers table/variable removal. * Added APIs to get a project ID mapping list or by entityType; refresh a project ID mapping list upon opening project admin TAB. * Added ID mapping when importing/exporting. * Added Edit/Remove project ID mapping. * Select best ID mapping when exporting several tables. * Bugfixes and cleanups.

Commit:56bf1ad
Author:Yannick Marcon
Committer:GitHub

OpenID Connect configuration UI (#3469) * Added OIDC configurations web services. Configurations can be disabled * OIDC configuration UI added * Display ID provider user account login page link when available * More fields and validations on ID provider form * Fix Spring component init

Commit:f1b4ce8
Author:meek0

refresh command and conflict management

Commit:5f56016
Author:Ramin Haeri Azad
Committer:meek0

Added a project default export folder. (#3466)

Commit:f0639d4
Author:Yannick Marcon

#3320 OpenID Connect support added. Pac4j dependency dropped.

Commit:4b2066a
Author:Yannick Marcon
Committer:Yannick Marcon

Login page shows OIDC clients

Commit:8d237a7
Author:Yannick Marcon
Committer:Yannick Marcon

opal-pac4j added

Commit:05ce073
Author:Ramin Haeri Azad
Committer:meek0

Changed analysisId to analysisName, name validation, fixed var chooser bug. (#3403)

Commit:a20feaf
Author:Ramin Haeri Azad
Committer:Yannick Marcon

Added last result success/failed count and added sorting to analyses table. (#3398)

Commit:c4d972b
Author:meek0
Committer:Yannick Marcon

set last analysis result status in analysis (#3390)

Commit:8597262
Author:meek0
Committer:Yannick Marcon

analysis name must be unique for project table (#3388) * analysis name must be unique for project table * remove id form analysis

Commit:083fe22
Author:Ramin Haeri Azad
Committer:meek0

Added icon for status in results panel, added duplicate action. (#3383)

Commit:9d0710b
Author:Ramin Haeri Azad
Committer:Yannick Marcon

Added anlysis editing, running from list, view+run. (#3373)

Commit:f96ad46
Author:meek0
Committer:Yannick Marcon

add pluginName in Analysis (#3368)

Commit:0f95122
Author:Ramin Haeri Azad
Committer:Yannick Marcon

Implemented export-analysis. (#3363) * Implemented export-analysis. * Removed limit and order and used lastResult instead.

Commit:eebdb25
Author:meek0
Committer:Yannick Marcon

analysis plugin resources (#3358)

Commit:8654812
Author:meek0
Committer:Yannick Marcon

analysis project and table GET resources (#3352) * analysis project and table GET resource * use dtos for list

Commit:a907fe4
Author:Ramin Haeri Azad
Committer:Yannick Marcon

Implemented the Analyze command (#3332) * Implemented the Analyze command * Used RUtils for R symbol names.

Commit:d6213b9
Author:Ramin Haeri Azad
Committer:Yannick Marcon

Added an ErrorDto for R runtime. (#3322) * Added an ErrorDto for R runtime. * Specialized the ErrorDto for OpalR WEB. * Added RRuntimeException and fixed PR comments. * Used the correct ErrorDto for RRuntimeException.

Commit:ddd5d75
Author:Yannick Marcon

#3307 Report datasource plugin group and use it in the UI

Commit:c725526
Author:meek0
Committer:Yannick Marcon

Remove limesurvey and related code (#3294) * Remove limesurvey and related code * Add upgrade step to remove all limesurvey databases * save databases as properties files for backup * make sure that file is created * call mkdirs to make sure directory tree exists * catch noSuchElementException * intall the plugin, forgo the check * set default value for textArea * add "usage.IMPORT." prefix to help streamline copy pasting th properties

Commit:a77e272
Author:Cedric Fontin

Use pluginDatasourceFactoryDtoParser

Commit:1326ec8
Author:Cedric Fontin

WIP - Plugin Datasource resource

Commit:b9b769a
Author:Yannick Marcon
Committer:Cedric Fontin

datasource spi and factory parser added

Commit:2c2b9c2
Author:Yannick Marcon

Plugin authorship added

Commit:2987391
Author:Yannick Marcon

Entity identifier suggestions added

Commit:cd1a828
Author:Yannick Marcon

OPAL-2944 New CSV import option: default value type can be specified (UI and python)

Commit:948ab11
Author:Yannick Marcon

OPAL-2907 Case of plugin update site connection failed

Commit:70edd7e
Author:Yannick Marcon

OPAL-2907 Plugin site properties are configurable through graphical or python UIs