Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Offical apps | Community apps | Demo | Docs | Install
  1. Cloudron Forum
  2. Feature Requests
  3. Private CloudronVersions.json

Private CloudronVersions.json

Scheduled Pinned Locked Moved Feature Requests
17 Posts 7 Posters 1.4k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • jamesJ james

    Hello @lanhild

    @Lanhild said:

    its features shouldn't be restricted to publicly accessible URLs

    Although this sounds like a good idea, there is an issue.
    A URL is needed to make the app update process work.
    With just pasted JSON or an uploaded JSON file the app update flow would never work since there is no target to pull the new JSON from.


    If this is also about security, there are some options.
    Haven't tested this, but a password protected URL should work. i.e URL it with ?password=xx.
    Or another security via obscurity way would be to upload the CloudronVersions.json to a LAMP app in a folder with a 'secret' folder.
    For example https://lamp.cloudron.dev/a4ef19b785acd7c11ccd0b5c1551a8bd/CloudronVersions.json, the a4ef19b785acd7c11ccd0b5c1551a8bd is the 'password'.

    A secure approach would be to use a private docker registry for your community app and to give users credentials for the docker registry which they can configure in Cloudron.
    If the community app git repository is not public, there is also no way to just build the docker image yourself.
    This way, other people can have the CloudronVersions.json file but will not be able to pull the image without granted access to the private docker registry.


    @robi said:

    It would be nice if they could be hosted by the local registry app.

    The docker images? That should already work and is close to my above suggestion with a private registry. You'd just need to configure the docker registry in the Cloudron dashboard under /#/docker.
    Or do you mean hosting the CloudronManifest.json file in the registry app as well?


    I believe to understand that this feature request is not about security, hiding or protecting the CloudronVersions.json, but is about comfort and usability.
    If you are fine with losing the automatic app update flow, you can always just run cloudron install --location from the repo, which is not as comfortable as just pasting the JSON but resolves to the same outcome.

    Due to the mentioned disadvantages of just pasting JSON or upload a JSON file, it is my opinion that we should not add this.

    robiR
    robiR
    robi
    wrote on last edited by
    #6

    @james said:

    No, this is about CloudronVersions.json so the images are not separate from the version files.

    Could be on S3 as well since it can do http hosting.

    Conscious tech

    1 Reply Last reply
    0
    • jamesJ james

      Hello @lanhild

      @Lanhild said:

      its features shouldn't be restricted to publicly accessible URLs

      Although this sounds like a good idea, there is an issue.
      A URL is needed to make the app update process work.
      With just pasted JSON or an uploaded JSON file the app update flow would never work since there is no target to pull the new JSON from.


      If this is also about security, there are some options.
      Haven't tested this, but a password protected URL should work. i.e URL it with ?password=xx.
      Or another security via obscurity way would be to upload the CloudronVersions.json to a LAMP app in a folder with a 'secret' folder.
      For example https://lamp.cloudron.dev/a4ef19b785acd7c11ccd0b5c1551a8bd/CloudronVersions.json, the a4ef19b785acd7c11ccd0b5c1551a8bd is the 'password'.

      A secure approach would be to use a private docker registry for your community app and to give users credentials for the docker registry which they can configure in Cloudron.
      If the community app git repository is not public, there is also no way to just build the docker image yourself.
      This way, other people can have the CloudronVersions.json file but will not be able to pull the image without granted access to the private docker registry.


      @robi said:

      It would be nice if they could be hosted by the local registry app.

      The docker images? That should already work and is close to my above suggestion with a private registry. You'd just need to configure the docker registry in the Cloudron dashboard under /#/docker.
      Or do you mean hosting the CloudronManifest.json file in the registry app as well?


      I believe to understand that this feature request is not about security, hiding or protecting the CloudronVersions.json, but is about comfort and usability.
      If you are fine with losing the automatic app update flow, you can always just run cloudron install --location from the repo, which is not as comfortable as just pasting the JSON but resolves to the same outcome.

      Due to the mentioned disadvantages of just pasting JSON or upload a JSON file, it is my opinion that we should not add this.

      LanhildL
      LanhildL
      Lanhild
      App Dev
      wrote on last edited by
      #7

      @james said:

      @robi said:

      It would be nice if they could be hosted by the local registry app.

      The docker images? That should already work and is close to my above suggestion with a private registry. You'd just need to configure the docker registry in the Cloudron dashboard under /#/docker.

      I believe what @robi meant is to be able to store the CloudronVersions.json in a registry, much like what authentik does with blueprints.

      1 Reply Last reply
      2
      • robiR
        robiR
        robi
        wrote on last edited by
        #8

        Following up on this.. @james how do we make this happen with the registry?

        Conscious tech

        1 Reply Last reply
        0
        • girishG
          girishG
          girish
          Staff
          wrote on last edited by
          #9

          @robi we are working on this. There is a new container registry app which we have made from scratch. Still finishing things up before we can make an announcement .

          robiR 1 Reply Last reply
          4
          • girishG girish

            @robi we are working on this. There is a new container registry app which we have made from scratch. Still finishing things up before we can make an announcement .

            robiR
            robiR
            robi
            wrote on last edited by
            #10

            @girish thanks, can you include basic stats with it?

            Conscious tech

            1 Reply Last reply
            0
            • robiR
              robiR
              robi
              wrote on last edited by
              #11

              Ohh, also one thing missing is distinguishing of different builds by build number in the UI.

              If 2 of 3 are stuck, which ones do I stop?

              Conscious tech

              1 Reply Last reply
              0
              • H
                H
                huehner
                wrote on last edited by
                #12

                Hello,
                reading this thread i was wondering why can't we just use/offer the classic http with "Basic Authentication" with the username + password embedded in the URL ?

                That would (in theory) cloudron avoiding to need to create some separate flow or extra fields
                But just use a single/simple url field to (optionally) carry the auth information.

                https://user:password@domain/path

                That would allow people to use any server / service offering http-basic authentication (essentially any webserver)

                Trying that our in cloudron 'Add community app' that immediately fails with "versionsUrl is not a valid URL".

                Technically that fails in box/src/community.js but it looks like problem is rather in the frontend here in the onSubmit of the CommunityAppDialog

                const [url, version] = versionsUrl.value.split("@");

                which seems to use the @ symbol in the URL for some other cloudron specific purpose and thus rejecting otherwise valid urls ?

                Note that even allowing those url that would probably need some small change on cloudron backend as fetch API apparently doesn't allow url using url with embedded username/password. But that could be easily avoided converting those if present to the Authorization http header and stripping them from the url object itself.

                1 Reply Last reply
                0
                • jamesJ
                  jamesJ
                  james
                  Staff
                  wrote on last edited by
                  #13

                  Hello @huehner
                  That should already be possible.
                  Maybe you can try that?

                  H 1 Reply Last reply
                  0
                  • jamesJ james

                    Hello @huehner
                    That should already be possible.
                    Maybe you can try that?

                    H
                    H
                    huehner
                    wrote on last edited by
                    #14

                    Hello @james. I tried that before and it fails with the error message i mentioned "versionUrl is not a valid URL".

                    Trying to explain a bit better what i mean

                    Problem seems to be that this line in your frontend code
                    const [url, version] = versionsUrl.value.split("@");

                    For URL entered in the Cloudron Admin UI of value https://user:password@domain/path

                    The http-request send by the Admin-UI is
                    /api/v1/community/app?access_token=<redacted>&url=https://user:password&version=domain/path
                    which can be seen in Browser Developer tools.

                    As the frontend code seems use the @ character for its own purpose.
                    I'm not sure what it is trying to do as in the Publishing documentation there's no information about an @ symbol or some version value in the URL.

                    With gitlab.cloudron.io not accessible i can't share code link what i talk about for 'split' by @ is this code here
                    63b1ae78-0d9a-40a1-923a-bb74d919b2a8-image.jpeg

                    My guess is that this then too short url from that split reaches the backend here: box/src/community.js
                    3e9e9b46-f845-4656-bd62-0093b38aeec0-image.jpeg
                    and then is no longer a valid URL.

                    That is just a theory i might be totally wrong (and i don't have a test system i can add some debugging right now)

                    J jamesJ girishG 3 Replies Last reply
                    1
                    • H huehner

                      Hello @james. I tried that before and it fails with the error message i mentioned "versionUrl is not a valid URL".

                      Trying to explain a bit better what i mean

                      Problem seems to be that this line in your frontend code
                      const [url, version] = versionsUrl.value.split("@");

                      For URL entered in the Cloudron Admin UI of value https://user:password@domain/path

                      The http-request send by the Admin-UI is
                      /api/v1/community/app?access_token=<redacted>&url=https://user:password&version=domain/path
                      which can be seen in Browser Developer tools.

                      As the frontend code seems use the @ character for its own purpose.
                      I'm not sure what it is trying to do as in the Publishing documentation there's no information about an @ symbol or some version value in the URL.

                      With gitlab.cloudron.io not accessible i can't share code link what i talk about for 'split' by @ is this code here
                      63b1ae78-0d9a-40a1-923a-bb74d919b2a8-image.jpeg

                      My guess is that this then too short url from that split reaches the backend here: box/src/community.js
                      3e9e9b46-f845-4656-bd62-0093b38aeec0-image.jpeg
                      and then is no longer a valid URL.

                      That is just a theory i might be totally wrong (and i don't have a test system i can add some debugging right now)

                      J
                      J
                      joseph
                      Staff
                      wrote on last edited by
                      #15

                      @huehner said:

                      With gitlab.cloudron.io not accessible i can't share code link what i talk about for 'split' by @ is this code here

                      it is git.cloudron.io

                      1 Reply Last reply
                      0
                      • H huehner

                        Hello @james. I tried that before and it fails with the error message i mentioned "versionUrl is not a valid URL".

                        Trying to explain a bit better what i mean

                        Problem seems to be that this line in your frontend code
                        const [url, version] = versionsUrl.value.split("@");

                        For URL entered in the Cloudron Admin UI of value https://user:password@domain/path

                        The http-request send by the Admin-UI is
                        /api/v1/community/app?access_token=<redacted>&url=https://user:password&version=domain/path
                        which can be seen in Browser Developer tools.

                        As the frontend code seems use the @ character for its own purpose.
                        I'm not sure what it is trying to do as in the Publishing documentation there's no information about an @ symbol or some version value in the URL.

                        With gitlab.cloudron.io not accessible i can't share code link what i talk about for 'split' by @ is this code here
                        63b1ae78-0d9a-40a1-923a-bb74d919b2a8-image.jpeg

                        My guess is that this then too short url from that split reaches the backend here: box/src/community.js
                        3e9e9b46-f845-4656-bd62-0093b38aeec0-image.jpeg
                        and then is no longer a valid URL.

                        That is just a theory i might be totally wrong (and i don't have a test system i can add some debugging right now)

                        jamesJ
                        jamesJ
                        james
                        Staff
                        wrote on last edited by
                        #16

                        Hello @huehner

                        One could also integrate an access token into the URL like I have mentioned here:
                        https://forum.cloudron.io/post/123049

                        When we prototyped the community app store I even tested this and it worked.

                        1 Reply Last reply
                        3
                        • H huehner

                          Hello @james. I tried that before and it fails with the error message i mentioned "versionUrl is not a valid URL".

                          Trying to explain a bit better what i mean

                          Problem seems to be that this line in your frontend code
                          const [url, version] = versionsUrl.value.split("@");

                          For URL entered in the Cloudron Admin UI of value https://user:password@domain/path

                          The http-request send by the Admin-UI is
                          /api/v1/community/app?access_token=<redacted>&url=https://user:password&version=domain/path
                          which can be seen in Browser Developer tools.

                          As the frontend code seems use the @ character for its own purpose.
                          I'm not sure what it is trying to do as in the Publishing documentation there's no information about an @ symbol or some version value in the URL.

                          With gitlab.cloudron.io not accessible i can't share code link what i talk about for 'split' by @ is this code here
                          63b1ae78-0d9a-40a1-923a-bb74d919b2a8-image.jpeg

                          My guess is that this then too short url from that split reaches the backend here: box/src/community.js
                          3e9e9b46-f845-4656-bd62-0093b38aeec0-image.jpeg
                          and then is no longer a valid URL.

                          That is just a theory i might be totally wrong (and i don't have a test system i can add some debugging right now)

                          girishG
                          girishG
                          girish
                          Staff
                          wrote on last edited by
                          #17

                          @huehner a workaround for now is to use ?username=xx&password=yy . I have fixed the issue that you reported in any case and it will be part of the next release. With the fix you can pass username:password in the URL .

                          1 Reply Last reply
                          2

                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                          With your input, this post could be even better 💗

                          Register Login
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Bookmarks
                          • Search