Commit 932dab81 authored by Kristin Riebe's avatar Kristin Riebe
Browse files

initial commit; new: LogoutLink view helper

parents
*.so
nbproject
.DS_Store
Lead Developers:
Jochen S. Klar
Adrian M. Partl
Contributers:
Kristin Riebe
Testers:
Fernando Campos
Taavi Tuvikene
Harry Enke
\ No newline at end of file
How to setup a basic instance of daiquiri
'''''''''''''''''''''''''''''''''''''''''
This is meant to be a step by step guide to setup a new instance of daiquiri.
It is tested with Ubuntu 12.04, debian 7.0 and Scientific Linux 6.3. Other
distributions might differ. For the deployment of an existing daiquiri web
application on a new server, follow only first steps until Initialising
Project.
A more detailed documentation can be found on https://escience.aip.de/daiquiri
Install prerequisites and prepare server
----------------------------------------
As usual it is the best idea to install as much as possible using the
distribution packaging system.
# For RHEL/CentOS/SL
$ yum install httpd mysql git php php-devel php-mysql php-gd php-pear
# debian/Ubuntu
$ apt-get install apache2 mysql-server git php5 php5-dev php5-mysql php5-gd
On debian/Ubuntu mod rewrite needs to be enabled manually.
$ a2enmod rewrite
Obtain the daiquiri and the daiquiri-app repository
---------------------------------------------------
The preferred way of getting the Daiquiri repositories is by cloning them from
github:
$ git clone ssh://git@github.com/jochenklar/daiquiri.git
$ git clone ssh://git@github.com/jochenklar/daiquiri-app.git
or
$ git clone https://github.com/jochenklar/daiquiri.git
$ git clone https://github.com/jochenklar/daiquiri-app.git
Although not necessary, it is recommended to clone both repositories next to
each other in one directory. For this document we assume this is '/srv/daiquiri'.
Configure the init.php file of the application
----------------------------------------------
Change to the daiquiri-app directory and copy default.init.php to init.php
(which is ignored by git).
Then edit init.php for your individual setup. The different options are covered in the HTML
documentation (see https://escience.aip.de/daiquiri/setup/init/).
Create captcha and download directory
-------------------------------------
Daiquiri needs directories to store captcha images and download files. Again,
we recommend to put these under '/srv/daiquiri/'. For Ubuntu the AppArmor rules
must be adjusted, to make it possible for MySQL to write in the download directory.
In RHEL/CentOS/SL selinux should be set to permissive.
mkdir -p /srv/daiquiri/captcha /srv/daiquiri/download
# RHEL/CentOS/SL
chown -R apache:apache /srv/daiquiri
# Ubuntu/debian
chown -R www-data:www-data /srv/daiquiri
# when running AppArmor
echo "/srv/daiquiri/download/** rw," >> /etc/apparmor.d/local/usr.sbin.mysqld
Configure virtual host for Apache
---------------------------------
The virtual host configuration can be automatically generated by the init.php
file. For this, change into application directory and run:
./init.php -v
Please copy the lines you need to your apache configuration and restart the
server.
# RHEL/CentOS/SL
service httpd restart
# Ubuntu/debian
service apache2 restart
Configure MySQL database
------------------------
As for the virtual host configuration, the commands to create users in MySQL
can also be automatically generated. For this, change into application
directory and run:
./init.php -u
Check the output and then copy-paste it into an MySQL root prompt.
To clear the database from the user created in this way the output of
./init.php -c
can be used.
Create softlinks
----------------
The daiquiri application needs several softlinks to work:
library -> /path/to/daiquiri/library
modules -> /path/to/daiquiri/modules
public/captcha -> /var/www/captcha
public/daiquiri -> /path/to/daiquiri/client
They can be automatically created by running
./init.php -l
Run the init process
--------------------
If everything is set up, the actual init process which creates the databases
and tables can be triggered. This is done by calling:
./init.php -si # 's' for syncing the database and 'i' for initializing
This diff is collapsed.
-------------------------------------------------------------------------
THIS NOTICE APPLIES TO ALL FILES CONTAINED IN THIS AND UNDERLYING FOLDERS
-------------------------------------------------------------------------
Daiquiri - A framework for the publication of scientific databases
Copyright (c) 2012-2015 Jochen S. Klar <jklar@aip.de>,
Adrian M. Partl <apartl@aip.de>,
AIP E-Science (www.aip.de)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
This code contains code derived from several other projects, which are distibuted
under the following licenses:
Zend Framework <http://framework.zend.com>
------------------------------------------
Copyright (c) 2005-2014, Zend Technologies USA, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of Zend Technologies USA, Inc. nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PHP-SQL-Parser <https://github.com/greenlion/PHP-SQL-Parser>
------------------------------------------------------------
Copyright (c) 2014, Justin Swanhart <greenlion@gmail.com> and André Rothe <phosco@gmx.de>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the {organization} nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Twitter bootstrap <http://twitter.github.io/bootstrap/>
-------------------------------------------------------
Copyright 2012 Twitter, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this work except in compliance with the License. You may obtain a copy of the
License in the LICENSE file, or at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.
angular.js <https://angularjs.org/>
-----------------------------------
The MIT License
Copyright (c) 2010-2014 Google, Inc. http://angularjs.org
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
jQuery <https://jquery.org>
---------------------------
Copyright 2014 jQuery Foundation and other contributors
http://jquery.com/
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
CodeMirror <http://codemirror.net/>
-----------------------------------
Copyright (C) 2014 by Marijn Haverbeke <marijnh@gmail.com> and others
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
bootstrap-datepicker.js <https://github.com/eternicode/bootstrap-datepicker>
-----------------------------------------------------------------------------
Copyright 2012 Stefan Petre
Improvements by Andrew Rowls
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
flot <http://www.flotcharts.org>
--------------------------------
Copyright (c) 2007-2014 IOLA and Ole Laursen
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
Droid fonts <https://www.google.com/fonts/specimen/Droid+Sans>
--------------------------------------------------------------
The Droid fonts are distributed under the Apache License, Version 2.0
font-awesome <http://fontawesome.io/>
-------------------------------------
The Font Awesome font is licensed under the SIL OFL 1.1:
* http://scripts.sil.org/OFL
Font Awesome CSS, LESS, and SASS files are licensed under the MIT License:
* http://opensource.org/licenses/mit-license.html
The Font Awesome documentation is licensed under the CC BY 3.0 License:
* http://creativecommons.org/licenses/by/3.0/
Attribution is no longer required as of Font Awesome 3.0, but much appreciated:
* Font Awesome by Dave Gandy - http://fontawesome.io
Full details: http://fontawesome.io/license
wheelzoom <http://www.jacklmoore.com/wheelzoom/>
------------------------------------------------
Copyright (c) 2014 Jack Moore
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
2015/09/08
==========
New job management!
New configuration key need to be added.
query.query.qqueue.userQueues.long.priority 10
query.query.qqueue.userQueues.long.timeout 2400
query.query.qqueue.userQueues.short.priority 20
query.query.qqueue.userQueues.short.timeout 30
If running direct queries:
ALTER TABLE `Query_Jobs` ADD COLUMN `sources` TEXT NOT NULL;
ALTER TABLE `Query_Jobs` ADD COLUMN `prev_status_id` INTEGER;
ALTER TABLE `Query_Jobs` ADD COLUMN `type_id` INTEGER;
ALTER TABLE `Query_Jobs` ADD COLUMN `group_id` INTEGER;
ALTER TABLE `Query_Jobs` ADD COLUMN `prev_id` BIGINT;
ALTER TABLE `Query_Jobs` ADD COLUMN `next_id` BIGINT;
ALTER TABLE `Query_Jobs` ADD COLUMN `ip` VARCHAR(45);
ALTER TABLE `Query_Jobs` ADD COLUMN `nrows` BIGINT;
ALTER TABLE `Query_Jobs` ADD COLUMN `size` BIGINT;
ALTER TABLE `Query_Jobs` ADD COLUMN `complete` BOOL NOT NULL;
ALTER TABLE `Query_Jobs` ADD COLUMN `removed` BOOL NOT NULL;
ALTER TABLE `Query_Jobs` DROP `comment`;
If running qqueue queries:
Query_Jobs needs to be dropped (should be empty) and ./init.php -s needs to be run.
In addition
moveJob,createGroup,updateGroup,moveGroup,toggleGroup,deleteGroup
have to be added to the permissions for Query_Model_Account guest or user in Auth_Rules.
2015/04/21
==========
Query_Examples needs to be altered:
ALTER TABLE `Query_Examples` ADD COLUMN `order` INTEGER;
2015/03/02
==========
Auth_Token needs to be created, run
./init.php -s
Requrired columns for detail keys:
ALTER TABLE `Auth_DetailKeys` ADD COLUMN `required` BOOL NOT NULL;
ALTER TABLE `Meetings_ParticipantDetailKeys` ADD COLUMN `required` BOOL NOT NULL;
ALTER TABLE `Meetings_ParticipantDetailKeys` ADD COLUMN `hint` VARCHAR(256);
2014/12/08
==========
New static file functionality, run ./init.php -si to add the new table.
Resources neew to be updated as well.
2014/10/10
==========
Query_Model_Account::listJobs() has been renamed to index().
Query_Model_Download::regen() has been renamed to regenerate().
Dropping and re-initing Auth_Rules or manually changing the strings in
Auth_Rules.permissions is required.
2014/09/22
==========
The suffixed for the download adapters have been changed and need to be changed in
the configuration of existing applications as well:
'mysql' => array('suffix' => "sql")
'csv' => array('suffix' => "csv")
'vodump-csv' => array('suffix' => "csv")
'votable' => array('suffix' => "votable.xml")
'votableB1' => array('suffix' => "votableB1.xml")
'votableB2' => array('suffix' => "votableB2.xml")
Note that the dot at the beginning is removed and will be added automatically.
2014/07/18
==========
Meetings module refactored: Participant detail keys and meetings need to be updated.
ALTER TABLE `Meetings_ParticipantDetailKeys` ADD COLUMN `type_id` INTEGER NOT NULL;
ALTER TABLE `Meetings_ParticipantDetailKeys` ADD COLUMN `options` VARCHAR(256);
ALTER TABLE `Meetings_Meetings` ADD COLUMN `slug` VARCHAR(256) NOT NULL;
2014/07/11
==========
The headDaiquiri helper is now called headStatic. Layout files need to be updated.
2014/05/19
==========
Big refactoring, a lot of things to change:
* update init to new layout, especially $options['init'] key
* update database schema
in the database:
DROP TABLE Auth_Resources;
DROP TABLE Auth_Rules;
DROP TABLE Config_Entries;
RENAME TABLE Config_Messages TO Core_Messages;
RENAME TABLE Config_Templates TO Core_Templates;
ALTER TABLE Data_Columns ADD COLUMN `publication_select` BOOLEAN;
ALTER TABLE Data_Columns ADD COLUMN `publication_update` BOOLEAN;
ALTER TABLE Data_Columns ADD COLUMN `publication_insert` BOOLEAN;
ALTER TABLE Data_Columns ADD COLUMN `publication_role_id` INTEGER;
DELETE FROM Auth_Sessions;
in the app directory:
./init.php -si
2014/02/20
==========
Order parameter for databases, table, columns, and function in data module introduced.
Re-Init or manual fix needed:
ALTER TABLE `Data_Databases` ADD COLUMN `order` INTEGER;
ALTER TABLE `Data_Tables` ADD COLUMN `order` INTEGER;
ALTER TABLE `Data_Columns` CHANGE COLUMN `position` `order` INTEGER;
ALTER TABLE `Data_Functions` ADD COLUMN `order` INTEGER;
2013/12/10
==========
Data permissions rewritten, resources in data do not check the publication role anymore. Concordantly, the Models in data should only be accessible by admin. Remove permissions on Data_Model_Databases, Data_Model_Tables, Data_Model_Columns, and Data_Model_Functions for user and guest.
WARNING! not setting this might be a potential security problem!
In init.php $options['data']['database'], $options['data']['tables'], $options['data']['columns'], $options['data']['functions'], $options['query']['examples'], the publication_role is now given by the corresponding string and not by the ID. Therefore publication_role_id is not valid anymore.
2013/12/04
==========
Table `Config_Messages` added. Resource 'Config_Model_Messages' with permission 'index,show,create,update,delete' for admin and 'show' for guest/user added.
Re-Init or manual fix needed:
CREATE TABLE IF NOT EXISTS `Config_Messages` (
`id` INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT,
`key` VARCHAR(256) NOT NULL,
`value` TEXT NOT NULL
) ENGINE InnoDB COLLATE 'utf8_unicode_ci';
INSERT INTO `Auth_Resources` VALUES (NULL,'Config_Model_Messages');
SET @resource_id := (SELECT id FROM `Auth_Resources` WHERE `resource`='Auth_Resources');
SET @role_id := (SELECT id FROM `Auth_Roles` WHERE `role`='admin');
INSERT INTO `Auth_Rules` VALUES (NULL,@role_id,@resource_id,'index,create,show,update,delete');
SET @role_id := (SELECT id FROM `Auth_Roles` WHERE `role`='user');
or
SET @role_id := (SELECT id FROM `Auth_Roles` WHERE `role`='guest');
INSERT INTO `Auth_Rules` VALUES (NULL,@role_id,@resource_id,'show');
2013/12/03
==========
In init.php $options['auth']['user'] the status and the role are now given by the corresponding string and not by the ID. Therefore status_id and role_id are not valid anymore.
Fields `description`, and `publication_role_id` added to Table `Query_Examples`. Re-Init of query example needed:
Re-Init or manual fix needed:
ALTER TABLE `Query_Examples` ADD `description` TEXT;
ALTER TABLE `Query_Examples` ADD `publication_role_id` INTEGER;
2013/11/22
==========
From now on, add the following config entry to your instance:
auth.activation:
set this to 1 if you want the user account to be validated by a moderator, the default value is 0.
WARNING! not setting this might be a potential security problem!
\ No newline at end of file
Daiquiri
========
**A framework for the publication of scientific databases**
Today, the publication of research data plays an important role in astronomy and astrophysics. On the one hand, dedicated programs, such as surveys like SDSS and RAVE, data intensive instruments like LOFAR, or massive simulations like Millennium and MultiDark are initially planned to release their data for the community. On the other hand, for more traditionally oriented research projects data publication becomes a key requirement demanded by the funding agencies.
The common approach is to publish this data via dedicated web sites. This includes rather simple HTML forms as well as complex query systems such as SDSS-CAS or the RAVE database query interface. Most of these web sites are tailor made for the particular case and are therefore not easily transferrable to future projects.
At Leibniz-Institute for Astrophysics Potsdam (AIP), we gained experience with both the maintenance and the development of such applications. The RAVE and MultiDark databases, the German SDSS mirror, and several smaller web sites are written or at least maintained by us. It became, however, apparent that already the current plethora of applications constitutes a major challenge for maintenance expenses and scalability.
In order to address these issues, we developed a new web framework, which is particularly designed to allow for different highly customizable web applications based on a common easily maintainable code base. It is called Daiquiri.
Features
--------
Here are some features that come with Daiquiri. This feature list is far from complete. One of the key design goals of Daiquiri is, to each advanced complex feature to have a simple version that works out of the box. Many of the advanced features require 3rd party tools and are thus more complicated to set up. Such features are marked in bold. Further we strive to make Daiquiri as Virtual Observatory (VO) compliant as possible. The currently implemented VO features are marked with VO.
- User management
- Permission management
- SQL query form