The EuroCMS Repo module
Make this a monthly subscription option.
After purchase the HASH is generated using the uname,pword
Repo table structure
| ecms_id | domain_id | user_id | group_id | fqdn | signature | validated | status_message | user_lock | status |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | null | test.nl | {sha512} | true | 1 | enabled | |
| 2 | 1 | 1 | null | example.eu | {sha512} | false | Please complete the validation steps. | 1 | disabled |
ECMS Table structure
| repo_id | domain_id | user_id | group_id | name | components | pword | signature | https | HTTP_HOST | path | status |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | EuroCMS | Core,Libraries,Modules,Themes | {bcryptPassword} | {sha512} | true | repo.eurocms.eu | /repo.json | enabled |
| 2 | 1 | 1 | 1 | Themes | Themes | {bcryptPassword} | {sha512} | true | themes.eurobytes.eu | /repo.json | enabled |
The sha512 sum is generated depending on info depending during installation.
First 2 character of the string is the startup. After the 2 characters, there is a dash suffixed. After that, after every 6 characters there is a dash suffixed, For example:
85-0c28ec-681a90-f5c239-4680e7-bdcf9d-381523-f91876-1e7cef-e4e92b-5eb3fe-fd27df-7b6ea3-66d065-2993b8-679fd1-db9e50-1a2cac-4f3e2b-d48fe9-b3e375-511d89
The hash is generated using values of uname, fname, email input fields during installation...
Certificates
Protect the connection between the repo and the ECMS installation, using certificates.
https://www.php.net/manual/en/openssl.configuration.php
https://wpquark.com/kb/misc/server-management/fixing-curl-ssl-connection-issue-php-ini/
https://www.devdungeon.com/content/how-use-ssl-sockets-php
repo.json
{
"EuroCMS":{
"components":{
"Core":"Core/Core.json",
"Modules":"Modules/Modules.json",
"Widgets":"Widgets/Widgets.json",
"Themes":"Themes/Themes.json"
}
}
}
Example Modules.json :
{
"Modules":{
"Users":{
"pretty_name":"The EuroCMS Users Module",
"version":"0.0.1",
"favicon":"",
"thumbnail":"",
"short_description":"Basically, in the `Users` section of this json, the contents of the metadata.json, permissions, and dependencies.json are displayed, with some added content needed for repos",
"long_description":"html entities escaped content",
"release_channel":"You can put here: concept,pre-alpha,alpha,beta,release-candidate,stable"
}
}
}
All in one example. If there are duizends or more, this might not be preferable.
{
"EuroCMS":{
"components":{
"core":{
},
"Modules":{
"Users":{
"pretty_name":"The EuroCMS Users Module",
"version":"0.0.1",
"favicon":"",
"thumbnail":"",
"short_description":"Basically, in the `Users` section of this json, the contents of the metadata.json, permissions, and dependencies.json are displayed, with some added content needed for repos",
"long_description":"html entities escaped content",
"release_channel":"You can put here: concept,pre-alpha,alpha,beta,release-candidate,stable"
}
},
"Widgets":{
},
"Themes":{
}
}
}
}