The EuroCMS Repo module

Make this a monthly subscription option.

After purchase the HASH is generated using the uname,pword

Repo table structure

ecms_iddomain_iduser_idgroup_idfqdnsignaturevalidatedstatus_messageuser_lockstatus
111nulltest.nl{sha512}true1enabled
211nullexample.eu{sha512}falsePlease complete the validation steps.1disabled

ECMS Table structure

repo_iddomain_iduser_idgroup_idnamecomponentspwordsignaturehttpsHTTP_HOSTpathstatus
1111EuroCMSCore,Libraries,Modules,Themes{bcryptPassword}{sha512}truerepo.eurocms.eu/repo.jsonenabled
2111ThemesThemes{bcryptPassword}{sha512}truethemes.eurobytes.eu/repo.jsonenabled

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":{

      }
    }
  }
}

Reference