diff --git a/models_and_helper_scripts/sample-management-datamodel.yml b/models_and_helper_scripts/sample-management-datamodel.yml new file mode 100644 index 0000000000000000000000000000000000000000..f8deb9d90206c9a5b37690b233aa9ce35d6f52e6 --- /dev/null +++ b/models_and_helper_scripts/sample-management-datamodel.yml @@ -0,0 +1,293 @@ +# +# +# Copyright (C) 2024 IndiScale <info@indiscale.com> +# Copyright (C) 2024 Florian Spreckelsen <f.spreckelsen@indiscale.com> +# +# 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 <https://www.gnu.org/licenses/>. +# +ControlledRecordType: + description: | + Abstract type to denote that a RecordType is controlled, i.e., + that no new Records of this type may be created during + sample/container upload. Add this type as a parent to any + RecordType you want to be controlled. + +Responsible: + inherit_from_obligatory: + - ControlledRecordType + obligatory_properties: + Abbreviation: + description: An abbreviation for this entity that is used for creating BIS labels + datatype: TEXT +ResearchDivision: + inherit_from_obligatory: + - Responsible + obligatory_properties: + German name: + description: A german name for an entitiy. This can be used in queries since it is an alias. + datatype: TEXT +ResearchUnit: + inherit_from_obligatory: + - Responsible + obligatory_properties: + German name: + ResearchDivision: +Person: + inherit_from_obligatory: + - Responsible + obligatory_properties: + First name: + datatype: TEXT + Last name: + datatype: TEXT + Email: + datatype: TEXT + ResearchUnit: + +ContainerType: + inherit_from_obligatory: + - ControlledRecordType + obligatory_properties: + Abbreviation: + +Container: + obligatory_properties: + Responsible: + ContainerType: + BIS Label: + description: A standardized label for a container in BIS. + datatype: TEXT + suggested_properties: + Child container: + datatype: LIST<Container> + Container size: + description: The size of the container, e.g. number of spaces or dimension + datatype: TEXT + Custom label: + description: A custom label for a container that doesn't have to follow the BIS labeling guidelines. + datatype: TEXT + Container Contents: + datatype: TEXT + PI: + datatype: Person + +Sample: + recommended_properties: + NagoyaCase: + Container: + FunctionalGroup: + SampleType: + Parent sample: + datatype: Sample + Sampling Person: + datatype: Person + Main User: + datatype: Person + suggested_properties: + Custom ID: + datatype: LIST<TEXT> + Publications: + description: DOIs of publications related to this sample. + datatype: LIST<TEXT> + NCBI BioProject: + datatype: LIST<TEXT> + NCBI BioSample: + datatype: LIST<TEXT> + NCBI Accession: + datatype: LIST<TEXT> + Sampling method: + description: A short description of the sampling methodology used for this sample. + datatype: TEXT + Notes: + datatype: TEXT + Time sampled start: + datatype: DATETIME + Time sampled stop: + datatype: DATETIME + AphiaID: + description: An ID for this taxon that allows to uniquely identify it on http://www.marinespecies.org. + datatype: INTEGER + + +Collection: + inherit_from_obligatory: + - ControlledRecordType + +LabelCounter: + obligatory_properties: + Counter: + datatype: INTEGER + ContainerType: + +EEZ: + inherit_from_obligatory: + - ControlledRecordType + obligatory_properties: + MRGID: + description: The Marine Regions Geographic Identifier, i.e. a PID (Persistent Identifier) for a geographic region on https://www.marineregions.org + datatype: TEXT + +NagoyaCase: + obligatory_properties: + Nagoya Case Number: + description: An identifier for nagoya cases. This is managed by the Nagoya-Coordinator and should be taken care of before sampling. + datatype: TEXT + recommended_properties: + Nagoya documents: + description: A link to the Nagoya documents (or an indication where to find the documents). + datatype: TEXT + suggested_properties: + Old case number: + datatype: LIST<TEXT> + EEZ: + +Position: + obligatory_properties: + Latitude: + datatype: DOUBLE + unit: ° + Longitude: + datatype: DOUBLE + unit: ° + recommended_properties: + Water depth: + description: The depth of the water in meters as a positive value + datatype: DOUBLE + unit: m + Sampling depth: + description: The depth in meters where the sampling took place as a positive value + datatype: DOUBLE + unit: m + +FunctionalGroup: + inherit_from_obligatory: + - ControlledRecordType + +Gear: + inherit_from_obligatory: + - ControlledRecordType + recommended_properties: + Configuration: + datatype: TEXT + +Event: + obligatory_properties: + Gear: + recommended_properties: + Time start: + description: The date and time the event started. + datatype: DATETIME + suggested_properties: + Time stop: + description: The date and time the event ended. + datatype: DATETIME + +SourceEvent: + inherit_from_suggested: + - Event + obligatory_properties: + Position: + datatype: LIST<Position> + Gear: + recommended_properties: + Hol: + datatype: TEXT + Station Number: + datatype: TEXT + IGSN: + datatype: TEXT + DOI: + datatype: TEXT + suggested_properties: + Station ID: + description: The name/identifier of a station where regular sampling activity takes place. + datatype: TEXT + +Platform: + inherit_from_obligatory: + - ControlledRecordType + +SampleType: + inherit_from_obligatory: + - ControlledRecordType + +SampleTypeSpecific: + inherit_from_obligatory: + - ControlledRecordType + +StartPosition: + inherit_from_obligatory: + - Position + +StopPosition: + inherit_from_obligatory: + - Position + +RegisterSampleTemplate: + recommended_properties: + column_names: + datatype: LIST<TEXT> + +MeshPoreSize: + inherit_from_obligatory: + - ControlledRecordType + recommended_properties: + enumValue: + datatype: TEXT + +Fixation: + inherit_from_obligatory: + - ControlledRecordType + recommended_properties: + enumValue: + +StorageTemperature: + inherit_from_obligatory: + - ControlledRecordType + recommended_properties: + enumValue: + +Campaign: + inherit_from_obligatory: + - ControlledRecordType + description: Cruise name or leg description + +Sphere: + inherit_from_obligatory: + - ControlledRecordType + +Sample context: + inherit_from_obligatory: + - ControlledRecordType + +PDFReport: + inherit_from_obligatory: + - ControlledRecordType + description: PDF files which contain reports and additional information about samples, collections, or containers + +commonGermanName: + inherit_from_obligatory: + - ControlledRecordType + +commonEnglishName: + inherit_from_obligatory: + - ControlledRecordType + +Taxonomic group/Species: + inherit_from_obligatory: + - ControlledRecordType + +Sample container: + inherit_from_obligatory: + - ControlledRecordType diff --git a/test-profile/custom/caosdb-server/scripting/home/.pycaosdb.ini b/test-profile/custom/caosdb-server/scripting/home/.pycaosdb.ini new file mode 100644 index 0000000000000000000000000000000000000000..c5e98ee67c613de7146670942488957783c1247c --- /dev/null +++ b/test-profile/custom/caosdb-server/scripting/home/.pycaosdb.ini @@ -0,0 +1,18 @@ +[Connection] +url = https://localhost:10443 +cacert = /opt/caosdb/cert/caosdb.cert.pem +debug = 0 +timeout = 5000 + +[Misc] +sendmail = /usr/local/bin/sendmail_to_file + +[caoscrawler] +send_crawler_notifications=True +sendmail_from_address=crawler@example.com +sendmail_to_address=curator@example.com +public_host_url=https://localhost:10443 + +[sss_helper] +external_uri = https://localhost:10443 +