Navigation

    Inedo Community Forums

    Forums

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. atripp
    3. Posts
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Posts made by atripp

    • RE: Proget 2024.3 SQL Timeouts

      Just wanted to give a brief update to the issue from @mortenf_3736 that we discussed via the support ticket.

      We were never able to get to the bottom of it, but it was entirely related to running on ACA.

      Container Setup VM Setup
      Azure Container Apps - Running 4 minimum replicas, max 8 replicas, each 3 cores and 6gb memory Two D4 (4 cores, 16GB memory) VM with internal load balancer in front between them
      Mapped storage from Azure Storage Account v2 Fileshare Managed Premium Shared Disk, connected to Fail-over Cluster and shared between both VM
      Azure SQL Database with 4 cores dedicated Azure SQL Database Server less, scaling between 0.5 to 4 cores

      This doesn't seem to be related to Linux/Docker/Kubernetes, as we have several high-traffic users on Kubernetes clusters without issues like this. However, we have seen a handful of Azure-related problems over the years that manifested in ProGet:

      • a bad hard drive that was constantly corrupting packages
      • another had really slow disk I/O (one server out of a handful)
      • we've seen a buggy storage driver cause some big impacts across some kind of storage configuration

      So we believe the issue is the Azure platform itself, similar to the above hardware/software glitches we've uncovered over the past.

      We're doing our best to research/identifying issues, and Inedo/ProGet Users aren't the only ones who are experiencing pain like this. Consider this report from a Azure "big data" user:

      I have suffered from chronic socket exceptions in multiple Azure platforms - just as everyone else is describing. The main pattern I've noticed is that they happen within Microsoft's proprietary VNET components (private endpoints). They are particularly severe in multi-tenant environments where several customers can be hosted on the same hardware (or even in containers within the same VM.
      The problems are related to bugs in Microsofts software-defined-networking components (SDN proxies like "private endpoints" or "managed private endpoints"). I will typically experience these SDN bugs in a large "wave" that impacts me for an hour and then goes away. The problems have been trending for the worse over the past year, and I've opened many tickets (Power BI, ADF, and Synapse Spark).

      Other Azure users (who are much more technical than we are) have confirmed that there are indeed severe issues with their SDN infrastructure. Microsoft does appear to be aware of these endemic issues with their platform, and for the time being we simply cannot recommend using Azure's container services for anything that will have any kind of load.

      Hope that gives some insight in case anyone stumbles across this thread.

      Alana

      posted in Support
      atripp
      atripp
    • RE: Setting API key permissions

      Hi @forbzie22_0253

      The error is incorrect; should say Required property missing: packagePermissions.

      Since we don't document that one very well yet, I'd make sure it works with pgutil., and consider capturing traffic. Then, if you have an example we can post on the docs page, happy to add that to the docs.

      Here is the client code as an FYI:
      https://github.com/Inedo/pgutil/blob/thousand/pgutil/ApiKeys/Create/FeedCommand.cs

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Setting API key permissions

      Hi @forbzie22_0253 ,

      Some of this is discussed on some recently published docs, but let me summarize some key points.

      In general, we recommend using pgutil for programmatic access to ProGet, but HTTP Endpoints may be more appropriate for working with structured data an advanced integration.

      If you're using .NET/C#, you may find the Inedo.ProGet library helpful:
      https://docs.inedo.com/docs/proget-reference-api#net-library-nuget-package

      Overall, we are working towards aligning our HTTP Endpoints and developing new ones using a pgutil-first approach. This means we will prioritize the CLI experience by creating intuitive and self-documenting commands. Then we will use existing HTTP Endpoints and develop new ones to fit those commands.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: File not found org.scala-sbt.jline/jline

      Hi @parthu-reddy ,

      ProGet 2024.7-rc.1 is now available for your testing/verification

      Here is information on how to use it:
      https://docs.inedo.com/docs/howto-install-prerelease-product-versions

      Please let us know the results!

      posted in Support
      atripp
      atripp
    • RE: Remote package

      Hi @arkady-karasin_6391,

      I'm afraid we don't have enough information to troubleshoot the problem. The use case you describe (using ProGet as an offline cache) is very common, so it might be some kind of misconfiguration on the npm side or something. I don't realy know.

      I would check the npm logs, try to monitor http traffic, etc.

      If you can "see" the package in ProGet as a Remote Package, and then download the package from the web page, then the npm client can do the same. The npm API cannot "see" whether it's a local, cached, or remote package, so the package is pulled regardless.

      Best,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Setting API key permissions

      Hi @forbzie22_0253,

      We don't document the specifics of the Native API, so I'm not sure. Your best bet is to study the underlying Stored Procedure and see what's going on there - that's something we do when needing to use the methods.

      That said, this Native API methods have been removed in ProGet 2024 in favor of Create ApiKey:
      https://docs.inedo.com/docs/proget-api-apikeys-create

      Best,

      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet license activation automation

      Hi @forbzie22_0253 ,

      If you're receiving a Manual Activation dialog, then it means ProGet cannot connect to our activation server. That is a requirement in ProGet Free, and it's not possible to work around.

      I'm not sure what your use case is, but since you mentioned "several servers", I wanted to clarify that ProGet Free is restricted from connecting to another ProGet server. They basically need to be standalone and not part of the same system.

      There is a ProGet Enterprise for Edge Computing Edition that has an activation-less model .

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: getting socket timeout for node-forge npm package

      Hi @parthu-reddy ,

      I created a new npm feed and had no problem downloading those package versions via npm.org.
      As I mention, ProGet will not issue network errors, so it's definitely something else that's interfering. Hopefully you can find some information from Wireshark.

      FYI - in the screenshot you're sharing, I see most of the requests are going to registry.npmjs.org, and not to your proget server.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: getting socket timeout for node-forge npm package

      Hi @parthu-reddy ,

      Unfortunately this will be difficult to troubleshoot.

      As the NPM error indicates, this error is related to network connectivity. I'm afraid that neither the npm client nor the ProGet server is able to troubleshoot network problems, so you'll need to use something like Wireshark or another traffic monitoring tool to discover why you're getting that error.

      ProGet does not crash with a network-level errors like that, which means it's something else that's causing the error. Most likely it's a load-blancer, firewall, etc.

      There is also no reason that package 1.3.1 version or 1.3.0 would fail to download - but if that's indeed what's happening, then it's likely related to whatever device is issuing the network error. I have no explanation for what that would be.

      As for the Azure screenshot, it's showing a a 200 (success) message, which means that ProGet is not giving any kind of errors. At least not all the time.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ENOAUDIT

      Hi @parthu-reddy,

      Basically you need to upgrade your npm client.

      The underlying issue is that your npm code is attempting to use the now-deprecated "quick audit" API. Here is information about this api endpoint:
      https://docs.npmjs.com/cli/v10/commands/npm-audit#quick-audit-endpoint

      ProGet does not implement this deprecated endpoint and it's unlikely we ever will, since it's only used by old versions of the npm client.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: OCI support?

      Hi @edward-a-peng_7759 ,

      There are no plans for a "generic" OCI Registry feed type. However, if you can help us understand what value this could add, we can consider building one.

      A generic OCI registry seems to be like a "dumb" file system that's built around "dumb" cloud storage like S3, etc. What I mean, it's just files with no context. There is no real visibility into what's stored an OCI registry - it's just a place to store and access unnamed files via digests.

      ProGet is a "smart" package and container system, and stores OCI-based container images (i.e. Docker images) in a Docker feed, and Helm charts in a Helm feed. There are so many advantages to this "smart" system vs a "dumb" registry:

      • You can browse images and charts in the UI
      • Charts and images are "linked" and you can see what charts reference which images
      • You can see what packages are used by images
      • Vulnerabilities are visible in charts, which packages/containers use, etc.
      • You can track downloads and configure permissions and control access

      A "dumb" file system obviously couldn't offer any of this - and is one of the reasons people prefer ProGet over ECR, ACR, GCR, etc.

      So far as I can tell, it doesn't matter to client tools whether you use ProGet Feeds or a generic OCI registry -- everything works the same with regards to helm, docker, kubernetes, and other supported tools.

      Are there any advantages to having Helm charts being stored or accessed in a different manner?

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Deprecating or unlisting all versions

      Hi @rick-kramer_9238,

      You could do this via the API; it would involve first Querying Package Versions, and then for each version returned, Setting Package Status. I think it'd be a "relatively easy" script to write - so if you create one that can do it, please share :)

      Hope that helps,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet 2024 API changes

      Hi @forbzie22_0253 ,

      This refers to Delete Package, which was introduced in ProGet 2023:
      https://docs.inedo.com/docs/proget-api-packages-delete

      We don't really document/track what Native APIs change between releases, so I'm not really sure: https://docs.inedo.com/docs/proget-api-http#native-api-endpoints

      You can do a comparison in the /api/reference page.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Proget 2024.3 SQL Timeouts

      Hi @mortenf_3736 ,

      I also mentioned this in your ticket, but the issue you're experiencing is a bit different. In Pawal's case, it's a different error message (both related to the database) and it was happening in ProGet 2023 and ProGet 2024 (yours happened only after upgrade). In addition, his error was happening randomly (high/low traffic), whereas yours seems to be high traffic.

      You're also running on ACA and use auto-scaling, and seem to have a very high occurrence of container stop/starts. Anyway, we will continue to troubleshoot your issue in that ticket.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: |OTTER] Status filter not working for "any error"

      Hi @philippe-camelio_3885 ,

      I looked at this one more closely, and it's behaving as expected.

      "any error" means AgentError, CollectionError, or RemediationError. There are many other statuses, and the page doesn't filter on all of them (including NoRoles or Unknown).

      The status scenario is complex 😫

      If you are curious to the logic

      string getStatus()
      {
          if (!server.Active_Indicator)
              return Disabled;
          
          if (server.HasNullAgent())
              return Unknown;
          if (!server.HasLocalAgent())
          {
              if (server.AgentStatus_Code == Domains.AgentStatusCode.Error)
                  return AgentError;
              if (server.AgentStatus_Code == Domains.AgentStatusCode.Updating)
                  return AgentUpdating;
              if (server.AgentStatus_Code == Domains.AgentStatusCode.Unknown)
                  return Unknown;
          }
      
          if (server.RoutineConfigurationUsage_Code == Domains.ServerRoutineConfigurationUsage.None)
              return NoCollection;
          if (!server.HasRoles_Indicator)
              return NoRoles;
          if (server.LatestCollection_Execution_Id == null)
              return Unknown;
          if (server.LatestCollection_ExecutionRunState_Code == Domains.ExecutionRunState.Executing)
              return Collecting;
          if (server.LatestCollection_ExecutionStatus_Code == Domains.ExecutionStatus.Error)
              return CollectionError;
      
          if (server.LatestRemediation_ExecutionRunState_Code == Domains.ExecutionRunState.Executing)
              return Collecting;
          if (server.PendingRemediation_Indicator)
              return PendingRemediation;
          if (server.LatestRemediation_ExecutionStatus_Code == Domains.ExecutionStatus.Error)
              return RemediationError;
      
          if (server.ConfigurationState_Code == Domains.ConfigurationState.Current)
              return Current;
      
          if (server.ConfigurationState_Code == Domains.ConfigurationState.Drifted)
              return Drifted;
      
          return Unknown;
      }
      

      Of course it could be improved, but perhaps another day 🤷

      Best,
      Alana

      posted in Support
      atripp
      atripp
    • RE: [OTTER]Gitlab Secure Ressource gone

      Hi @philippe-camelio_3885 ,

      FYI - I was able to reproduce and fix this, at least the resource resolution portion.

      Unfortunately you will still need to have a variable named $Commit and $Repository, but that's a much more complex problem to solve....

      This works:

      set $Commit = gitlab-vishab;
      set $Repository = mast;
      Git::Checkout-Code;
      

      Or you could also just set a system-scoped vairalbe with the same name.

      This will go in next maintennce release of Otter, which is scheduled May 31, but we can make a pre-release if you'd like.

      posted in Support
      atripp
      atripp
    • RE: [BM / OT] Renaming "user/password" or "private key" credentials breaks Linux config

      @philippe-camelio_3885 thanks! We were looking at BuildMaster. It looks like the issue is in Otter after all. We'll get it fixed via OT-509 soon!

      posted in Support
      atripp
      atripp
    • RE: ProGet license activation automation

      Hi @forbzie22_0253 ,

      This is not supported for ProGet Free edition at this time; but as long as ProGet is connected to the internet, it will auto-activate.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: 'Inedo.ProGet.Web.Security.UserNotFoundException' on application startup

      Hi @Darren-Gipson_6156 ,

      That's great you were able to find the code to change, at least to help find more information. Since you've got that far, I would recommend just bundling it as a zip file and adding the extension to ProGet to try it out:
      https://docs.inedo.com/docs/proget-administration-extensions

      Let us know if you run into any issues with that; that will probably amke it easiest to iterate, so you don't have to wait for us to build pre-release extensions .

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Proget 2024.3 SQL Timeouts

      Hi @pawel-ostrowski_5669 ,

      Unfortunately this is going to be tricky to troubleshoot, but in general a timeout will occur because SQL Server is taking too long to respond to a query. This typically related to query performance, but it can also be caused by network issues.

      Looking at the stack traces you shared, these are very basic, highly performative queries that would instantly return a single row. There is nothing that should be slowing down those queries, which means could probably rule out query performance.

      The fact that the timeouts occur randomly, during heavy and lighter load is also an indicator that it's probably not performance related, and a sign of network issues.

      And finally, the fact that you profiled and didn't see any problems is a good sign this is not performance related. That's my current thinking at least.

      Otherwise, I'm not familiar with "Attention" events. That must be something done internally by the driver? The SQL Server docs says this:

      The Attention event class indicates that an attention event, such as cancel, client-interrupt requests, or broken client connections, has occurred. Cancel operations can also be seen as part of implementing data access driver time-outs.

      I'm not sure what that means to be honest, but I found this article that might be of use:
      https://www.red-gate.com/simple-talk/blogs/identifying-client-timeouts/

      I think this would be worth getting Microsoft's SQL Server team involved, because we really don't know where to go form here, and they would have more experience troubleshooting this (especially if it's network-related) than we do.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet SCA 2024 Preview Feedback - Package detection still hit or miss

      Hi @jw ,

      You are technically correct. In retrospect, it's not a perfect design.

      However, this behavior is based on most user perception/desire. "Noncompliant / Inconclusive / Error" are all considered "Red" conditions (i.e. bad/blocked, etc.), and to the user they are basically the same thing. "Warn" is a "Yellow" condition (i.e. caution).

      A package that would only become "Yellow" if a rule is violated shouldn't turn "Red" if that rule can't be evaluated. So that's why it's Warn.

      This addresses one of the major complaints about the "missing packages" problem in ProGet 2023, and the "Red" packages in the ProGet 2024 preview feature.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: 'Inedo.ProGet.Web.Security.UserNotFoundException' on application startup

      Hi @Darren-Gipson_6156 ,

      The Netbios mapping is used to convert a username from DOMAIN\username to username@domain.com . You can see how it works in the code here:
      https://github.com/Inedo/inedox-inedocore/blob/master/InedoCore/InedoExtension/UserDirectories/ADUserDirectoryV4.cs#L228

      I'm not sure if that helps. But before getting integrated authentication working, I would make sure you can login username@company.com and your domain password. Once you can do that, then adding WIA will basically just bypass the password check, but you may need to convert that DOMAIN to company.com

      Alana

      posted in Support
      atripp
      atripp
    • RE: 'Inedo.ProGet.Web.Security.UserNotFoundException' on application startup

      Hi @Darren-Gipson_6156 ,

      This error means that the username being passed from Windows (e.g. MYDOMAIN\jdoe) cannot be found on the domain.

      This can mean that the netbios alias domain mapping is incorrect (e.g. MYDOMAIN) or that there are some other issues locating the user in the configured directory. Your best bet is to "play around" with searching and settings under the Advanced settings tab of the Directory (under Admin > Security > edit)

      Note you can also try searching for users on that page as well, using the multi-button link in the top-right corner of the page.

      In addition, you can see the information about the user by navigating to /debug/integrated-auth, and that might give some kind of clue where to start.

      Hope that helps point you in the right direction,

      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet SCA 2024 Preview Feedback - Package detection still hit or miss

      @jw thanks for the detailed research, this definitely is wrong. We should log the package (I think that was there at one point), but also this should be inconclusive.

      We'll get this fixed via PG-2676 in an upcoming maintenance release, hopefully this Friday's or the following :)

      posted in Support
      atripp
      atripp
    • RE: Deleting Debian Packages don't work

      Hi @daniel-scati ,

      Thanks for sharing this; Debian packages are a "little weird" in they require that qualifier, and it'd be nice if it was a little more intuitive. I wonder if there's an additional qualifier required?

      We'd really like to improve the experience. What does this Package look like in the ProGet UI? Can you use the Common Package API to find what information is returned in the purl of the package, when you list it?

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet OData V2 API

      Hi @rick-kramer_9238 ,

      You should avoid the OData V2 API; it's been deprecated for many years, it's very slow/bulky, and it will likely have bugs in NuGet client, etc.

      If you're getting those warnings, some user/script is making queries that are unsupported by nuget.org.

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet: Vulnerability scanning of Chocolatey feeds

      Hi @am-infrastruktur_3111 ,

      Chocolatey packages are scanned for viruses, so you will see those pop up. For example, pathdebug 0.3.4 should show up in ProGet's vulnerability system:
      https://security.inedo.com/vulnerability/details/PGV-2420934

      Otherwise, there is unfortunately no standardized/consistent naming for Windows software (unlike APK, APT, RPM, etc), so there's no way to associate a vulnerability report like CVE-2024-21392 with a software package.

      In this case, Microsoft calls the effected software ".NET 8.0", not .NET or dotnet, etc. In Other reports, they call it ".NET8", etc.

      And you can see that it translates a little weird n the CVE report as well:
      https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-21392

      ".NET 8.0 affected from 1.0.0 before 8.0.3 " - weird, right?

      This is a known issue in the industry for many years, and it would need to be address by Microsoft first. It's sadly not on their priority list.

      Best,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet 2023 - IIS App pool stopping

      Hi @rick-kramer_9238,

      In all cases, you'll need to configure ProGet to listen to a certain URL; this basically involves editing the ProGet configuration file, which the web page will do for you (or you can edit yourself).

      If you're going to do port sharing (i.e. have multiple applications on the server listen/respond
      on port 443 for example), the you also need register the URL and certificate with Windows using the netssh commands.

      If you're not doing port sharing (i.e. ProGet is only application listening on 443) then no need to use netsh.

      Hope that helps,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet SCA 2024 Preview Feedback - Package detection still hit or miss

      Hi @jw ,

      Thanks for the update, that sounds like a decent work-around for the time being. It will likely be a while before we can develop something more generalized.

      I'm curious if you looked at any of the audit endpoints/commands in pgutil yet? That's kind of the direction we're thinking it will make sense to go - basically pgutil packages audit --package=myGroup/myPackage --version=1.2.3

      I don't know what the HTTP Endpoint is offhand, but that does make sense to add something to PackageInfo, since we have it in the database already pretty easily. We could display a complianceStatus (Compliant, Warn, Noncompliant, Inconclusive, Error) and a complianceDetail string - that's what we have in the database. I think properties are easier to work with than objects... what do you think?

      As for Download Package behavior -- we do intend to get the Common Packages API to work with connectors. That involves a lot of refactoring that just didn't make it in ProGet 2024 (only PyPi and Apk were refactored).

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet: UI 403 errors

      Thanks so much @jw! We'll get these fixed in an upcoming maintenance release via PG-2651

      Looks like we forgot to add these after applying permissions on top., and the way our security review works, it prioritizes making sure the pages are secure (versus links), so it's easy to miss.

      Anyway we'll try to add that to our new feature checklist... easy to forget to do since we check permissions on the page itself, not on where we link to the page.

      posted in Support
      atripp
      atripp
    • RE: GPG error updating Debian repositories

      @daniel-scati great work finding that :)

      The Feed Description is written in the Release Index, and the Debian "Stanza" format is kind of weird like that.

      However, newlines should already be replaced...

      var desc = FeedCache.GetFeed(this.feedId)?.Feed_Description;
      if (!string.IsNullOrWhiteSpace(desc))
          writer.WriteLine($"Description: {desc.ReplaceLineEndings("\n ")}");
      

      A blank line with a space isn't supposed to create a new "stanza", but maybe it is in your version?? We'll look closer; perhaps we should just strip the newline altogether and replace it with a space.

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Errors in PackageAnalyzer logs

      Thanks for clarifying, that's good to know taht solved the problem! I looked again and found it. Maybe I was looking in the wrong database 🤷

      It doesn't look like bootstrap.less is in your feeds, but it is in the PackageNameIds table:
      f98c7a71-8e8f-4c99-a1da-68f12daa6a3f-image.png

      Just because it's in that table doesn't mean you're using it; we use the PackageName_Id as a surrogate ID instead of the package name. There should only be one entry, since NuGet package names are case insensitive.

      anyway, I think I found the culprit -- looks like it was added during a vulnerability database update. MAybe there is some bug that didn't properly check the casing 🤷

      Anyways, that's what we have to clean-up up :)

      posted in Support
      atripp
      atripp
    • RE: Errors in PackageAnalyzer logs

      Hi @v-makkenze_6348 ,

      Just to give you an update, we're still working on this; there's a lot of duplicated data and figuring out how to clean it up is a challenge. It's hard to say where it came from.

      For example, your database has internal ids for both bootstrap.less-3.4.1 and Bootstrap.Less-3.4.1, and we need to figure out how safely merge those. At this point, we're thinking we're just going to do one massive SQL Script to do a cleanup. Then, we can try to figure out where the duplicates are coming from.

      Regarding VicreaNeuronGegevensmagazijnContracts package, we can't find that in your database. But I assume that's a new package/version. If you have a newer backup, please upload that to the link we sent - we can check it in there. I think its' related to 4-part version, but just want to check.

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet: AD/LDAP issues with 2024 Docker image

      Hi @scott-goodwin_8239 ,

      Thanks for the detailed report; you're right, it's definitely related to some kind of library/platform problem. There seems to be a known bug in one of the libraries that can cause this in some cases on Linux.

      Fortunately we already identified a good workaround/fix to this issue (PG-2626), and we plan to ship it on Friday evening; please let us know if you'd like to try this in a prerelease version.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Conda Feed to SMB Share

      Hi @scott-wright_8356 ,

      Thanks; it's hard to say what the issue is, and unfortunately we don't really have any good troubleshooting tools here. That error is coming from within SQL Lite, and we can't reproduce it when we do a SMB share.

      I wonder if you can follow some of the same troubleshooting steps? Specifcally like using ProcMon or mounting the network drive with SysInternals?

      We just don't really have any means to troubleshoot this, so we'd need to go back to the drawing board to figure out why it doesn't work for you. You're welcome to keep exploring C#, but let me share the code that's closer to ProGet.

      Here is the code that ProGet is running. It's kind of similar, but a little different. Note we are using System.Data.SQLite.Core-1.0.118 and .NET6.

      private static SQLiteConnection OpenOrCreateDatabase(string fileName, out Dictionary<string, string> config)
      {
          var str = new SQLiteConnectionStringBuilder
          {
              DataSource = fileName,
              FailIfMissing = false
          }.ToString();
      
          if (FileEx.Exists(fileName))
          {
              var conn = new SQLiteConnection(str);
              try
              {
                  conn.Open();
      
                  config = ReadConfig(conn);
                  if (config.TryGetValue("SchemaVersion", out var versionStr))
                  {
                      int version = int.Parse(versionStr);
                      if (version == 1)
                      {
                          using var cmd2 = new SQLiteCommand(GetScript("UpdateSchemaToV2"), conn);
                          cmd2.ExecuteNonQuery();
                          return conn;
                      }
                      else if (version == 2)
                      {
                          return conn;
                      }
                  }
              }
              catch
              {
              }
      
              conn?.Dispose();
              FileEx.Delete(fileName);
          }
          else
          {
              DirectoryEx.Create(PathEx.GetDirectoryName(fileName));
          }
      
          var conn2 = new SQLiteConnection(str);
          conn2.Open();
      
          using var cmd = new SQLiteCommand(GetScript("CreateSchema"), conn2);
          cmd.ExecuteNonQuery();
      
          cmd.CommandText = GetScript("UpdateSchemaToV2");
          cmd.ExecuteNonQuery();
      
          config = ReadConfig(conn2);
      
          return conn2;
      }
      private static Dictionary<string, string> ReadConfig(SQLiteConnection conn)
      {
          using var cmd = new SQLiteCommand("SELECT Key_Name, Value_Text FROM OtherData", conn);
          using var reader = cmd.ExecuteReader();
      
          var res = new Dictionary<string, string>();
      
          while (reader.Read())
          {
              var key = reader.GetString(0);
              var value = reader.IsDBNull(1) ? null : reader.GetString(1);
              res[key] = value;
          }
      
          return res;
      }
      
      

      Here is the CreateSchema script:

      CREATE TABLE OtherData
      (
          Key_Name TEXT PRIMARY KEY NOT NULL,
          Value_Text TEXT
      );
      
      INSERT INTO OtherData (Key_Name, Value_Text) VALUES ('SchemaVersion', '1');
      
      CREATE TABLE FetchInfo
      (
          Subdir_Name TEXT PRIMARY KEY NOT NULL,
          Modified_Date INTEGER,
          Fetch_Date INTEGER NOT NULL
      );
      
      CREATE TABLE ChannelData
      (
          Package_Name TEXT PRIMARY KEY NOT NULL,
          Flags_Value INTEGER NOT NULL,
          Description_Text TEXT,
          DevUrl_Text TEXT,
          DocSourceUrl_Text TEXT,
          DocUrl_Text TEXT,
          Home_Text TEXT,
          Icon_Hash TEXT,
          Icon_Url TEXT,
          License_Text TEXT,
          RunExports_Json BLOB,
          SourceGitUrl_Text TEXT,
          SourceUrl_Text TEXT,
          Summary_Text TEXT,
          Timestamp_Value INTEGER,
          Version_Text TEXT NOT NULL,
          Subdirs_Csv TEXT NOT NULL
      );
      
      CREATE TABLE RepoData
      (
          Package_Name TEXT NOT NULL,
          Subdir_Name TEXT NOT NULL,
          Version_Text TEXT NOT NULL,
          Build_Text TEXT NOT NULL,
          ArchiveType_Code INTEGER NOT NULL,
          Build_Number INTEGER NOT NULL,
          License_Text TEXT,
          LicenseFamily_Text TEXT,
          MD5_Hash BLOB,
          SHA256_Hash BLOB,
          Package_Size INTEGER NOT NULL,
          Timestamp_Value INTEGER,
          Dependencies_Json BLOB,
          AppEntry_Text TEXT,
          AppType_Text TEXT,
          Type_Text TEXT,
          Summary_Text TEXT,
          Icon_Hash BLOB,
      
          PRIMARY KEY (Package_Name, Version_Text, Subdir_Name, Build_Text, ArchiveType_Code)
      );
      

      Here is the UpdateSchemaToV2 script:

      UPDATE OtherData
         SET Value_Text = '2'
       WHERE Key_Name = 'SchemaVersion';
      
      ALTER TABLE RepoData
        ADD Constraints_Json BLOB;
      

      From there, it's just a bunch of inserts into those tables. The "unable to open database file" error would probably be occurring in the middle of those, but it's hard to say.

      The race condition occurs when multiple threads run OpenOrCreateDatabase at same time. It's rare as I mentioned.

      Alana

      posted in Support
      atripp
      atripp
    • RE: [BM / OT] Renaming "user/password" or "private key" credentials breaks Linux config

      Hi @philippe-camelio_3885 ,

      This is by design, as a common use case is to delete/create a credential with the same name. The design pattern is based around things like Windows Services, and the fact that renaming a username will not update all Windows services, etc.

      However, it's really inconvenient, and it'd be nice if there was a " would you like to also rename things in scripts/resources/servers/etc". But there's not, and it's something on our "to consider" list for an upcoming version.

      It's easy enough to work-around though - and as an FYI, in BuildMaster, you can just export the infrastructure, then reimport it after search/replacing the credential name in the JSON file.

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Warnings about a package in Diagostic Center without package name

      Hi @v-makkenze_6348 ,

      Thanks for the report; please ignore this, it should not be logged in the Diagnostic Center. It's addressed via PG-2625 in ProGet 2024.1

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Conda Feed to SMB Share

      Hi @scott-wright_8356 ,

      ProGet doesn't "directly" work with SMB shares, but instead uses the File System API. As such there's no special configuration or ports required - that's all handled at the operating system level. And it sounds like it's working fine, since other feeds are working.

      As for SQL Lite, a few feed types (including conda, debian, rpm, etc.) will use a SQL Lite to "cache" connector information. But a SQL Lite database is just a file stored on disk, as you've noticed - if ProGet can read/write files on an SMB share, there is no reason it wouldn't work.

      We haven't had issues in HA configurations with SQL Lite connectors, but we have seen this issue come twice before. One time was a ticket, and it was some "malware" that was blocking the SQL Lite file for security reasons. A more recent thread is here: https://forums.inedo.com/topic/4128

      I wonder if you can follow some of the same troubleshooting steps? In the end, this seemed to work:

      I was finally able to try this with a mounted network drive (using SysInternals), and that works

      We don't really have an alternate solution at this time, but if this continues to be an issue we can definitely consider a node-by-node / local file system configuration.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Updating to Proget to 24.0.0 from 23.0.18 gives "Cannot drop the view 'database_firewall_rules', because it does not exist or you do not have permission."

      Thanks for confirming that @carl-westman_8110 ! That should definitely not be showing up :)

      This is definitely a bug on Microsoft's end (we've seen similar in some early distributions of SQL Server 2008). We will work around this in 2024.1 via PG-2624 - we are planning to ship on Friday.

      As an FYI, here is the new script:

      DECLARE @SQL NVARCHAR(MAX) SET @SQL = ''
      SELECT  @SQL = @SQL + 'DROP PROCEDURE ' + QUOTENAME(name) + ' ' FROM sys.procedures WHERE schema_id <> 4
      SELECT @SQL = @SQL + 'DROP TYPE ' + QUOTENAME(name) + ' ' FROM sys.table_types  WHERE schema_id <> 4
      SELECT  @SQL = @SQL + 'DROP VIEW ' + QUOTENAME(name) + ' ' FROM sys.views  WHERE schema_id <> 4
      SELECT  @SQL = @SQL + 'DROP FUNCTION ' + QUOTENAME(name) + ' ' FROM sys.objects WHERE type IN ('FN','TF') and  schema_id <> 4
      EXEC sp_executesql @SQL
      

      In the likely event that Azure SQL slips another sys object into those tables, this will at least ignore that error.

      posted in Support
      atripp
      atripp
    • RE: GPG error updating Debian repositories

      @philippe-camelio_3885 thank you much, we just updated the docs :)

      posted in Support
      atripp
      atripp
    • RE: Updating to Proget to 24.0.0 from 23.0.18 gives "Cannot drop the view 'database_firewall_rules', because it does not exist or you do not have permission."

      Thanks @carl-westman_8110, that's really helpful to see.

      I don't know why it didn't show on ours, but I understand that SQL Server creates new databases by copying the model database, so I'm guessing that your instance of SQL Azure must have something off about its model?

      Anyway we can modify this script a bit.... can I ask you to check another thing?

      I assume it shows up in this query:
      select * from sys.objects where name='database_firewall_rules'

      Can you what the schema_id and is_ms_shipped values?

      posted in Support
      atripp
      atripp
    • RE: Updating to Proget to 24.0.0 from 23.0.18 gives "Cannot drop the view 'database_firewall_rules', because it does not exist or you do not have permission."

      Hi @carl-westman_8110,

      In ProGet 2024, we took a new approach to upgrading the database; specifically, we cleanup all code in the database that we did not create. We do this by running the following script:

      DECLARE @SQL NVARCHAR(MAX) SET @SQL = ''
      SELECT  @SQL = @SQL + 'DROP PROCEDURE ' + QUOTENAME(name) + ' ' FROM sys.procedures
      SELECT @SQL = @SQL + 'DROP TYPE ' + QUOTENAME(name) + ' ' FROM sys.table_types 
      SELECT  @SQL = @SQL + 'DROP VIEW ' + QUOTENAME(name) + ' ' FROM sys.views 
      SELECT  @SQL = @SQL + 'DROP FUNCTION ' + QUOTENAME(name) + ' ' FROM sys.objects WHERE type IN ('FN','TF')
      EXEC sp_executesql @SQL
      

      Apparently, those queries are returning a system view called database_firewall_rules, which it should be not.

      Can you help us troubleshoot/identify what data is being returned in those views? It's supposed to be only user-added code (not system views like database_firewall_rules).

      In theory, an empty database (before ProGet is installed) should have nothing returned from any of those tables. Any help you can provide would be great.

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Retention Rule for Asset Directory: Keep last N versions or filter by date

      Hi @zs-dahe ,

      Thanks for clarifying, that makes sense; that's not really the use case we intended for asset directory versioning, it was mostly a simple way for asset-directory end-users (i.e. generally not ProGet admins) to fix the occasional delete/accident. It's redundant with back-up, but the idea was that it would save administrator time at the cost of a little disk space.

      Since it'd be such a large change on our end to rewrite this, it'd be best to wait until there's more demand.

      Perhaps you could just not use asset versioning , and allow your backup server to handle this? Typically back-up tools will already retain a certain number of past versions of files.

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Downgrade From 2024 - Assets Page - Unable to cast object of type 'System.Int32' to type 'System.Int64'

      Hi @arlymac_7956

      This error will occur when the database and installed product are not the same version. This is a rare scenario, and will happen if you make certain changes to the IIS/Service configuration on a server.

      For example, if you were to copy the application folder (e.g. c:\Program Files\ProGet) to a new location, and then run the web application from that location, then it wouldn't be updated when you update ProGet.

      If you can't figure how it's happening, I would recommend uninstalling. Then try to delete any remaining configuration like services/IIS. Don't delete the database or the packages of course.

      Then when you reinstall, just point to the database and it shoudl work fine again.

      Best,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet New Vulnerability scanning removes ability to block a package

      Hi @scott-wright_8356 ,

      To set a package to blocked, first pull the package to ProGet, then use "Set Package Status". You can then set "Download allowed:" option.

      do you intend to allow users to modify the vulnerability database

      We do not intend to allow users to modify the database. There are several reasons for this.

      1. We could not come up with a suitable use case considering the alternative options
      2. It's not something other security products allow
      3. It creates a usage/support problem because it's easy to "forget" that the data was edited and then there's a strange behavior

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Retention Rule for Asset Directory: Keep last N versions or filter by date

      Hi @zs-dahe ,

      Thanks for pointing this out - I don't think anyone's noticed this before 😅

      You are correct, this is not supported - and actually it's never been supported. I just updated the documentation to clarify this.

      Looking at the code, this wouldn't be trivial to implement and would introduce a fair amount of risk. We would basically have to rewrite retention rules for asset directories, which is a bit scary. I suspect that's why it was never implemented in the first place, and we just didn't update the docs (which we try to write before/during feature development).

      Asset versioning is really just intended to undo an accidental change/deletion and download an old version of a file. We don't envision lots of versions of files, so it doesn't seem like a needed feature -- would be interested tot learn how you intend to use it?

      Best,
      Alana

      posted in Support
      atripp
      atripp
    • RE: NuGet no longer works after upgrading to 2024

      Hi @v-makkenze_6348 ,

      We have a copy of your database, and we can look to reproduce this. Offhand, I believe it's a result of "bad data" (duplicate packages) that are in your database, and it's the same issue behind here: https://forums.inedo.com/post/15730

      We need to write a clean-up script for that, but in the meantime you'll want to rollback.

      The version should show up in the drop down, but if it's not, maybe try downloading the Inedo Hub again: https://my.inedo.com/downloads

      And if that's still not working, maybe try downloading the Offline Installer for the latest 2023.x version.

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • RE: ProGet New Vulnerability scanning removes ability to block a package

      Hi @scott-wright_8356,

      Are you suggesting that the version range we have logged (≥ 4.20.0-rc & < 4.20.2) is incorrect? That particular vulnerability is sourced from a GitHub advisory:
      https://github.com/advisories/GHSA-6r78-m64m-qwcf

      If that's the case, it'd be best to report that to the source so that 40.20.2 and 4.20.69 also show up? It should then be reflected in our database quickly shortly after that.

      Otherwise, there are a couple options you can use to block unwanted packages:

      • set a package's status to Blocked (after downloading it) to manually prevent a download of a package
      • use a connector filter to prevent all versions of that package, then manually add the ones you permit

      We may add other options down the line, but we intend to allow users to modify the vulnerability database (PGVD) since that it synced from security.inedo.com.

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • RE: GPG error updating Debian repositories

      Thanks @philippe-camelio_3885!

      Should we update our docs to reflect this? Does this basically only apply to Ubuntu 22.04+?

      Currently, the instruction we have uses apt-key add instead:
      https://docs.inedo.com/docs/proget-feeds-debian

      Thanks,
      Alana

      posted in Support
      atripp
      atripp
    • RE: Some latest versions of Nuget packages not available in ProGet

      Hi @rick-kramer_9238,

      I'm really not sure what the underlying issue is or how to troubleshoot :(

      NuGet dependency resolution is really complicated, and what you're saying is probably related. If you get a "package/version cannot be found" error from the NuGet client, it doesn't necessarily mean that the version isn't there... jsut that the dependency search wasn't successful.

      You can just look at the ProGet server to see what packages/versions are there. If it's in the UI, iut will be in the API.

      Cheers,
      Alana

      posted in Support
      atripp
      atripp
    • 1
    • 2
    • 7
    • 8
    • 9
    • 10
    • 11
    • 36
    • 37
    • 9 / 37