• RE: Call to $CredentialProperty fails with "not configured to allow access to encrypted values" when it is

    Hi @brandon_owensby_2976,

    I wasn't able to reproduce this issue, but looking over the code, I can see a few scenarios in which "not configured to allow access to encrypted values" will trigger, even if that's not accurate. It's not trivial to rewrite that to provide a more accurate error message or credential resolution, so we'll add this to our BuildMAter 2027t roadmap and review it more closely then.

    In the meantime, I would just use a variable and duplicate the information.

    Thanks,
    Steve

    posted in Support
  • RE: Interacting with releases from otterscript, especially from within a scheduled job

    Hi @brandon_owensby_2976 ,

    You are correct, the $BranchName function is a build-information function that provides which branch a build was created from. It's a slightly different concept than the "default branch" that is associated with a release.

    If changing your workflow to align with more standard practices isn't in the cards, then you may want to create a custom extension that will allow you to create your own variable functions and operations. This will make adding things like this easy and if it's something we think is generally useful, then we can generally add it in.

    Although it's not supported in the SDK, if you take a reference to the core assembly (buildmaster.dll), you can invoke database commands like Releases_GetRelease to find that information easily.

    Thanks,
    steve

    posted in Support
  • RE: Request to update PSCall documentation for getting data back from a ps1 asset

    Glad I could help!

    We'll get that documentation updated as well.

    posted in Support
  • RE: Install Issues - Docker Compose + Postgres

    Hi @jeremy-oaks_9309,

    Glad to help! Please let us know if you have any issues with the migration.

    Thanks,
    Rich

    posted in Support
  • RE: Install Issues - Docker Compose + Postgres

    Hi @jeremy-oaks_9309,

    After digging into this further, there are a handful of issues that have all hit here. Before I dive into these, is there a reason you chose to use InedoDB over using the embedded database? Our guidance is when using a single ProGet container, use the embedded database. InedoDB is only recommended to be used with clustered installations of ProGet.

    In your case for using InedoDB and ProGet, there were basically 3 main issues that occurred.

    Issue 1:
    Your docker compose file is not quite correct. You currently have your volume mappings backwards which will cause your data to not be persisted through restarts. This is also why when you updated the the pg_hba.conf file, it did not persist. I should also point out there was a typo in our DockerFile, which pointed to the wrong directory for an InedoDB volume path. This is fixed in InedoDB 17.10.2. We also updated our InedoDB Docker Installation Docs to include the volume as well.

    Here is a modified version of your docker compose that will fix these issues:

    services:
      inedodb:
        image: proget.inedo.com/productimages/inedo/inedodb:17.10.2
        container_name: inedodb
        restart: unless-stopped
        ports:
          - "5432:5432"
        volumes:
          - /mnt/volume_nyc1_proget/postgres:/var/lib/inedodb
    
      proget:
        image: proget.inedo.com/productimages/inedo/proget:26.0.5
        container_name: proget
        restart: unless-stopped
        depends_on:
          - inedodb
        ports:
          - "8634:80"
        environment:
          PROGET_POSTGRES_CONNECTION_STRING: Host=inedodb;Port=5432;Database=proget;Username=inedodb;Password=<REDACTED>
        volumes:
          - /mnt/volume_nyc1_proget/proget/packages:/var/proget/packages
        deploy:
          resources:
            limits:
              memory: 2g
    

    Issue 2:
    The default for pg_hab.conf was too restrictive. This was actually updated in the Windows installer, but not in the inedodb create --name=proget command. This has now been fixed in InedoDB 17.10.2 and it will work out of the box. With that said, it is stored in a persisted volume, so changes will stay in affect. The other part of this is that when create a database, the container needs to be restarted. We have now added a message in the inedodb create command to restart the container.

    Issue 3:
    The connection string confusion. This is a side effect of Docker. When we generate the connection string in InedoDB, we use the get host name command from within the container. That hostname does not match the container name or network alias of the InedoDB . We have now added a warning when creating a database in InedoDB on Docker that you may need to update the host in the connection string.

    With all those addressed in docs and InedoDB 17.10.2, you should be good to create a new ProGet instance with InedoDB. If you have already started adding packages using your existing setup, I would be worried that your database and package files are not persisting through restarts. I would recommend:

    1. Set up a new instance using the DockerFile I used above and a trial key
    2. Import your packages from that instance to the new instance
    3. Shut down you old instance and move the license key to the new instance

    I know this is kind of long, so if you are confused on anything or have any other questions, please let me know!

    Thanks,
    Rich

    posted in Support
  • RE: uploading debian package with plurl still required distrubtion

    Hi @manuel-riezebosch_8638 ,

    It looks like the HTTP Endpoint documentation for the pgutil packages upload command was not accurate. A purl is not used here. I've updated the docs as follows...


    To upload a package, simply PUT to the URL with a feed name, an appropriate API Key and a package in either ZIP, JAR or TAR format depending on the value of the Content-Type header.

    PUT /api/packages/«feed-name»/upload[/«package-file-name»]
    

    The «package-file-name» part of the URL is only required for the PyPI and RPM feed types, while Debian feeds will require a distribution argument and an optional component. See the corresponding upload package method on ProGetClient.cs for the most accurate and up-to-date pgutil and HTTP endpoint argument mapping.


    Hope that helps!

    -- Dean

    posted in Support
  • RE: Request to update PSCall documentation for getting data back from a ps1 asset

    Hi @brandon_owensby_2976,

    Yes, that actually does wire things up with OtterScript, though I just realized I forgot to include a sample for how to actually invoke that script from OtterScript...

    PSCall2 MyScript.ps1
    (
        Parameters: %(inputvalue: Hello, resultingtext: outputvar)
    );
    
    Log-Information MyScript returned $outputvar;
    

    The Parameters argument is meant to handle anything declared as an input/output value in the script's header. Note that for outputs you actually supply the name of the OtterScript variable to assign as the parameter value. For the record, I agree that this is all very confusing and we could certainly do a better job in the UI and docs. I believe the original goal when we added PSCall2 was to make the script parameters more discoverable, but at least as it works now, it has had the opposite effect.

    That crazy stuff with the prefix is the mechanism it uses behind the scenes to capture output values that are declared in that parameters header or in the OuputVariables argument.

    Does using this kind of header and PSCall2 invocation work at all for you? There's other things that could go wrong with marshalling values to/from PowerShell, but this ought to at least get you outputs without having to jump through those extra hoops.

    -Greg

    posted in Support
  • RE: Install Issues - Docker Compose + Postgres

    Hi @jeremy-oaks_9309,

    Thanks for bringing this to our attention. This looks like a change will will need to make to the InedoDB container. Let me do some digging and I'll have an update for you soon.

    Thanks,
    Rich

    posted in Support
  • RE: Request to update PSCall documentation for getting data back from a ps1 asset

    Hi @brandon_owensby_2976,

    You're right that this is not very intuitive, and there are some outstanding issues we intend to fix in BuildMaster 2026. Generally, the best way to get all of this wired up right now is to have an Augmented Help header in the PowerShell script like this:

    <#
    .SYNOPSIS
        Appends world.
    
    .AHPARAMETER inputvalue
        Input string
    
    .AHPARAMETER resultingtext(output)
        Will be set to the resulting text
    
    #>
    
    param ([string]$inputvalue, [ref]$resultingtext)
    
    $resultingtext = $inputvalue + " world" 
    
    

    The key here is the [ref] specifier in the param block and the (output) specifier in the .AHPARAMETER augmented help header above.

    For scripts without a param/Augmented Help header, you should be able to use the InputVariables and OutputVariables parameters of PSCall2 instead.

    This is unfortunately missing from the docs at the moment, but before getting that updated I'd like to see if we can streamline or improve this to make it more intuitive.

    Does this help at all? We're happy to work with you to improve this before the 2026 release.

    Thanks!
    Greg

    posted in Support
  • RE: npm package version falsely marked as vulnerable by ProGet

    Hi @andreas-unverdorben_1551 ,

    I'm afraid this is a problem with our upstream source (GHSA). Long story short, the datafile is incorrect and does not specify a range.

    We do not have any plans to build a system/module that allows us to "override" data in the upstream datasources at this time, so the only way we can really address it is by fixing the upstream source.

    I believe the best route to do that would be to submit a pull request to the GHSA repository against the related datafiles (e.g. GHSA-4r6h-8v6p-xvw6.json)

    In this case, they are missing a "fixed" event in the range:

          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ]
    

    Here's what it needs to look like:

          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": " 0.19.3"
                }
              ]
            }
          ]
    

    Thanks,
    Steve

    posted in Support