Inedo Community Forums Forums
    • Recent
    • Tags
    • Popular
    • Login
    1. Home
    2. stevedennis
    3. Posts

    Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

    If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

    stevedennisS Offline
    • Profile
    • Following 0
    • Followers 1
    • Topics 0
    • Posts 532
    • Groups 2

    Posts

    Recent Best Controversial
    • RE: Lost Administrator Rights — How to Restore Admin Access?

      Hi @koksime-yap_5909 ,

      If you ever get "locked out" of an Inedo product, either due to misconfiguration or a lost password, you can restore the default Admin/Admin account and reenable Built-in User Sign-on by using ProGet.exe resetadminpassword

      Here's more information on this procedure:
      https://docs.inedo.com/docs/installation/security-ldap-active-directory/various-ldap-troubleshooting

      Thanks,

      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Mark private Nuget/Npm Packages as Vulnerable?

      Hi @tayl7973_1825 ,

      Thanks for the feedback; this is all a relatively new space, so we're in the process of building best practices / advice as well as tools to help teams solve these problems.

      Right now, based on your suggestion, it sounds like the workflow would require us to manually identify which applications depend on a vulnerable library, notify each owning team

      You are correct - the SCA Builds & Projects functionality is designed to "provide that link" between specific package versions and specific builds of applications. The builds are a moving target, as they may or may not be active/deployed.

      The "Project" in ProGet is not intended to the "source of truth" about the project itself, but be sort of sync'd with the truth (e.g. like an Application in BuildMaster). That's why there's a "stages timeline" for builds in PRoGet.

      hope it fits within their priorities, and then track remediation through individual tickets.

      Our advice here is to think of it more like, "advise them of the identified security risk and unavailability of the impacted library they are using". Ultimately it should be up to the team (their product owner) to evaluate the risk you identified and mitigate it. For example, TeamLunchDecider1000 can probably live with a security risk, but let the team decide.

      Once you've removed the library from ProGet, they can't use it anymore and it's "no longer your problem" to worry about or track through tickets.

      Ideally, we were hoping our package management system — since it already governs distribution and security controls — could act as that “one stop shop” to track and visualize which applications still rely on a vulnerable version along side it's assigned severity rating.

      ProGet already provides visibility into consumers through SCA, and you can already see how OSS Vulnerabilities impact builds.

      HOWEVER, our core advice here is to not try to establish your own in-house "vulnerability database" for in-house libraries your organization. Even large orgs (2000+ developers) won't do that.

      Instead, it's a simple binary decision: PULL or KEEP the library. If you PULL, then notify consumers it's unavailable going forward and let them decide how to mitigate.

      That approach is superior to OSS Vulnerability workflows, but it's obviously not possible for OSS library authors to do.

      Cheers,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Mark private Nuget/Npm Packages as Vulnerable?

      Hi @tayl7973_1825 ,

      Thanks for clarifying it. Based on that, I would say that "Vulnerabilities" are most definitely the wrong tool for the job. You can certainly "hammer in a screw" but there's a better way to do it - and we don't make "screw hammers" at Inedo 😉

      We're working on best practices / guidance on how to build security policies around these topics, but I'll try to give some tips now.

      What you're describing isn't a vulnerability per se, but a SAST Issue: a potential weakness in code detected by a static analysis security tool. Most of these are false positives and present no real security risks, but some are.

      If you discover a SAST Issue in one of your libraries, then you should use the following process:

      1. Evaluate if it's a false positive or not
      2. Unpublish the library internally if there's a security risk
      3. Enumerate the consumers (i.e. applications in flight or deployed to production)
      4. Evaluate the security risk (low, high), based on the consumers/usage
      5. Notify the application teams to upgrade the library as appropriate

      Note how this process is fundamentally different than OSS packages / vulnerability workflows:

      • you can unpublish/block packages from your repository
      • you know which applications are consuming your packages
      • you know which teams maintain which applications
      • you can work with those teams to assess the risks

      Bottom line: if a package causes a real security risk, then unpublish it and fix the consuming applications as appropriate. Otherwise, don't.

      There's really no middle ground or room in this process for "Vulnerabilities" - and trying to curate an internal "vulnerability database" is just going to make things less secure in your organization.

      That's a theme in our upcoming content, but the general idea is when you treat all issues/vulnerabilities as security risks, then it's impossible to focus on the ones that are actual risks -- and it's as meaningless as saying "everything is a top priority".

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Mark private Nuget/Npm Packages as Vulnerable?

      Hi @tayl7973_1825 ,

      This is not possible nor is it a workflow we'd recommend to support. Vulnerabilities have a very specific meaning / use case -- third-party discoveries in open-source packages that may impact your code (but probably won't) -- and it's not a good idea to "abuse" them for other purposes.

      Deprecated is one solution, but a better would be to use SCA and monitor how that package is being used, so you can understand impact on library consumers:
      https://docs.inedo.com/docs/proget/sca/builds

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: inedoxpack error: No extensions were found...

      Hi @yakobseval_2238 ,

      Can you let us know the commands/arguments you're using?

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Apply license key inside container

      Hi @jlarionov_2030,

      I haven't tested or tried it, but I can't help but wonder the API is responding with some kind of "license required" error, and blocking the seting.

      I suppose we could investigate and try to resolve the error, but automated setup with a license key isn't so common of a requirement.... if tis is not really something you will do that often, perhaps it's not worth the effort.

      Let us know your thoughts.

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Apply license key inside container

      Hi @jlarionov_2030 ,

      As of ProGet 2023 (or maybe earlier?), license keys are no longer requested / entered at installation time, but in the software itself now. This only matters on new instances.

      You can use pgutil settings to set a license key if you'd like.

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Not able to upload .spd files to proget assets

      Hi @parthu-reddy,

      Thanks for discovering/confirming that; unfortunately we're not able to reproduce this issue, as the multi-part / chunked uploads already take into account multiple servers.

      • Chunked upload sessions are persisted in the shared database (ChunkedUploads table)
      • Bytes are appended to a file stored in shared store

      Would you be able to dig into the request patterns a little more? I suspect there's "something" configured on the load-balancer that's "doing something weird" with these ranged requests.

      The Multipart Upload API explains what's happening behind the scenes, and you may find that using pgutil assets upload is easier to troubleshoot.

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: ProGet 2025.10: License Update API Issues

      Hi @jw ,

      It definitely looks like there's some "drift" in the documentation and behavior. I already see some stuff about "allowedFeeds" in there, which isn't even a thing since policies. And you're right, you can't update code/title, which aligns with the pgutil behavior as well.

      We'd rather have "no documentation" than wrong documentation, any suggestions on what to delete from here? https://github.com/inedo/inedo-docs/blob/master/Content/proget/api/licenses/update.md

      Feel free to submit a PR if you've got a clear idea.

      In general, we want to make sure the pgutil docs are accurate (those are very easy to test), and we figure... someone can just look at the pgutil code to learn the HTTP endpoint or library.

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: npm connector returns 400

      Hi @udi-moshe_0021 ,

      My guess is that your proxy server is blocking certain things or having issues with redirects; you'd really have to monitor the back-and-forth traffic to see what's going on.

      As you can see, there are a lot of "redirects" going on and URLS/Domains that you will not expect and can be hard to predict.

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Promote Package if Build is promoted to new stage

      Hi @it_9582,

      First and foremost, we don't recommend the "package promotion" feature as a means to indicate which "stage" (i.e. tested quality) a package is in relative to a CI/CD pipeline.

      Instead, repackaging should be used:
      https://docs.inedo.com/docs/proget/packages/repackaging

      Having multiple feeds is fine; we do that for Products and PreReleaseProducts on proget.inedo.com, but that's to make it "harder" for someone to accidently use a prerelease version. Otherwise, you can just use one feed and have retention policies cleanup the "-ci" builds.

      As for having the "build promotion" feature in ProGet be used as a workflow engine (i.e. to trigger actions upon promotion), I don't think we would consider that. At the most, we would do a webhook of sorts... though it doesn't make a ton of sense to be honest.

      The reason is that ProGet isn't intended as the "source of truth" for build status - the idea is that you would have something like a pipeline in BuildMaster) update the statuses in ProGet.

      The main benefit to having this status in ProGet is retention of builds/SBOMs.

      Hope that helps,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Universal Package has no license field in metadata

      Hi @it_9582 ,

      You can specify licensing information in the description or in a custom metadata field like _licenseCode or something. It's not something that ProGet "reads" or "understands", mostly we didn't imagine users would package and upload third-party content with unwanted licenses.

      If that's a use case that your mid/long-term implementation, we could definitely explore working together and properly adding/supporting it as a feature. It's not something we'd want to just "quickly throw in" from a forum post :)

      Definitely chat with your account manager / point of contact once you're closer to or past the "purchase" side of things and we can make it happen. I've forwarded this message to him as well.

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Does ProGet support Cloud Object Storage in Oracle Cloud Infrastructure's Object Storage

      Hi @mickey-durden_1899 ,

      Just to double check, can you try.... resetting to disk-based storage, reconfiguring cloud storage, and then making sure that DisablePayloadSigning is checked. And tehn open settings, to make sure DisablePayloadSigning is checked and stays checked.

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Otter - InvalidRunspaceStateException on WinRM servers

      Hi @alexvanini_5999 ,

      I would try using the Inedo Agent instead; if you are getting this error, it most certainly means that there is some kind of security/hardening/account setting that is blocking WinRM. This is the underlying technology that PS Remoting and the PowerShell-based agent use.

      In this state, it's a real pain to get working - and the Inedo Agent is much more stable, anyway. It will not be "randomly blocked" by a new GPO or Patch Tuesday bug as we've seen a lot with WMI.

      Otherwise, you'll need to scour the web for obscure settings that may have been applied to the server. You may see information logged on the target machine under Windows Event Log under Windows Logs → Application or System related to WinRM.

      It's possible that the domain account lacks needed rights, even though it's a local admin. Sometimes subtle rights (like SeRemoteInteractiveLogonRight, etc.) can block initialization.

      Good luck, let us know what you find!

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: ProGet 2025.10: License Update API Issues

      Hi @jw ,

      I'm not able to reproduce any issues on my end; I'm not entirely sure how you're testing, but let me share with you the code on the server side in ProGet:

          private static async Task UpdateLicenseAsync(AhHttpContext context, LoggedResponseStream output, WebApiContext apiContext)
          {
              EnsureMethod(context, "POST");
              EnsureCanManageLicenses(apiContext);
      
              var input = await JsonSerializer.DeserializeAsync(context.Request.InputStream, LicenseApiJsonContext.Default.LicenseInfo, context.CancellationToken)
                  ?? throw new HttpException(400, "Expected license object.");
      
              var license = await DB.Licenses_GetLicenseAsync(External_Id: input.Code)
                  ?? throw new HttpException(404, "License not found.");
      
              List<int>? nameIds = null;
              if (input.PackageNames?.Count > 0)
              {
                  nameIds = [];
                  foreach (var n in input.PackageNames)
                  {
                      if (!PackageNameId.TryParse(n, out var nameId))
                          throw new HttpException(400, $"Invalid package name: {n}");
      
                      nameIds.Add((await nameId.EnsureDatabaseIdAsync()).Id!.Value);
                  }
              }
      
              List<int>? versionIds = null;
              if (input.Purls?.Count > 0)
              {
                  versionIds = [];
                  foreach (var v in input.Purls)
                  {
                      if (!PUrl.TryParse(v, out var purl))
                          throw new HttpException(400, $"Invalid purl: {v}");
      
                      versionIds.Add((await ((PackageVersionId)purl).EnsureDatabaseIdAsync()).Id!.Value);
                  }
              }
      
              await DB.Licenses_UpdateLicenseDataAsync(
                  License_Id: license.License_Id,
                  PackageVersionIds_Csv: versionIds?.Count > 0 ? string.Join(',', versionIds) : null,
                  PackageNameIds_Csv: nameIds?.Count > 0 ? string.Join(',', nameIds) : null,
                  SpdxIds_Csv: input.Spdx?.Count > 0 ? string.Join(',', input.Spdx) : null,
                  Urls_Csv: input.Urls?.Count > 0 ? string.Join(',', input.Urls) : null
              );
          }
      

      I'm not sure if that's helpful, but if not... can you put a specific reproduction case?

      Also note that the license data in the UI is cached, but it's invalidated when you visit the /licenses page and others.

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: How to create a Custom OSS provider

      Hi @fabrice-mejean ,

      I'm not sure what you mean by "Custom OSS provider", can you clarify?

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Search feed(s) for version string

      @aristo_4359 oh I see! The "search" function does not work by version in that case

      posted in Support
      stevedennisS
      stevedennis
    • RE: Search across all feeds for a specific file hash?

      Hi @rob-leadbeater_2457,

      I'm afraid a "search by file hash" isn't supported, but you could relatively easily write a script to iterate through the feeds using pgutil. Or you could just search in the databse as well (FeedPackageVersions_Extended).

      Thanks,
      steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Search feed(s) for version string

      Hi @aristo_4359,

      You can see "all versions" of a package in the UI by clicking the package name in the breadcrumb or by selecting "All Versions" in the multi-button dropdown.

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • RE: Get package license with ProGetClient

      Hi @pmsensi ,

      Can you take a look at this thread?

      https://forums.inedo.com/topic/5493/request-for-creation-of-api-for-package-auditing-before-dependency-restoration/7

      I believe that new API proposal ( pgutil packages metadata) would contain that information -- please share your thoughts in that thread so we can keep it in one place.

      Thanks,
      Steve

      posted in Support
      stevedennisS
      stevedennis
    • 1 / 1