Hello; I've updated the documentation to clarify this, but it's available starting in ProGet 5.2.9. So, you'll need to upgrade to enable it :)

atripp
@atripp
C# developer by trade, but writing less and less code and more and more specs.
Best posts made by atripp
-
RE: Service Health API call returning 404
-
RE: NPM Connector returns plus "+" in versions
Thanks for the update! I've noted this in the docs, and linked to this discussion :)
https://github.com/Inedo/inedo-docs/commit/d24087911584bbda833314084a58c2ae1ff41c39
-
RE: [ProGet] [NativeApi] NpmPackages_DeletePackage not working.
Hello,
That API will only delete package metadata from the database, not from disk. It's mostly intended for internal use only, and probably shouldn't be exposed to the API. In any case, we don't store the
@
with internally, so if you change@myscope
tomyscope
it should work.Note that the NPM doesn't provide a way to delete packages, and we never implemented it. There hasn't been any demand for it to date, as people don't really delete packages programmatically - but you're definitely welcome to submit a feature request and help us understand why it'd be a value (like, the workflow you use that requires deleting packages, etc).
Alana
-
RE: Creating PowerShell repository, protecting pull/download by API key
Hello, for sure!
It's pretty easy; just don't give the
Anonymous
user any access to your feeds, and then authentication will always be required, either when browsing the ProGet application or using the API (such asInstall-Module
).When you use the Register-PSRepository command, you can the
Credential
option to specify a credential.This credential can be the name/password of a user inside of ProGet (let's say,
Admin:Admin
), or it can be username ofapi
with a password of an api key you've configured (so,api:my-secret-key
). -
RE: Restricting API access to View/Download
Hello;
The Native API is for low, system-level functions, and it's "all or nothing". If you give someone access to Native API, you are effectively making them an administrator, as they can also change permissions and grant admin privileges. So, I don't think you want this. Instead, you'll want to use the Debian API endpoint that we implement.
It's a third-party API format
In order to support third-party package formats types like NuGet, npm, etc., ProGet implements a variety of third-party APIs. We only provide minimal documentation for these APIs, as they are generally either already documented elsewhere. However, you can generally find the basics by searching for specific things you'd like to do with the API, such as "how to search for packages using the NuGet API" or "how to publish an npm package using the API".
So in this case, I recommend to search "how to view and download apt packages".
-
RE: PyPI package not shown in search results accessible via url
I'm not very familiar with PyPi packages, but I know there are some oddities with
-
and_
, and that they are sometimes supposed to be treated the same, and sometimes not. We don't totally understand all the rules, to be honest (even after reading PEP503 specifications).In this case, the package is actually
websocket_client
, notwebsocket-client
.See: https://pypi.org/project/websocket_client/
When you search for
websocket_client
in ProGet, it shows up, as expected. -
RE: How to find out package disk space?
In ProGet 5.3, we plan to have a couple tabs on each
Tag
(i.e. container image) that would provide this info: Metadata (will be a key/value pair of a bunch of stuff), andLayers
will show details about each of these layers.That might help, but otherwise, we have retention policies which are designed to clean up old and unused images.We'll also have a way to detect which images are actually being used :)
-
RE: [BUG - ProGet] Not able to remove container description
As @apxltd mentioned, we've got a whole bunch planned for ProGet 5.3.
I've logged this to our internal project document, and if it's easy to implement in ProGet 5.2 (I can't imagine it wouldn't be), we'll log it as a bug and ship in a maintence release.
Do note, this is not an IMAGE description, it's a REPOSITORY (i.e. a collection of images with the same name, like
MyCoolContainerApp
) description; so this means the description will be there on all images/tags in the repository. -
RE: [Question - ProGet] Are versions amount wrong ?
You're right, I guess that's showing the "layers" instead of the "tags"; I think it should be showing container registries separately (they're not really feeds), but that's how it's represented behind the scenes now.
Anyways we are working on ProGet 5.3 now; there's a whole bunch of container improvements coming, so I've noted this on our internal project document, to make sure we get a better display for container registries.
-
RE: Anonymous user can see list of packages and containers
@Stephen-Schaff thanks for the bug report, I verified that this may happen depending on permission of user, and which feeds they can/can't use --- but it seems an easy enough fix that we can do via PG-1894 (targeted to next release) - the packages can't be viewed upon clicking, but it's a sub-optimal experience for showing packages they can't see
Latest posts made by atripp
-
RE: Proget 25.0.9
Hi @pmsensi ,
Thanks for the heads-up; looks like there was a replication issue with one of our edge nodes. It should be there now
Thanks,
Alana -
RE: `pgutil assets metadata get` fails when filename contain spaces
The "unexpected argument" running without quotes is expected, but it works fine when I run with quotes. I'm afraid I can't reproduce this.
I would check under Admin > Diagnostic Center to see if anythings logged. Alternatively, you may need to query the API by doing something like this:
curl http://server:8624/endpoints/Test/metadata/metadata-test/v1/1%20-%20Normal.txt
Thanks,
Alana -
RE: ERROR while migrating maven repository from Jfrog Artifactory.
Hi @bohdan-cech_2403 ,
Thanks for sharing that; I can confirm receipt, reproduction, and fixing (PG-3105). If you'd like to try it, you can get the fix in
25.0.10-ci.2
- otherwise it'll be in the next maintenance release (next Friday).@wechselberg-nisboerge_3629 FYI I entered the url/username/password into ProGet, but I got the message "Failed to find any registries." So, I tried with curl and I got this:
$> curl "https://artifactory.REDACTED.com/artifactory/api/repositories?type=local" --user support Enter host password for user 'support': { "errors" : [ { "status" : 401, "message" : "Artifactory configured to accept only encrypted passwords but received a clear text password, getting the encrypted password can be done via the WebUI." } ] }
I have no idea what explains the different behavior. Anyway, I logged into the portal on that URL and generated some kind of key, and it let me connect.
Thanks,
Alana -
RE: proget - Enhancement request: show value of X-Forwarded-For header
Hi @felfert,
So far as I can tell, the IP isn't currently logged in these messages... I can see how that would be helpful.
I can certainly do that (which would then show the X-Forwarded when available), but I wanted to make sure I'm looking in the right place. Because I don't see IP info now.
Thanks,
Alana -
RE: proget 500 Internal server error when pushing to a proget docker feed
Hi @felfert ,
As an update, we'd are planning on this pattern instead of row/table locking (PG-3104). It gives us a lot more control and makes it a lot easier to avoid deadlocks.
I still can't reproduce the issue, but I see no reason this won't work.
CREATE OR REPLACE FUNCTION "DockerBlobs_CreateOrUpdateBlob" ( "@Feed_Id" INT, "@Blob_Digest" VARCHAR(128), "@Blob_Size" BIGINT, "@MediaType_Name" VARCHAR(255) = NULL, "@Cached_Indicator" BOOLEAN = NULL, "@Download_Count" INT = NULL, "@DockerBlob_Id" INT = NULL ) RETURNS INT LANGUAGE plpgsql AS $$ BEGIN -- avoid race condition when two procs call at exact same time PERFORM PG_ADVISORY_XACT_LOCK(HASHTEXT(CONCAT_WS('DockerBlobs_CreateOrUpdateBlob', "@Feed_Id", LOWER("@Blob_Digest")))); SELECT "DockerBlob_Id" INTO "@DockerBlob_Id" FROM "DockerBlobs" WHERE ("Feed_Id" = "@Feed_Id" OR ("Feed_Id" IS NULL AND "@Feed_Id" IS NULL)) AND "Blob_Digest" = "@Blob_Digest"; WITH updated AS ( UPDATE "DockerBlobs" SET "Blob_Size" = "@Blob_Size", "MediaType_Name" = COALESCE("@MediaType_Name", "MediaType_Name"), "Cached_Indicator" = COALESCE("@Cached_Indicator", "Cached_Indicator") WHERE ("Feed_Id" = "@Feed_Id" OR ("Feed_Id" IS NULL AND "@Feed_Id" IS NULL)) AND "Blob_Digest" = "@Blob_Digest" RETURNING * ) INSERT INTO "DockerBlobs" ( "Feed_Id", "Blob_Digest", "Download_Count", "Blob_Size", "MediaType_Name", "Cached_Indicator" ) SELECT "@Feed_Id", "@Blob_Digest", COALESCE("@Download_Count", 0), "@Blob_Size", "@MediaType_Name", COALESCE("@Cached_Indicator", 'N') WHERE NOT EXISTS (SELECT * FROM updated) RETURNING "DockerBlob_Id" INTO "@DockerBlob_Id"; RETURN "@DockerBlob_Id"; END $$;
-
RE: proget 500 Internal server error when pushing to a proget docker feed
@felfert amazing!! That script will come in handy when we need to help users patch their instance; we can also try to add something that allows you to patch via the UI as well!!
-
RE: proget 500 Internal server error when pushing to a proget docker feed
@felfert thanks for confirming!!
FYI tThe fix has not been applied yet to code yet, but you can patch the stored procedure (painfully) as a workaround for now. We will try to find a better solution. The only thing I can imagine happening is that the
PUT
is happening immediately after thePATCH
finishes, but before the client receives a200
response. I have no idea though.We'll figure something out, now that we know where it is thanks to your help!!
-
RE: Proget maven migration
Hi @parthu-reddy,
ProGet 2025 supports existing Maven classic feeds; you should be able to migrate just as you were in ProGet 2024.
Thanks,
Alana -
RE: Not able to upload .spd files to proget assets
Hi @parthu-reddy ,
Since these are network-level errors, you would need to use a tool like Wireshark or another packet analyzer to troubleshoot these kind of connectivity failures.
Thanks,
Alana