├── src ├── design │ ├── updates.js │ ├── filters.js │ ├── audit.js │ └── app.js ├── client │ ├── components │ │ ├── NoMatch.jsx │ │ ├── Allowed.jsx │ │ ├── ResponsiveTable.jsx │ │ ├── DatabaseAdministration.jsx │ │ ├── DisplayGroup.jsx │ │ ├── SidebarLink.jsx │ │ ├── pages │ │ │ ├── ManageDatabasePage.jsx │ │ │ ├── GroupsPage.jsx │ │ │ ├── LoginPage.jsx │ │ │ └── GroupMembershipsPage.jsx │ │ ├── DisplayRight.jsx │ │ ├── DisplayGroupList.jsx │ │ ├── GroupDataElement.jsx │ │ ├── DisplayRightList.jsx │ │ ├── LoginButton.jsx │ │ ├── GlobalRights.jsx │ │ ├── DefaultGroups.jsx │ │ ├── DatabaseSelector.jsx │ │ ├── Home.jsx │ │ ├── GlobalRightsEditor.jsx │ │ ├── DefaultGroupsEditor.jsx │ │ ├── LoginGoogle.jsx │ │ ├── EnterTextField.jsx │ │ ├── Groups.jsx │ │ ├── Sidebar.jsx │ │ ├── GroupCreator.jsx │ │ ├── GroupDataEditor.jsx │ │ ├── LoginGeneric.jsx │ │ ├── Login.jsx │ │ ├── EditableTextField.jsx │ │ ├── CreateUser.jsx │ │ └── ChangePassword.jsx │ ├── constants.js │ ├── styles │ │ └── index.css │ ├── reducers │ │ ├── dbName.js │ │ ├── main.js │ │ └── login.js │ ├── index.jsx │ ├── actions │ │ ├── main.js │ │ └── login.js │ ├── api.js │ ├── store.js │ └── dbManager.js ├── config │ ├── global.mjs │ ├── cli.js │ ├── env.js │ ├── home.js │ └── config.js ├── server │ ├── middleware │ │ ├── respondOk.js │ │ ├── decorateError.js │ │ └── util.js │ ├── error.js │ └── auth │ │ ├── ldap │ │ └── index.js │ │ ├── couchdb │ │ └── index.js │ │ ├── facebook │ │ └── index.js │ │ ├── oidc │ │ └── index.js │ │ └── google │ │ └── index.js ├── util │ ├── CouchError.js │ ├── isEmail.js │ ├── simpleMerge.js │ ├── die.js │ ├── ensureStringArray.js │ ├── load.js │ ├── tryMove.js │ ├── debug.js │ ├── groups.js │ ├── orcid.js │ ├── array_sets.js │ ├── getConfiguredDbs.js │ ├── token.js │ └── LDAP.js ├── index.js ├── initCouch.js ├── connect.js ├── import │ ├── ImportContext.js │ ├── index.js │ └── saveResult.js ├── init │ └── auditActions.js ├── constants.js ├── audit │ └── actions.js └── couch │ ├── find.js │ ├── imports.js │ ├── token.js │ ├── log.js │ ├── util.js │ ├── nano.js │ └── doc.js ├── test ├── homeDirectories │ ├── dev │ │ ├── test │ │ │ └── config.js │ │ ├── test-new-import │ │ │ └── config.js │ │ └── config.js │ ├── package.json │ ├── main │ │ ├── test-new-import │ │ │ ├── changeFilename │ │ │ │ ├── to_process │ │ │ │ │ └── test.txt │ │ │ │ └── import.js │ │ │ ├── error │ │ │ │ └── import.js │ │ │ ├── config.js │ │ │ ├── esm_mjs │ │ │ │ └── import.mjs │ │ │ ├── noReference │ │ │ │ └── import.js │ │ │ ├── full │ │ │ │ └── import.js │ │ │ └── separate │ │ │ │ └── import.js │ │ ├── test-ldap │ │ │ └── config.js │ │ ├── test-by-owner-unicity │ │ │ ├── lib.js │ │ │ ├── views │ │ │ │ └── testCustom.js │ │ │ ├── indexes │ │ │ │ └── testIndex.js │ │ │ └── config.js │ │ ├── test-global-unicity │ │ │ └── config.js │ │ ├── test │ │ │ └── indexes │ │ │ │ └── testIndex.js │ │ └── config.js │ ├── failUnallowedOverride │ │ ├── config.js │ │ └── testDatabase │ │ │ └── config.js │ ├── failDuplicateView │ │ └── testDatabase │ │ │ └── views │ │ │ ├── v1.js │ │ │ └── v2.js │ ├── failShareName │ │ └── testDatabase │ │ │ ├── views │ │ │ └── v0.js │ │ │ └── indexes │ │ │ └── i0.js │ ├── failShareDesignDoc │ │ └── testDatabase │ │ │ ├── views │ │ │ └── v0.js │ │ │ └── indexes │ │ │ └── i0.js │ ├── failDuplicateIndex │ │ └── testDatabase │ │ │ └── indexes │ │ │ ├── i1.js │ │ │ └── i2.js │ ├── failEsmWrongExport │ │ └── testDatabase │ │ │ └── wrongExport │ │ │ └── import.mjs │ ├── failEsmInJsFile │ │ └── testDatabase │ │ │ └── esm │ │ │ └── import.js │ └── constants.js ├── package.json ├── data │ ├── test.json │ ├── constants.js │ ├── anyuser.js │ ├── byOwnerEntryUnicity.js │ ├── insertDocument.js │ ├── globalEntryUnicity.js │ └── noRights.js ├── utils │ ├── testUtils.js │ ├── agent.js │ ├── couch.js │ ├── authenticate.js │ └── utils.js ├── unit │ ├── orcid.test.js │ ├── config │ │ ├── global_config.test.js │ │ ├── env_config.test.js │ │ └── load_db_config_errors.test.js │ ├── server │ │ ├── routes │ │ │ └── auth.test.js │ │ └── file_drop.test.js │ ├── import │ │ └── import_context.test.js │ ├── rights │ │ ├── default_groups.test.js │ │ ├── global.test.js │ │ ├── no_rights.test.js │ │ └── groups.test.js │ ├── rest-api │ │ ├── owners.test.js │ │ └── couchdb_user.test.js │ ├── attachments.test.js │ ├── token2.test.js │ ├── user.test.js │ ├── global_entry_unicity.test.js │ ├── by_owner_entry_unicity.test.js │ └── basic.test.js └── setup.js ├── codecov.yml ├── .dockerignore ├── .prettierignore ├── public └── assets │ ├── img │ ├── favicon.ico │ └── logo │ │ └── google_signin.png │ └── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── .gitignore ├── .prettierrc.json ├── bin ├── rest-on-couch-file-drop.js ├── rest-on-couch-server.js └── rest-on-couch-log.js ├── process.json ├── .ncurc.yml ├── vite.config.mjs ├── compose.yaml ├── Dockerfile ├── .env.test ├── node_test_coverage.config.json ├── .env.dev ├── index.html ├── Building.md ├── .github └── workflows │ ├── docker-image.yml │ ├── release.yml │ ├── codeql-analysis.yml │ ├── docker_run.yml │ └── nodejs.yml ├── LICENSE ├── tools └── batch │ └── addGroupToEntryByKind.js ├── eslint.config.mjs ├── scripts └── setup_database.mjs └── views └── login.hbs /src/design/updates.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/homeDirectories/dev/test/config.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/homeDirectories/dev/test-new-import/config.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /test/data/test.json: -------------------------------------------------------------------------------- 1 | { 2 | "database": "test" 3 | } 4 | -------------------------------------------------------------------------------- /test/homeDirectories/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "commonjs" 3 | } 4 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | ignore: 2 | - 'test/homeDirectories/' # ignore folders and all its contents 3 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | conf 2 | coverage 3 | docs 4 | node_modules 5 | public/bundle* 6 | test 7 | tools 8 | .git 9 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | /public 2 | /CHANGELOG.md 3 | /views 4 | /coverage 5 | /dist 6 | /src/client/styles/lib 7 | -------------------------------------------------------------------------------- /test/homeDirectories/main/test-new-import/changeFilename/to_process/test.txt: -------------------------------------------------------------------------------- 1 | changeFilename test import file -------------------------------------------------------------------------------- /public/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheminfo/rest-on-couch/HEAD/public/assets/img/favicon.ico -------------------------------------------------------------------------------- /public/assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheminfo/rest-on-couch/HEAD/public/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/client/components/NoMatch.jsx: -------------------------------------------------------------------------------- 1 | export default function NoMatch() { 2 | return
{text}
9 |Welcome to the dashboard!
9 |
10 | {'Please '}
11 |
29 | Currently selected database is
30 | {props.dbName}
31 |
{`You are logged in as ${props.user}.`}
37 | {dbContent} 38 |39 | {props.isAdmin && You are an admin of this database.} 40 |
41 |56 |
63 | 64 |71 |
78 | 79 |86 | Click here to login with {{ pluginConfig.oidc.title }} 87 |
88 |