I am a tool and a platform.
(Jump to Documentation)
"Corvus" is a latin noun, meaning "raven" or "crow".
It is a platform for all kind of things.
Warning:
This site is for developers and interested users only!
If you only need information about The Corvus Project (or 'The Corvus Network') or how to use it, please refer to the About-Page!
It is, what you want it to be.
It can do, what you want it to do.
You can customize and adjust everything as you need it, how you need it, when you need it.
It is as private as you want it to be.
Keep your life save and decide yourself how you manage your data!
Privacy is not a privilege. It's a right you have to fight for.
Because privacy matters.
Read more in 'About Corvus' for users
A package is a piece of software that allows you to do different kinds of tasks.
With packages a user can add functions to the system and customize it as he wants.
Packages can be open/available for every user, only to a specific user-group or even only to specific users.
Corvus has two types of packages:
Core Packages, which are part of the core of the system and are active by default. They use completly different access points and functions.
For example, the intern Codebase-Version-System
is a core package and only available to developers of Corvus.
Tool Packages, which can be created by everyone but have to be verified by the Corvus-Dev-Team (More information: Restrictions).
A Tool Package can be an app ('standalone') or a widget for the dashboard/sidebar - or both.
With apps and widgets, through packages, Corvus becomes the ultimate tool for anything.
However, please keep in mind: privacy is first. To get verified you need to follow the privacy standards of Corvus.
This includes the use of encryption in different levels (see Enryption & Security).
In the package root folder (see File Structure), create an empty JSON-File and rename it to config.json
.
In this example the root folder and package id is corvus.dev.sample
.
corvus.dev.sample/config.json:The package id has to be a unique identifier for the app/widget/package and will identify the authors too. The official Packages will have the ids
corvus.package.*
and Packages by Corvus-Devs will havecorvus.dev.*
orcorvus.dev.{username}.*
orcorvus.dev.{team}.*
. External packages will have a domain like package identifier likecom.example.*
if a domain is available. If no domain is available you can get a package root id when first logging in to the package controll interface. The generated package root ids will be e.g.ext.{custom package root id}.*
.
Please note, that the
package id
orpackage root id
can not be edited if verified once. However it might be possible to apply for a new package root id for new packages.
{
"verified": "[HASH]",
"package": {
"id": "corvus.dev.sample",
"name": "Sample Package",
"author": "CORVUS",
"created_by_user": ["root"],
"created_date": "2018-12-15",
"version": "1.0",
"version_date": "2018-12-15 12:00:00",
"description": "This is a package to show the folder and file structure for packages.",
"team_users": ["root"],
"allow_user_group": ["corvus.core.SU", "corvus.core.ADMIN", "corvus.dev.USER"],
"allow_custom_curl": false
},
"application_type": "standalone|widget|ink",
"standalone": {
"main_path": "/app/",
"mainfile": "index.php",
"display_name": "Sample App",
"navigation": "dynamic",
"navigation_file": "appnav_corvus_dev_sample.php",
"settings_mode": "default",
"settings_array": [
{"key": "key", "default": "default value"}
],
"edit_path": "/edit/",
"edit_mainfile": "index.php"
},
"widget": {
"type": "dashboard|sidebar",
"path": "/widget/",
"mainfile": "index.php",
"display_name": "Sample Widget",
"onclick_action": "edit_link",
"ink": "open:standalone/instancepath",
"edit_link": "popup:standalone/edit/datapath"
},
"ink": {
"path": "/ink/",
"big": {
"img": "ink.big.png",
"bg-color": "transparent",
"txt-color": "black",
"bg-color:hover" : "black",
"txt-color:hover": "white",
"title": "Sample App",
"sub-title-txt": "by CORVUS DEVS"
},
"normal": {
"img": "ink.icon.png",
"bg-color": "transparent",
"title": "Sample Package App",
"hover-title": "by CORVUS DEVS"
}
}
}
The config settings:Setting | values | description | |
verified |
required | '[HASH]' | Author and package verification: system-generated hash. Value will be overwritten by system. |
package |
required | object | Specifies the general package data |
package->id |
required | package id string | Generated using package manager for devs. |
package->name |
required | string | Package- and/or App-/Widget-Name. |
package->author |
required | string | Generated using package manager for devs. Verified author-/group-string. |
package->created_by_user |
required | array with usernames from creators in doublequotes | Users who created this package. |
package->created_date |
required | string in format: YYYY-mm-dd | Date the package was created |
package->version |
required | string | Custom Version Name (e.g. v1.0-alpha). Has to be changed on package-update. |
package->version_date |
required | string in format: YYYY-mm-dd HH:ii:ss | Date and time of package-creation |
package->description |
required | long string | This should be an accurate description of your package. This text will show in the app-installer. |
package->team_users |
optional | array with usernames in doublequotes or empty array | Users in this array can always edit the source package source/settings (overwrites allow_user_group ).
If empty, only creators and users specified in allow_user_group can access source code/settings.
To edit something user has to enable developer package/tools. |
package->allow_user_group |
required | array with user groups. | The following groups can be added: 'corvus.core.SU', 'corvus.core.ADMIN' and 'corvus.dev.USER'. 'team_users' will always overwrite 'allow_user_group': user can edit even if not in group. corvus.core.SU will be automatically added, if not found. |
package->allow_custom_curl |
optional | false (default), true | Allow package.php->custom_curl(...) function (see below) for package. Can be requested and has to be authorized. Inline curl is not allowed for privacy and security reasons (see restrictions)! |
application_type |
required | standalone, widget, ink | Combine multiple with "|". This defines the type of application you want to create. App/Tool (standalone), widget and/or 'ink' (external or internal link to application/site) |
standalone |
optional, required if application_type contains 'standalone' |
object | Defines all settings for the standalone app. |
standalone->main_path |
optional | '/app/' (default) or other path | Path to app folder relative to package root. |
standalone->mainfile |
optional | 'index.php' (default) or other PHP file | File that handles the app. |
standalone->display_name |
optional | package->name + 'App' (default) or string |
Standalone App Name. |
standalone->navigation |
optional | none (default), static, dynamic |
none :no app-specific navigation to display in sidebar. static :display contents of a static JSON-Array: [{"displayname": "link text", "link": "/subpathurl/", "title": "hover text"}, ...]. dynamic :display generated JSON in format like 'static'. implement function appnav_[PACKAGEID]($subpathurl="") where in PACKAGEID the '.' should be replaced with '_'.recommendation: static JSON file. |
standalone->navigation_array |
optional, required if standalone->navigation is 'static'. |
Array:
|
Array with navigation items (objects).displayname : text to display as navigation link. Not longer than 12 characters. link : custom link in path format, e.g. '/subpath/'. title : custom hover title.
|
standalone->navigation_file |
optional, required if standalone->navigation is 'dynamic'. |
string |
File(path) relative to package root to a dynamic navigation generator file (php). The file must contain the main function appnav_[PACKAGEID]($subpathurl="") where in PACKAGEID the '.' gets
replaced with '_'. The function gets the sub-path to display a dynamic navigation in context. The return value of the function has to be an JSON string, formated like standalone->navigation_array . This method is only recommended, if dynamic links are absolutly necessary. |
standalone->settings_mode |
optional | default (default), custom |
Specifies how settings for the instance(s) get handled. default : requires standalone->settings_array , displays settings in CORVUS-Mode, recommended. If no settings have to be made (Are you realy sure? Even no Encryption-Settings?), pass an empty array. custom : requires standalone->settings_file , displays custom site, only recommended if necessary. Important: support mode 'apply for all instances' and 'reset to defaults'! See functions below. User/instance specific settings can be accessed within instance header array. |
standalone->settings_array |
optional, required if standalone-> settings_mode is 'default' |
Array:
|
Specifies the settings for the standalone app. key (required): name of settings key. label (optional, default is key): label to display to user. default (required): default value. type (optional): input type: text (default), number, dropdown (multiple options), checkbox, longtext. options (required, if type is dropdown). Array with Strings. Value will be String. pattern (optional): regex input pattern for validation.
|
What's next?
Current Version: 2018.12.17 (Documentation: 2018.12.17) Upcoming:
- Package-Controll interface
- Create Package Config
- Upload Package
- Submit Package
- App Manager
- Encryption and SecurityChangelog
(newest first)
- Version 2018.12.17: created documentation; system stable, not released; registration closed
Powered by Corvus - Made by Felix Höddinghaus © 2018-2024 | Back to Corvus | About Corvus
The Creator of Corvus: Xefli.de | Other Projects