Skip to content
Snippets Groups Projects
Verified Commit 77eadb4e authored by Martin Weise's avatar Martin Weise
Browse files

Merge branch 'release-latest' into release-1.4.2

parents 41b87818 ff1bde0e
No related branches found
No related tags found
No related merge requests found
Showing
with 338 additions and 32 deletions
.docs/images/hero.png

298 KiB

.docs/images/screenshots/feature-cloud.png

80.2 KiB

.docs/images/screenshots/feature-identifiers.png

58.5 KiB

.docs/images/screenshots/feature-jupyter.png

96.1 KiB

.docs/images/screenshots/feature-search.png

25.3 KiB

--- ---
title: Home template: home.html
author: Martin Weise author: Martin Weise
hide: hide:
- navigation - navigation
- toc
social:
cards_layout_options:
title: Documentation that simply works
--- ---
# DBRepo: A Database Repository to Support Research
## Problem Statement ## Problem Statement
Digital repositories see themselves more frequently encountered with the problem of making databases accessible in their Digital repositories see themselves more frequently encountered with the problem of making databases accessible in their
...@@ -14,9 +16,6 @@ collection. Challenges revolve around organizing, searching and retrieving conte ...@@ -14,9 +16,6 @@ collection. Challenges revolve around organizing, searching and retrieving conte
constitute a major technical burden as their internal representation greatly differs from static documents most digital constitute a major technical burden as their internal representation greatly differs from static documents most digital
repositories are designed for. repositories are designed for.
[System Description](./system){ .action-button .md-button .md-button--secondary }
[How to use](./usage-overview){ .action-button .md-button .md-button--primary }
## Application Areas ## Application Areas
We present a database repository system that allows researchers to ingest data into a central, versioned repository We present a database repository system that allows researchers to ingest data into a central, versioned repository
......
{% extends "main.html" %}
<!-- Render hero under tabs -->
{% block tabs %}
{{ super() }}
<!-- Additional styles for landing page -->
<style>
/* Application header should be static for the landing page */
.md-header {
position: initial;
}
.md-content > article h1 {
display: none;
visibility: hidden;
}
/*!* Remove spacing, as we cannot hide it completely *!*/
.md-main__inner {
margin-top: 0;
}
/*!* Hide main content for now *!*/
/*.md-content {*/
/* display: none;*/
/*}*/
/*!* Hide table of contents *!*/
/*@media screen and (min-width: 60em) {*/
/* .md-sidebar--secondary {*/
/* display: none;*/
/* }*/
/*}*/
/*!* Hide navigation *!*/
/*@media screen and (min-width: 76.25em) {*/
/* .md-sidebar--primary {*/
/* display: none;*/
/* }*/
/*}*/
</style>
<!-- Hero for landing page -->
<section class="mdx-container">
<div class="md-grid md-typeset">
<div class="mdx-hero">
<!-- Hero image -->
<div class="mdx-hero__image">
<img
src="images/hero.png"
alt=""
class="img-border"
width="100%"
draggable="false"/>
</div>
<!-- Hero content -->
<div class="mdx-hero__content" style="margin-top:24px;margin-bottom:24px;">
<h1>DBRepo: A Database Repository to Support Research</h1>
<p>Set up in a few minutes.</p>
<a
href="{{ page.next_page.url | url }}"
title="{{ page.next_page.title | e }}"
style="margin-right: 10px;"
class="action-button md-button md-button--primary">
Get started
</a>
<a
href="{{ 'insiders/' | url }}"
title="Material for MkDocs Insiders"
class="action-button md-button md-button--secondary">
Learn more
</a>
</div>
</div>
</div>
</section>
<section>
<div class="md-grid md-typeset">
<div class="mdx-spotlight">
<figure class="mdx-spotlight__feature">
<a href="../system-services-search/" tabindex="-1" title="Built-in search">
<img src="images/screenshots/feature-search.png"
alt="Built-in search" loading="lazy"
width="500"
height="327">
</a>
<figcaption class="md-typeset">
<h2>Built-in search</h2>
<p>DBRepo makes your dataset <strong>searchable</strong> without extra effort: most metadata is
<strong>generated</strong> automatically for data in your databases. The fast and powerful
OpenSearch database allows a <strong>fast retrieval</strong> of any information.</p>
<p>Adding <strong>semantic mapping</strong> through a suggestion-feature, allows machines to
properly understand the context of your data.</p>
<p>
<a href="../system-services-search/" aria-label="Built-in search">Learn more</a>
</p>
</figcaption>
</figure>
<figure class="mdx-spotlight__feature">
<a href="../system-services-metadata/" tabindex="-1" title="Built-in search">
<img src="images/screenshots/feature-identifiers.png"
alt="Built-in search" loading="lazy"
width="500"
height="327">
</a>
<figcaption class="md-typeset">
<h2>Citable datasets</h2>
<p>Adopting the recommendations of the <strong>RDA-WGDC</strong>, arbitrary subsets can be
precisely, <strong>persistently identified</strong> using system-versioned tables of MariaDB and
the <strong>DOI</strong> schema.</p>
<p>External systems i.e. <strong>metadata harvesters</strong> (OpenAIRE, Google Datasets) can access
these datasets through OAI-PMH, JSON-LD and <strong>FAIR Signposting</strong> protocols.</p>
<p>
<a href="../system-services-metadata/" aria-label="Built-in search">Learn more</a>
</p>
</figcaption>
</figure>
<figure class="mdx-spotlight__feature">
<a href="../usage-python/" tabindex="-1" title="Built-in search">
<img src="images/screenshots/feature-jupyter.png"
alt="Built-in search" loading="lazy"
width="500"
height="327">
</a>
<figcaption class="md-typeset">
<h2>Powerful API for Data Scientists</h2>
<p>With our <strong>strongly typed</strong> Python Library, Data Scientists can import, export and
<strong>work with data</strong> from Jupyter Notebook or Python script, optionally using
<strong>Pandas DataFrames</strong>.
</p>
<p>For example: the <strong>AMQP API Client</strong> can collect continuous data from edge devices
like sensors and store them <strong>asynchronous</strong> in DBRepo.</p>
<p>
<a href="../usage-python/" aria-label="Built-in search">Learn more</a>
</p>
</figcaption>
</figure>
<figure class="mdx-spotlight__feature">
<a href="../deployment-helm/" tabindex="-1" title="Built-in search">
<img src="images/screenshots/feature-cloud.png"
alt="Built-in search" loading="lazy"
width="500"
height="327">
</a>
<figcaption class="md-typeset">
<h2>Cloud Native</h2>
<p>Our <strong>lightweight</strong> Helm chart allows for installations on <strong>any cloud
provider</strong> that has an underlying PV storage provider. DBRepo can be installed from the
Artifacthub repository.</p>
<p>Databases are managed as <strong>MariaDB Galera</strong> Cluster with high degree of replication,
ensuring your data is always <strong>accessible</strong>.</p>
<p>
<a href="../deployment-helm/" aria-label="Built-in search">Learn more</a>
</p>
</figcaption>
</figure>
</div>
</div>
</section>
{% endblock %}
{% extends "base.html" %}
{% block announce %}
<label for="version">Version</label>
<select style="margin-left:8px;" id="version" name="version" onchange="switchVersion(this.options[this.selectedIndex].value)">
<option value="latest">latest</option>
<option value="1.4.2">1.4.2</option>
<option value="1.4.1">1.4.1</option>
<option value="1.4.0">1.4.0</option>
<option value="1.3.0">1.3.0</option>
</select>
{% endblock %}
function getVersion() {
const segments = location.pathname.split('/');
if (segments.length > 4 && (segments[3].match(/[0-9]\.[0-9]\.[0-9]/g) || segments[3] == 'latest')) {
console.debug('version', segments[3]);
return segments[3];
}
console.debug('default version', '__APPVERSION__');
return '__APPVERSION__';
}
function switchVersion(value) {
if (!value) { return }
this.location.href = location.protocol + '//' + location.host + '/infrastructures/dbrepo/' + value + '/';
}
document.getElementById("version").value = getVersion();
\ No newline at end of file
File added
File added
File added
File added
File added
File added
File added
File added
File added
// ----------------------------------------------------------------------------
// Variables: breakpoints
// ----------------------------------------------------------------------------
// Device-specific breakpoints
$break-devices: (
mobile: (
portrait: px2em(220px) px2em(479.75px),
landscape: px2em(480px) px2em(719.75px)
),
tablet: (
portrait: px2em(720px) px2em(959.75px),
landscape: px2em(960px) px2em(1219.75px)
),
screen: (
small: px2em(1220px) px2em(1599.75px),
medium: px2em(1600px) px2em(1999.75px),
large: px2em(2000px)
)
);
\ No newline at end of file
:root,
[data-md-color-accent=indigo] {
--md-primary-fg-color: #006699;
--md-accent-fg-color: #005c8a /* darken 10% */ ;
--md-primary-fg-color--dark: #00537c /* darken 10% */ ; }
img.img-border {
border: 1px solid #b3b3b3; }
.md-typeset .md-button.md-button--secondary {
background: #ffffff; }
.md-typeset .md-button.md-button--secondary:focus, .md-typeset .md-button.md-button--secondary:hover {
color: var(--md-primary-fg-color);
background: #e5e5e5; }
.md-main .md-content a:not(.action-button):not([tabindex]),
.md-main .md-content a:not(.action-button):not([tabindex]) {
color: var(--md-typeset-color);
border-bottom: 2px solid var(--md-primary-fg-color); }
.md-main .md-content a:not(.action-button):not([tabindex]):focus, .md-main .md-content a:not(.action-button):not([tabindex]):hover,
.md-main .md-content a:not(.action-button):not([tabindex]):focus,
.md-main .md-content a:not(.action-button):not([tabindex]):hover {
color: var(--md-typeset-color);
border-bottom: 2px solid var(--md-primary-fg-color--dark); }
.md-banner {
background-color: var(--md-primary-fg-color--dark); }
@keyframes heart {
0%,
40%,
80%,
100% {
transform: scale(1); }
20%,
60% {
transform: scale(1.15); } }
.md-typeset .twitter {
color: #00acee; }
.md-typeset .mastodon {
color: #897ff8; }
.md-typeset .mdx-video {
width: auto; }
.md-typeset .mdx-video__inner {
position: relative;
width: 100%;
height: 0;
padding-bottom: 56.138%; }
.md-typeset .mdx-video iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
border: none; }
.md-typeset .mdx-heart {
animation: heart 1000ms infinite; }
.md-typeset .mdx-badge {
font-size: 0.85em; }
.md-typeset .mdx-badge--right {
float: right;
margin-left: 0.35em; }
.md-typeset .mdx-switch button {
cursor: pointer;
transition: opacity 250ms; }
.md-typeset .mdx-switch button:is(:focus, :hover) {
opacity: 0.75; }
.md-typeset .mdx-switch button > code {
display: block;
color: var(--md-primary-bg-color);
background-color: var(--md-primary-fg-color); }
.md-typeset .mdx-columns ol,
.md-typeset .mdx-columns ul {
columns: 2; }
.md-typeset .mdx-columns li {
break-inside: avoid; }
.md-typeset .mdx-flags {
margin: 2em auto; }
.md-typeset .mdx-flags ol {
list-style: none; }
.md-typeset .mdx-flags ol li {
margin-bottom: 1em; }
.md-typeset .mdx-flags__item {
display: flex;
gap: 0.125rem; }
.md-typeset .mdx-flags__content {
display: flex;
flex: 1;
flex-direction: column; }
.md-typeset .mdx-flags__content span {
display: inline-flex;
align-items: baseline;
justify-content: space-between; }
.md-typeset .mdx-flags__content > span:nth-child(2) {
font-size: 80%; }
.md-typeset .mdx-flags__content code {
float: right; }
.mdx-container {
padding-top: 0.25rem;
background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsla(0, 0%, 100%, 1)' /></svg>") no-repeat bottom, linear-gradient(to bottom, var(--md-primary-fg-color), #363949 99%, var(--md-default-bg-color) 99%); }
[data-md-color-scheme="slate"] .mdx-container {
background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1123 258'><path d='M1124,2c0,0 0,256 0,256l-1125,0l0,-48c0,0 16,5 55,5c116,0 197,-92 325,-92c121,0 114,46 254,46c140,0 214,-167 572,-166Z' style='fill: hsla(230, 15%, 14%, 1)' /></svg>") no-repeat bottom, linear-gradient(to bottom, var(--md-primary-fg-color), #363949 99%, var(--md-default-bg-color) 99%); }
.mdx-hero {
margin: 0 16px;
color: var(--md-primary-bg-color); }
.mdx-hero h1 {
margin-bottom: 20px;
font-weight: 700;
color: currentcolor; }
.mdx-hero__content {
padding-bottom: 120px; }
.mdx-spotlight__feature {
flex-direction: row-reverse; }
.mdx-spotlight .mdx-spotlight__feature {
width: 100%;
display: flex;
flex: 1 0 48%;
flex-flow: row nowrap;
gap: 3.2rem;
margin: 0 0 3.2rem; }
.mdx-spotlight .mdx-spotlight__feature:nth-child(odd) {
flex-direction: row-reverse; }
.mdx-spotlight .mdx-spotlight__feature > figcaption {
text-align: left;
font-style: inherit;
max-width: inherit;
margin: 1em auto 0 .8rem; }
.mdx-spotlight .mdx-spotlight__feature > a {
margin: 2rem 0;
display: block;
flex-shrink: 0; }
.mdx-spotlight .mdx-spotlight__feature > a > img {
border-radius: .2rem;
box-shadow: var(--md-shadow-z2);
display: block;
height: auto;
max-width: 100%;
width: 25rem; }
[data-md-component=announce] .md-banner__inner {
margin-top: 0.2rem;
margin-bottom: 0.2rem; }
/*# sourceMappingURL=custom.css.map */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment