-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
12069a5
commit 8a7ea7d
Showing
6 changed files
with
455 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
name: Documentation | ||
|
||
on: | ||
push: | ||
branches: | ||
- documentation | ||
pull_request: | ||
branches: | ||
- documentation | ||
|
||
jobs: | ||
deploy: | ||
name: Deploy Documentation | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Setup Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 18 | ||
cache: npm | ||
|
||
- name: Install dependencies | ||
run: | | ||
cd website | ||
npm ci | ||
- name: Build website | ||
run: | | ||
cd website | ||
npm run build | ||
# Deploy to GitHub Pages | ||
- name: Deploy to GitHub Pages | ||
uses: peaceiris/actions-gh-pages@v3 | ||
if: github.ref == 'refs/heads/documentation' | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: ./website/build | ||
user_name: github-actions[bot] | ||
user_email: 41898282+github-actions[bot]@users.noreply.github.com | ||
|
||
# Notify on failure | ||
- name: Notify on failure | ||
if: failure() | ||
uses: actions/github-script@v6 | ||
with: | ||
script: | | ||
github.rest.issues.create({ | ||
owner: context.repo.owner, | ||
repo: context.repo.repo, | ||
title: 'Documentation build failed', | ||
body: 'The documentation build failed. Please check the workflow logs.' | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
# Storing Objects | ||
|
||
Open Register provides flexible storage options for objects, allowing organizations to store their data in various backends while maintaining a consistent interface. | ||
|
||
## Overview | ||
|
||
The storage system supports: | ||
- Multiple storage backends | ||
- Transparent data access | ||
- Unified querying interface | ||
- Consistent audit logging | ||
- Schema validation across stores | ||
|
||
## Storage Options | ||
|
||
### Nextcloud Internal Store (Default) | ||
Default storage using Nextcloud's database: | ||
- Objects stored as JSON in MariaDB/MySQL | ||
- Full CRUD operations | ||
- Built-in versioning | ||
- Automatic audit trails | ||
- Integrated with Nextcloud permissions | ||
|
||
### Relational Databases | ||
Traditional SQL databases: | ||
- MariaDB/MySQL | ||
- PostgreSQL | ||
- JSON column types | ||
- SQL query optimization | ||
- Transaction support | ||
|
||
### Document Stores | ||
NoSQL databases optimized for JSON documents: | ||
- MongoDB support | ||
- Native JSON storage | ||
- Schema-less flexibility | ||
- High performance queries | ||
- Scalable architecture | ||
|
||
### EAV (Entity-Attribute-Value) | ||
Integration with systems like "Uit Betrouwbare Bron": | ||
- Dynamic attribute storage | ||
- Flexible schema support | ||
- Legacy system compatibility | ||
- Custom attribute mapping | ||
- Historical data support | ||
|
||
## Storage Configuration | ||
|
||
Each register defines: | ||
- Storage backend type | ||
- Connection details | ||
- Schema mapping | ||
- Query optimization | ||
- Cache settings | ||
|
||
## Implementation Details | ||
|
||
### Internal Store | ||
```sql | ||
CREATE TABLE objects ( | ||
id INT PRIMARY KEY, | ||
uuid VARCHAR(255), | ||
object JSON, | ||
metadata JSON | ||
) | ||
``` | ||
|
||
### Document Store | ||
```json | ||
{ | ||
"_id": "object_id", | ||
"uuid": "unique_id", | ||
"object": { | ||
"property": "value" | ||
}, | ||
"metadata": { | ||
"created": "timestamp" | ||
} | ||
} | ||
``` | ||
|
||
### Relational Store | ||
```sql | ||
CREATE TABLE objects ( | ||
id INT PRIMARY KEY, | ||
uuid VARCHAR(255), | ||
data JSONB, | ||
created_at TIMESTAMP | ||
) | ||
``` | ||
|
||
### EAV Store | ||
```sql | ||
CREATE TABLE object_values ( | ||
object_id INT, | ||
attribute VARCHAR(255), | ||
value TEXT, | ||
PRIMARY KEY (object_id, attribute) | ||
) | ||
``` | ||
|
||
## Key Benefits | ||
|
||
1. **Flexibility** | ||
- Choose optimal storage per register | ||
- Match existing infrastructure | ||
- Scale independently | ||
- Custom implementations | ||
|
||
2. **Integration** | ||
- Legacy system support | ||
- Multiple databases | ||
- External systems | ||
- Distributed storage | ||
|
||
3. **Performance** | ||
- Storage optimization | ||
- Query efficiency | ||
- Caching strategies | ||
- Scalability options | ||
|
||
## Best Practices | ||
|
||
1. **Storage Selection** | ||
- Consider data structure | ||
- Evaluate query patterns | ||
- Assess volume requirements | ||
- Plan for growth | ||
|
||
2. **Configuration** | ||
- Optimize connections | ||
- Set up caching | ||
- Configure backups | ||
- Monitor performance | ||
|
||
3. **Management** | ||
- Regular maintenance | ||
- Performance monitoring | ||
- Security updates | ||
- Backup verification | ||
|
||
## Related Features | ||
|
||
- [Schema Validation](schema-validation.md) - Validate across storage types | ||
- [Audit Trails](audit-trails.md) - Track changes in all stores | ||
- [Content Search](content-search.md) - Search across stores | ||
- [Object Relations](object-relations.md) - Relations across stores |
Oops, something went wrong.