Code Monkey home page Code Monkey logo

thilojaeggi / wingetty Goto Github PK

View Code? Open in Web Editor NEW
153.0 10.0 16.0 9.48 MB

An open source REST Backend for creating a private WinGet Repo without having to rely on cloud dependencies.

Home Page: https://wingetty.dev

License: GNU Affero General Public License v3.0

Python 35.01% CSS 0.07% JavaScript 0.12% Jinja 64.15% Dockerfile 0.35% Mako 0.18% Shell 0.11%
flask package-management winget winget-repo winget-repository windows winget-server

wingetty's Introduction


Logo

WinGetty

WinGetty is a self-hosted winget package source. It's portable and can run on Linux, Windows, in Docker, locally and in any cloud. It is currently in pre-1.0 development so configuration options, output, database and behavior may change at any time, I'm trying my best though to avoid breaking things.

πŸš€ Features

  • Intuitive and easy to use Webinterface
  • Add your own packages for internal or customized software with multiple versions, installers including architectures and scope
  • Search, list, show and install software - the core winget features all work
  • Support for nested installers and installer switches
  • Easy updating of package metadata
  • Package download counter
  • Support for multiple users and authentication
  • Runs on Windows, Linux etc. using Docker

🚧 Not Yet Working or Complete

  • Authentication (it's currently not supported by winget)
  • Probably other stuff? It's work-in-progress - please submit an issue and/or PR if you notice anything!

🧭 Getting Started

πŸ‹ Docker

  1. Install Docker on your machine. Refer to the official Docker documentation for instructions specific to your operating system.
  2. Download the docker-compose.yml file from the main branch.
  3. Open the docker-compose.yml file and modify the configuration values according to your preferences.
    The configurable options are:
  • WINGETTY_SQLALCHEMY_DATABASE_URI: This parameter allows you to specify the database URI for storing WinGetty's data. By default, it is set to use SQLite with a file named database.db. You can use any database URI supported by SQLAlchemy, such as MySQL or PostgreSQL.
  • WINGETTY_SECRET_KEY: This parameter sets the secret key used for securing WinGetty's sessions and other cryptographic operations. Replace the value with a random string.
  • WINGETTY_ENABLE_REGISTRATION: By default, user registration is enabled (1). If you want to disable user registration, set this value to 0 after you have created your first user.
  • WINGETTY_REPO_NAME: This parameter specifies the name of your WinGetty repository. You can change it to any desired name.
  1. Start the WinGetty application using Docker Compose: docker-compose up -d
    This command launches the WinGetty container in the background.
  2. Access the web interface by opening your browser and navigating to http://localhost:8080.
    If you're running WinGetty on a remote server, replace localhost with the appropriate IP address or hostname.
  3. Upon accessing the web interface for the first time, you will be prompted to register a user, this user will become the admin user by default.

⚠️ Note: WinGet requires HTTPS for secure communication and without it WinGet will throw an error. It is recommended to put WinGetty behind a reverse proxy with a client-trusted SSL/TLS certificate.
By using a reverse proxy with HTTPS, you can ensure secure transmission of data between clients and WinGetty. Popular reverse proxy solutions include NGINX, Apache, and Caddy. Please refer to the documentation of your chosen reverse proxy for detailed instructions on configuring SSL/TLS certificates.

πŸͺ„ Using WinGetty

You can test the WinGet API by opening http://localhost:8080/wg/information in a browser or with curl / Invoke-RestMethod.

Now you can add it as a package source in winget using the command provided in the 'Setup' tab in the webinterface:

winget source add -n WinGetty -t "Microsoft.Rest" -a https://wingetty.dev/wg/

and query it:

❯ winget search Signal -s WinGetty
Name   ID            Version
----------------------------
Signal Signal.Signal 1.0.0

and install packages:

❯ winget install Signal.Signal -s WinGetty
Found bottom [Signal.Signal] Version 1.0.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading  https://wingetty.dev/api/download/Signal.Signal/1.0.0/x64/both
  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  112 MB /  112 MB
Successfully verified installer hash
Starting package install...
Successfully installed

~ took 12s
❯

Report Issue Β· Request Feature

wingetty's People

Contributors

dannyversluis avatar dependabot[bot] avatar m4skedbyte avatar thilojaeggi avatar walkablenormal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wingetty's Issues

Incorporate everything into Docker Compose file

Hey thilo, this looks like a great tool, thanks for making it!

I have one request for simplifying the installation. Could you incorporate everything needed into a single docker-compose file?

I love to use Portainer and I hate when I have to clone a git repo and then run it with docker.

Would you be willing to incorporate everthing needed into the docker image, then could just add a mysql container into the compose file.

Could literally just copy and paste the docker compose file and edit the variables then and be up in running within minutes, without having to clone the repo.

add packages

Hi Thilo,

is it possible to add packages through the api or directly in the filesystem? Or only through the webinterface?

Upload failed - big packages

Hello,
first of all, thank you. Wingetty is awesome stuff!
Question:
Is there a maximum file size for uploading installation media?
For large .exe files over 1GB, the upload window disappears at 100%.

THX an greetz ✌️

Failed to open the added source

Winget refuses to add wingetty source, returns:
Failed to open the added source.

the same behaviour with --verbose option, no additional information

Steps to reproduce the behavior:
winget source add -n WinGetty -t "Microsoft.Rest" -a https://wingetty.mylab.lab/wg/

I've enabled TLS 1.2 and SSL 3.0 in internet settings but it didn't fix it

Wingetty name in header

I have wingetty running in a docker container on a Synology, i want to know where can i change the name wingetty that is in the header on the page, want to change the name to company name together with a logo.

No package found matching input criteria.

Hello,

I'm new to the topic, so I wouldn't rule out that I'm messing something up, but I don't think so.
I run WinGetty in Docker behind Nginx Proxy Manager, so ssl is fine. I could also add the source to the winget.
I created a package that winget finds:

winget find zebraltd.tcmd -s WinGetty
Name Id Version
--------------------------
tcmd zebraltd.tcmd 10.0

However, when I try to install it, I get this error:


winget install zebraltd.tcmd -s WinGetty
No package found matching input criteria.

Am I doing something wrong?

Thanks in advance for your reply!

Regards,
Tibor

Can't define `PortableCommandAlias` when creating a nested installer

Describe the bug:
When creating a zip package, winget gives the two options for NestedInstallerFiles, RelativeFilePath and PortableCommandAlias, wingetty doesn't provide the second option.

Example: https://github.com/microsoft/winget-pkgs/blob/master/manifests/s/Stenzek/DuckStation/0.1.6280/Stenzek.DuckStation.installer.yaml

To Reproduce:
Steps to reproduce the behavior:

Expected behavior:
Ability to define PortableCommandAlias.

Screenshots
image

General Information:

  • OS: Docker
  • Browser: any
  • WinGetty: 1.0.0

Additional context:
Just quick search in code.
In the form, you can find only use of RelativeFilePath: https://github.com/thilojaeggi/WinGetty/blob/115adecb9b6b7afd6c56bb29e82126ef0adb2a78/app/forms.py#L108C40-L108C61
But the model support the second option:

"PortableCommandAlias": nested_installer_file.portable_command_alias,

Support common identifiers

Is your feature request related to a problem? Please describe.
Most identifiers in the current winget repository contain "special" characters, which will currently be removed when adding a package via the UI (https://github.com/thilojaeggi/WinGetty/blob/main/app/templates/modals/add_package.j2#L63)

Describe the solution you'd like or how it could be implemented
Support common identifiers containing ("+","-",".""_")

Additional context
Examples:
Notepad++.Notepad++
ndd.Notepad--
Zheguisoft.zg_mdm

Run Script (.ps1 or .cmd) to run a SW installation

Hello,

I am looking for an option to preferably run PowerShell or batch scripts for the installation. The background to this is that I would like to test whether I can implement the configurations relevant to my work during a software installation. For this we use scripts that trigger the installation of the software, but also implement other things, such as copying a .config file or removing desktop shortcuts. Is something like this currently possible? If not, would it be possible to include this in a future release?

Many thanks for your efforts

Kevin

Problems with starting Wingetty

I am trying now to install wingetty on a alma linux server, but every time i run docker-compose up -d the systems freezes and i cannot connect to 8080, this is only when i run the wingetty docker compose command

Support for installer url instead of file upload

Is your feature request related to a problem? Please describe.
Instead selecting file and uploading it, why not select a fully qualified url on a file server. Some of our installers are around 4 to 7 gigs. Hosted on a file server readily available.

Describe the solution you'd like or how it could be implemented

  1. Adding an option to select between file or url.
  2. Download the file, calculate the hashes and purge files or Option to add file hash

Additional context
Large installer are already taking ton of storage on file servers. Uploading same files makes it redundent and costs storage.

Errors creating default permissions on clean database installation

Describe the bug
Running a fresh container, tagged 0.0.3, on an Azure Web Apps, is logging a bunch of errors.
I don't get the same issues logged when running it under a local Docker container.

To Reproduce
Steps to reproduce the behavior:

  1. Get 0.0.3 up and running with just a SQLite database (as per the examples)

Expected behavior
Azure tends to detect the errors and prevent the container from loading.
I had expected it to go direct to the sign-up screen (with no errors)

Screenshots
These are the logs:

2023-08-29T20:20:00.045029967Z INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
2023-08-29T20:20:00.045063771Z INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
2023-08-29T20:20:00.083965663Z INFO  [alembic.runtime.migration] Running upgrade  -> 3d1965dfdcd5, Create database tables for the first time
2023-08-29T20:20:00.233395548Z INFO  [alembic.runtime.migration] Running upgrade 3d1965dfdcd5 -> 50b652194afc, Change name to username in user table`
2023-08-29T20:20:00.282728975Z INFO  [alembic.runtime.migration] Running upgrade 50b652194afc -> ba3c6bdf3b09, Make fields unique
2023-08-29T20:20:00.342468327Z INFO  [alembic.runtime.migration] Running upgrade ba3c6bdf3b09 -> 294fa8c8c153, Rename installer switch colum names
2023-08-29T20:20:00.400330460Z INFO  [alembic.runtime.migration] Running upgrade 294fa8c8c153 -> 9b131b465fca, Add role, permission tables
2023-08-29T20:20:00.519270780Z INFO  [alembic.runtime.migration] Running upgrade 9b131b465fca -> e28efaaea362, Add nested installer columns
2023-08-29T20:20:00.872213648Z [2023-08-29 20:20:00 +0000] [1] [INFO] Starting gunicorn 20.1.0
2023-08-29T20:20:00.873475484Z [2023-08-29 20:20:00 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
2023-08-29T20:20:00.873728697Z [2023-08-29 20:20:00 +0000] [1] [INFO] Using worker: sync
2023-08-29T20:20:00.877082570Z [2023-08-29 20:20:00 +0000] [8] [INFO] Booting worker with pid: 8
2023-08-29T20:20:00.907930410Z [2023-08-29 20:20:00 +0000] [9] [INFO] Booting worker with pid: 9
2023-08-29T20:20:00.952555170Z [2023-08-29 20:20:00 +0000] [10] [INFO] Booting worker with pid: 10
2023-08-29T20:20:00.992154335Z [2023-08-29 20:20:00 +0000] [11] [INFO] Booting worker with pid: 11
2023-08-29T20:20:05.833970841Z [2023-08-29 20:20:05 +0000] [8] [ERROR] Exception in worker process
2023-08-29T20:20:05.833998964Z Traceback (most recent call last):
2023-08-29T20:20:05.834004675Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1968, in _exec_single_context
2023-08-29T20:20:05.834009023Z     self.dialect.do_execute(
2023-08-29T20:20:05.834012980Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 920, in do_execute
2023-08-29T20:20:05.834017078Z     cursor.execute(statement, parameters)
2023-08-29T20:20:05.834020785Z sqlite3.IntegrityError: UNIQUE constraint failed: permission.name
2023-08-29T20:20:05.834025023Z 
2023-08-29T20:20:05.834028750Z The above exception was the direct cause of the following exception:
2023-08-29T20:20:05.834032356Z 
2023-08-29T20:20:05.834036123Z Traceback (most recent call last):
2023-08-29T20:20:05.834039570Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
2023-08-29T20:20:05.834043607Z     worker.init_process()
2023-08-29T20:20:05.834047464Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process
2023-08-29T20:20:05.834051302Z     self.load_wsgi()
2023-08-29T20:20:05.834063084Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
2023-08-29T20:20:05.834067141Z     self.wsgi = self.app.wsgi()
2023-08-29T20:20:05.834070878Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi
2023-08-29T20:20:05.834074425Z     self.callable = self.load()
2023-08-29T20:20:05.834077801Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
2023-08-29T20:20:05.834081298Z     return self.load_wsgiapp()
2023-08-29T20:20:05.834084734Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
2023-08-29T20:20:05.834088341Z     return util.import_app(self.app_uri)
2023-08-29T20:20:05.834091577Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/util.py", line 412, in import_app
2023-08-29T20:20:05.834095424Z     app = app(*args, **kwargs)
2023-08-29T20:20:05.834098720Z   File "/app/app/__init__.py", line 97, in create_app
2023-08-29T20:20:05.834102046Z     create_all()
2023-08-29T20:20:05.834105303Z   File "/app/app/permissions.py", line 6, in create_all
2023-08-29T20:20:05.834108629Z     create_permissions()
2023-08-29T20:20:05.834111764Z   File "/app/app/permissions.py", line 96, in create_permissions
2023-08-29T20:20:05.834115502Z     existing_permission = Permission.query.filter_by(name=permission).first()
2023-08-29T20:20:05.834118858Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 2747, in first
2023-08-29T20:20:05.834122415Z     return self.limit(1)._iter().first()  # type: ignore
2023-08-29T20:20:05.834125791Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 2846, in _iter
2023-08-29T20:20:05.834129287Z     result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
2023-08-29T20:20:05.834133555Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2232, in execute
2023-08-29T20:20:05.834136871Z     return self._execute_internal(
2023-08-29T20:20:05.834140067Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2106, in _execute_internal
2023-08-29T20:20:05.834143804Z     ) = compile_state_cls.orm_pre_session_exec(
2023-08-29T20:20:05.834146950Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/context.py", line 546, in orm_pre_session_exec
2023-08-29T20:20:05.834150477Z     session._autoflush()
2023-08-29T20:20:05.834153573Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2909, in _autoflush
2023-08-29T20:20:05.834156869Z     raise e.with_traceback(sys.exc_info()[2])
2023-08-29T20:20:05.834160014Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2898, in _autoflush
2023-08-29T20:20:05.834163461Z     self.flush()
2023-08-29T20:20:05.834170324Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 4154, in flush
2023-08-29T20:20:05.834174061Z     self._flush(objects)
2023-08-29T20:20:05.834177698Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 4291, in _flush
2023-08-29T20:20:05.834181204Z     transaction.rollback(_capture_exception=True)
2023-08-29T20:20:05.834184390Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
2023-08-29T20:20:05.834187736Z     raise exc_value.with_traceback(exc_tb)
2023-08-29T20:20:05.834190892Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 4251, in _flush
2023-08-29T20:20:05.834194369Z     flush_context.execute()
2023-08-29T20:20:05.834197625Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 467, in execute
2023-08-29T20:20:05.834201242Z     rec.execute(self)
2023-08-29T20:20:05.834204457Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 644, in execute
2023-08-29T20:20:05.834207844Z     util.preloaded.orm_persistence.save_obj(
2023-08-29T20:20:05.834211110Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
2023-08-29T20:20:05.834214787Z     _emit_insert_statements(
2023-08-29T20:20:05.834218303Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1223, in _emit_insert_statements
2023-08-29T20:20:05.834222241Z     result = connection.execute(
2023-08-29T20:20:05.834225577Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1413, in execute
2023-08-29T20:20:05.834229134Z     return meth(
2023-08-29T20:20:05.834232410Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 483, in _execute_on_connection
2023-08-29T20:20:05.834236167Z     return connection._execute_clauseelement(
2023-08-29T20:20:05.834240064Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
2023-08-29T20:20:05.834243691Z     ret = self._execute_context(
2023-08-29T20:20:05.834247398Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
2023-08-29T20:20:05.834250824Z     return self._exec_single_context(
2023-08-29T20:20:05.834254100Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1987, in _exec_single_context
2023-08-29T20:20:05.834257456Z     self._handle_dbapi_exception(
2023-08-29T20:20:05.834260542Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2344, in _handle_dbapi_exception
2023-08-29T20:20:05.834264129Z     raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
2023-08-29T20:20:05.834267505Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1968, in _exec_single_context
2023-08-29T20:20:05.834273867Z     self.dialect.do_execute(
2023-08-29T20:20:05.834277243Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 920, in do_execute
2023-08-29T20:20:05.834280870Z     cursor.execute(statement, parameters)
2023-08-29T20:20:05.834284317Z sqlalchemy.exc.IntegrityError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
2023-08-29T20:20:05.834288134Z (sqlite3.IntegrityError) UNIQUE constraint failed: permission.name
2023-08-29T20:20:05.834291971Z [SQL: INSERT INTO permission (name) VALUES (?)]
2023-08-29T20:20:05.834295567Z [parameters: ('view:package',)]
2023-08-29T20:20:05.834298793Z (Background on this error at: https://sqlalche.me/e/20/gkpj)
2023-08-29T20:20:05.835375121Z [2023-08-29 20:20:05 +0000] [8] [INFO] Worker exiting (pid: 8)
2023-08-29T20:20:05.835802699Z Creating permission: view:package
2023-08-29T20:20:06.029765046Z [2023-08-29 20:20:06 +0000] [11] [INFO] Worker exiting (pid: 11)
2023-08-29T20:20:06.029964839Z Creating permission: view:package
2023-08-29T20:20:06.029977402Z Creating permission: add:package
2023-08-29T20:20:06.029982291Z Creating permission: edit:package
2023-08-29T20:20:06.029986138Z Creating permission: delete:package
2023-08-29T20:20:06.029989855Z Creating permission: view:version
2023-08-29T20:20:06.029993782Z Creating permission: add:version
2023-08-29T20:20:06.029997460Z Creating permission: edit:version
2023-08-29T20:20:06.030001487Z Creating permission: delete:version
2023-08-29T20:20:06.030005564Z Creating permission: view:installer
2023-08-29T20:20:06.030009803Z Creating permission: add:installer
2023-08-29T20:20:06.030013650Z Creating permission: edit:installer
2023-08-29T20:20:06.030017657Z Creating permission: delete:installer
2023-08-29T20:20:06.030021625Z Creating permission: view:installer_switch
2023-08-29T20:20:06.030025311Z Creating permission: add:installer_switch
2023-08-29T20:20:06.030029880Z Creating permission: edit:installer_switch
2023-08-29T20:20:06.030033507Z Creating permission: delete:installer_switch
2023-08-29T20:20:06.030037354Z Creating permission: view:role
2023-08-29T20:20:06.030041622Z Creating permission: add:role
2023-08-29T20:20:06.030046311Z Creating permission: edit:role
2023-08-29T20:20:06.030050388Z Creating permission: delete:role
2023-08-29T20:20:06.030054847Z Creating permission: view:permission
2023-08-29T20:20:06.030059345Z Creating permission: add:permission
2023-08-29T20:20:06.030063412Z Creating permission: edit:permission
2023-08-29T20:20:06.030066658Z Creating permission: delete:permission
2023-08-29T20:20:06.030070135Z Creating permission: view:user
2023-08-29T20:20:06.030080805Z Creating permission: add:user
2023-08-29T20:20:06.030085243Z Creating permission: edit:user
2023-08-29T20:20:06.030089080Z Creating permission: delete:user
2023-08-29T20:20:06.030092637Z Creating permission: view:own_user
2023-08-29T20:20:06.030096464Z Creating permission: edit:own_user
2023-08-29T20:20:06.058490897Z [2023-08-29 20:20:06 +0000] [10] [ERROR] Exception in worker process
2023-08-29T20:20:06.058515212Z Traceback (most recent call last):
2023-08-29T20:20:06.058520382Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1968, in _exec_single_context
2023-08-29T20:20:06.058525431Z     self.dialect.do_execute(
2023-08-29T20:20:06.058529990Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 920, in do_execute
2023-08-29T20:20:06.058534769Z     cursor.execute(statement, parameters)
2023-08-29T20:20:06.058538816Z sqlite3.IntegrityError: UNIQUE constraint failed: permission.name
2023-08-29T20:20:06.058543265Z 
2023-08-29T20:20:06.058547813Z The above exception was the direct cause of the following exception:
2023-08-29T20:20:06.058552071Z 
2023-08-29T20:20:06.058556039Z Traceback (most recent call last):
2023-08-29T20:20:06.058587838Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
2023-08-29T20:20:06.058594871Z     worker.init_process()
2023-08-29T20:20:06.058598628Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process
2023-08-29T20:20:06.058602165Z     self.load_wsgi()
2023-08-29T20:20:06.058605340Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
2023-08-29T20:20:06.058609108Z     self.wsgi = self.app.wsgi()
2023-08-29T20:20:06.058612534Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi
2023-08-29T20:20:06.058616702Z     self.callable = self.load()
2023-08-29T20:20:06.058620399Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
2023-08-29T20:20:06.058623915Z     return self.load_wsgiapp()
2023-08-29T20:20:06.058627412Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
2023-08-29T20:20:06.058630999Z     return util.import_app(self.app_uri)
2023-08-29T20:20:06.058634595Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/util.py", line 412, in import_app
2023-08-29T20:20:06.058638202Z     app = app(*args, **kwargs)
2023-08-29T20:20:06.058642029Z   File "/app/app/__init__.py", line 97, in create_app
2023-08-29T20:20:06.058717600Z     create_all()
2023-08-29T20:20:06.058724002Z   File "/app/app/permissions.py", line 6, in create_all
2023-08-29T20:20:06.058736435Z     create_permissions()
2023-08-29T20:20:06.058740102Z   File "/app/app/permissions.py", line 96, in create_permissions
2023-08-29T20:20:06.058743598Z     existing_permission = Permission.query.filter_by(name=permission).first()
2023-08-29T20:20:06.058747115Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 2747, in first
2023-08-29T20:20:06.058751063Z     return self.limit(1)._iter().first()  # type: ignore
2023-08-29T20:20:06.058754879Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 2846, in _iter
2023-08-29T20:20:06.058758767Z     result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
2023-08-29T20:20:06.058764798Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2232, in execute
2023-08-29T20:20:06.058768876Z     return self._execute_internal(
2023-08-29T20:20:06.058772492Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2106, in _execute_internal
2023-08-29T20:20:06.058776250Z     ) = compile_state_cls.orm_pre_session_exec(
2023-08-29T20:20:06.058779876Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/context.py", line 546, in orm_pre_session_exec
2023-08-29T20:20:06.058783703Z     session._autoflush()
2023-08-29T20:20:06.058787390Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2909, in _autoflush
2023-08-29T20:20:06.058791338Z     raise e.with_traceback(sys.exc_info()[2])
2023-08-29T20:20:06.058795025Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2898, in _autoflush
2023-08-29T20:20:06.058798992Z     self.flush()
2023-08-29T20:20:06.058802669Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 4154, in flush
2023-08-29T20:20:06.058806576Z     self._flush(objects)
2023-08-29T20:20:06.058810343Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 4291, in _flush
2023-08-29T20:20:06.058814070Z     transaction.rollback(_capture_exception=True)
2023-08-29T20:20:06.058817707Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
2023-08-29T20:20:06.058821504Z     raise exc_value.with_traceback(exc_tb)
2023-08-29T20:20:06.058825171Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 4251, in _flush
2023-08-29T20:20:06.058829018Z     flush_context.execute()
2023-08-29T20:20:06.058833687Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 467, in execute
2023-08-29T20:20:06.058837574Z     rec.execute(self)
2023-08-29T20:20:06.058841201Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 644, in execute
2023-08-29T20:20:06.058844847Z     util.preloaded.orm_persistence.save_obj(
2023-08-29T20:20:06.058848514Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
2023-08-29T20:20:06.058856209Z     _emit_insert_statements(
2023-08-29T20:20:06.058859946Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1223, in _emit_insert_statements
2023-08-29T20:20:06.058863823Z     result = connection.execute(
2023-08-29T20:20:06.058867360Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1413, in execute
2023-08-29T20:20:06.058871187Z     return meth(
2023-08-29T20:20:06.058874583Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 483, in _execute_on_connection
2023-08-29T20:20:06.058878400Z     return connection._execute_clauseelement(
2023-08-29T20:20:06.058882498Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
2023-08-29T20:20:06.058886415Z     ret = self._execute_context(
2023-08-29T20:20:06.058889891Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
2023-08-29T20:20:06.058893609Z     return self._exec_single_context(
2023-08-29T20:20:06.058897225Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1987, in _exec_single_context
2023-08-29T20:20:06.058901092Z     self._handle_dbapi_exception(
2023-08-29T20:20:06.058969731Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2344, in _handle_dbapi_exception
2023-08-29T20:20:06.058974981Z     raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
2023-08-29T20:20:06.058979198Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1968, in _exec_single_context
2023-08-29T20:20:06.058983056Z     self.dialect.do_execute(
2023-08-29T20:20:06.058987204Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 920, in do_execute
2023-08-29T20:20:06.058991341Z     cursor.execute(statement, parameters)
2023-08-29T20:20:06.058995409Z sqlalchemy.exc.IntegrityError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
2023-08-29T20:20:06.058999567Z (sqlite3.IntegrityError) UNIQUE constraint failed: permission.name
2023-08-29T20:20:06.059003734Z [SQL: INSERT INTO permission (name) VALUES (?)]
2023-08-29T20:20:06.059008062Z [parameters: ('view:package',)]
2023-08-29T20:20:06.059011629Z (Background on this error at: https://sqlalche.me/e/20/gkpj)
2023-08-29T20:20:06.069200407Z Creating permission: view:package
2023-08-29T20:20:06.069302829Z [2023-08-29 20:20:06 +0000] [9] [ERROR] Exception in worker process
2023-08-29T20:20:06.069312867Z Traceback (most recent call last):
2023-08-29T20:20:06.069318157Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1968, in _exec_single_context
2023-08-29T20:20:06.069322285Z     self.dialect.do_execute(
2023-08-29T20:20:06.069334377Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 920, in do_execute
2023-08-29T20:20:06.069338535Z     cursor.execute(statement, parameters)
2023-08-29T20:20:06.069341931Z sqlite3.IntegrityError: UNIQUE constraint failed: permission.name
2023-08-29T20:20:06.069345258Z 
2023-08-29T20:20:06.069348894Z The above exception was the direct cause of the following exception:
2023-08-29T20:20:06.069352441Z 
2023-08-29T20:20:06.069507270Z Traceback (most recent call last):
2023-08-29T20:20:06.069515996Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
2023-08-29T20:20:06.069521026Z     worker.init_process()
2023-08-29T20:20:06.069525374Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process
2023-08-29T20:20:06.069528970Z     self.load_wsgi()
2023-08-29T20:20:06.069532247Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
2023-08-29T20:20:06.069535863Z     self.wsgi = self.app.wsgi()
2023-08-29T20:20:06.069539109Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi
2023-08-29T20:20:06.069542405Z     self.callable = self.load()
2023-08-29T20:20:06.069546353Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
2023-08-29T20:20:06.069550611Z     return self.load_wsgiapp()
2023-08-29T20:20:06.069554678Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
2023-08-29T20:20:06.069559638Z     return util.import_app(self.app_uri)
2023-08-29T20:20:06.069563886Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/util.py", line 412, in import_app
2023-08-29T20:20:06.069568674Z     app = app(*args, **kwargs)
2023-08-29T20:20:06.069572792Z   File "/app/app/__init__.py", line 97, in create_app
2023-08-29T20:20:06.069577110Z     create_all()
2023-08-29T20:20:06.069580927Z   File "/app/app/permissions.py", line 6, in create_all
2023-08-29T20:20:06.069586658Z     create_permissions()
2023-08-29T20:20:06.069590665Z   File "/app/app/permissions.py", line 96, in create_permissions
2023-08-29T20:20:06.069594583Z     existing_permission = Permission.query.filter_by(name=permission).first()
2023-08-29T20:20:06.069643724Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 2747, in first
2023-08-29T20:20:06.069648023Z     return self.limit(1)._iter().first()  # type: ignore
2023-08-29T20:20:06.069653032Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/query.py", line 2846, in _iter
2023-08-29T20:20:06.069657520Z     result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
2023-08-29T20:20:06.069663792Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2232, in execute
2023-08-29T20:20:06.069676005Z     return self._execute_internal(
2023-08-29T20:20:06.069681024Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2106, in _execute_internal
2023-08-29T20:20:06.069685252Z     ) = compile_state_cls.orm_pre_session_exec(
2023-08-29T20:20:06.071293943Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/context.py", line 546, in orm_pre_session_exec
2023-08-29T20:20:06.071305865Z     session._autoflush()
2023-08-29T20:20:06.071310404Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2909, in _autoflush
2023-08-29T20:20:06.071314622Z     raise e.with_traceback(sys.exc_info()[2])
2023-08-29T20:20:06.071318288Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 2898, in _autoflush
2023-08-29T20:20:06.071322326Z     self.flush()
2023-08-29T20:20:06.071325773Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 4154, in flush
2023-08-29T20:20:06.071329369Z     self._flush(objects)
2023-08-29T20:20:06.071332776Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 4291, in _flush
2023-08-29T20:20:06.071336132Z     transaction.rollback(_capture_exception=True)
2023-08-29T20:20:06.071339318Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
2023-08-29T20:20:06.071342764Z     raise exc_value.with_traceback(exc_tb)
2023-08-29T20:20:06.071346060Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/session.py", line 4251, in _flush
2023-08-29T20:20:06.071349457Z     flush_context.execute()
2023-08-29T20:20:06.071352763Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 467, in execute
2023-08-29T20:20:06.071356370Z     rec.execute(self)
2023-08-29T20:20:06.071359496Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 644, in execute
2023-08-29T20:20:06.071363032Z     util.preloaded.orm_persistence.save_obj(
2023-08-29T20:20:06.071366278Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
2023-08-29T20:20:06.071369835Z     _emit_insert_statements(
2023-08-29T20:20:06.071373041Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 1223, in _emit_insert_statements
2023-08-29T20:20:06.071376608Z     result = connection.execute(
2023-08-29T20:20:06.071380384Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1413, in execute
2023-08-29T20:20:06.071384091Z     return meth(
2023-08-29T20:20:06.071387889Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/sql/elements.py", line 483, in _execute_on_connection
2023-08-29T20:20:06.071391625Z     return connection._execute_clauseelement(
2023-08-29T20:20:06.071404199Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
2023-08-29T20:20:06.071408267Z     ret = self._execute_context(
2023-08-29T20:20:06.071411713Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
2023-08-29T20:20:06.071415580Z     return self._exec_single_context(
2023-08-29T20:20:06.071419057Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1987, in _exec_single_context
2023-08-29T20:20:06.071422964Z     self._handle_dbapi_exception(
2023-08-29T20:20:06.071426461Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 2344, in _handle_dbapi_exception
2023-08-29T20:20:06.071430889Z     raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
2023-08-29T20:20:06.071435437Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/base.py", line 1968, in _exec_single_context
2023-08-29T20:20:06.071439866Z     self.dialect.do_execute(
2023-08-29T20:20:06.071444284Z   File "/usr/local/lib/python3.9/site-packages/sqlalchemy/engine/default.py", line 920, in do_execute
2023-08-29T20:20:06.071448742Z     cursor.execute(statement, parameters)
2023-08-29T20:20:06.071628637Z sqlalchemy.exc.IntegrityError: (raised as a result of Query-invoked autoflush; consider using a session.no_autoflush block if this flush is occurring prematurely)
2023-08-29T20:20:06.071638095Z (sqlite3.IntegrityError) UNIQUE constraint failed: permission.name
2023-08-29T20:20:06.071642253Z [SQL: INSERT INTO permission (name) VALUES (?)]
2023-08-29T20:20:06.071645950Z [parameters: ('view:package',)]
2023-08-29T20:20:06.071649747Z (Background on this error at: https://sqlalche.me/e/20/gkpj)
2023-08-29T20:20:06.071653313Z [2023-08-29 20:20:06 +0000] [10] [INFO] Worker exiting (pid: 10)
2023-08-29T20:20:06.071656970Z [2023-08-29 20:20:06 +0000] [9] [INFO] Worker exiting (pid: 9)
2023-08-29T20:20:06.077743716Z Creating permission: view:package
2023-08-29T20:20:06.424042727Z Traceback (most recent call last):
2023-08-29T20:20:06.424719871Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 209, in run
2023-08-29T20:20:06.425739015Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 357, in sleep
2023-08-29T20:20:06.431195875Z     ready = select.select([self.PIPE[0]], [], [], 1.0)
2023-08-29T20:20:06.431213478Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
2023-08-29T20:20:06.431218387Z     self.reap_workers()
2023-08-29T20:20:06.431221624Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
2023-08-29T20:20:06.431225300Z     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
2023-08-29T20:20:06.431228606Z gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
2023-08-29T20:20:06.431242142Z 
2023-08-29T20:20:06.431245518Z During handling of the above exception, another exception occurred:
2023-08-29T20:20:06.431248894Z 
2023-08-29T20:20:06.431252050Z Traceback (most recent call last):
2023-08-29T20:20:06.431255396Z   File "/usr/local/bin/gunicorn", line 8, in <module>
2023-08-29T20:20:06.431259544Z     sys.exit(run())
2023-08-29T20:20:06.431263201Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 67, in run
2023-08-29T20:20:06.431266888Z     WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
2023-08-29T20:20:06.431270575Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 231, in run
2023-08-29T20:20:06.431274101Z     super().run()
2023-08-29T20:20:06.431277327Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/app/base.py", line 72, in run
2023-08-29T20:20:06.431280864Z     Arbiter(self).run()
2023-08-29T20:20:06.431284040Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 229, in run
2023-08-29T20:20:06.431287547Z     self.halt(reason=inst.reason, exit_status=inst.exit_status)
2023-08-29T20:20:06.431291033Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 342, in halt
2023-08-29T20:20:06.431294630Z     self.stop()
2023-08-29T20:20:06.431297866Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 393, in stop
2023-08-29T20:20:06.431301382Z     time.sleep(0.1)
2023-08-29T20:20:06.431304468Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 242, in handle_chld
2023-08-29T20:20:06.431308365Z     self.reap_workers()
2023-08-29T20:20:06.431311591Z   File "/usr/local/lib/python3.9/site-packages/gunicorn/arbiter.py", line 525, in reap_workers
2023-08-29T20:20:06.431315940Z     raise HaltServer(reason, self.WORKER_BOOT_ERROR)
2023-08-29T20:20:06.431319095Z gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>

General Information:

  • OS: Docker Container on Azure Web Apps (free plan)
  • WinGetty Version 0.0.3

Additional context
My experience with python is limited. Tried playing with a private fork without much success.
Sometimes refreshing the webpage the site will load, but not found a consistent pattern or solution.

wingetty.dev requires secure connection, but submits wrong certificates

Describe the bug
When clicking on any of the wingetty.dev links on this repository, the website cannot be accessed due to wrongly configured certificates on the server.

To Reproduce
Steps to reproduce the behavior:

  1. Go to wingetty.dev
  2. See browser error about wrongly configured certificates for wingetty.dev

Expected behavior
No content blocking errors when visiting wingetty.dev.

Screenshots
Screenshot 2024-02-22 102646

General Information:

  • OS: Windows (but really, any)
  • Browser [Firefox, chrome, edge, vivaldi, and I assume all others] (if website related)
  • WinGetty Version [N/A]

Additional context
If the issue is that the website does not exist, so there wouldn't be a point to configure proper certificates yet, then the fix for this bug is for the links to wingetty.dev on the repository to be removed.
Congrats on this useful and cool project. In my opinion it likely loses many users on the account of trust due to issues like this.

Adding store

So i have build the wingetty enviroment and all is https. When i try to add the store to winget inget an error failed to open the added source. Winget api is running.

Nested Installers

Is your feature request related to a problem? Please describe.
I have a package that features a .exe installer nested inside of a .zip file. It would be handy if WinGetty had an advanced option for this, or if there's a way for me to supply it manually via an API, that would be good to know.

Describe the solution you'd like or how it could be implemented
Have an option on the Add Package dialog to have a nested package type with a relative path to the installer.

Describe alternatives you've considered
I honestly haven't dug into the API yet, to see if it's possible for me to submit a package that way, but I'm guessing it probably is a part of the spec.

Additional context
Not sure what else to add. The YAMLCreate.ps1 script in the winget-pkgs repo has support for this, so that could be helpful to reference.

Worker Timeout with Large Package

Describe the bug
I'm trying to upload a nested installer that is a hefty 2.4 GB. Nothing seems to happen in the GUI once the upload is complete, but I see a message in the log like: [1] [CRITICAL] WORKER TIMEOUT

To Reproduce
Steps to reproduce the behavior:

  1. Click Add Package
  2. Fill out form, and select an installer that's large enough to trigger the timeout
  3. Wait
  4. See error in log

Expected behavior
Package is generated and available for install.

General Information:

  • WinGetty Version 0.0.4

Additional context
Just having a way to adjust the timeout for the worker process might be enough to take care of this one.

Installation file not being found.

Describe the bug
When i try install an app using my wingetty repo I get an installation failure. Its like the app isn't resolving the installation file path. Has anyone seen this before?

image

issue with portable application

Describe the bug
Unable to install portable application. Getting error 127

To Reproduce
Steps to reproduce the behavior:

  1. Add installer with installer type zip and nested installer type as exe (no portable option)
  2. Install package with winget install OpenTofu.Tofu -s puvvadi --scope machine (scope is irrelevent here. failing on any scope)

installer output

$ winget install OpenTofu.Tofu -s puvvadi --scope machine
Found Tofu [OpenTofu.Tofu] Version 1.6.0-alpha3
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://winget.local.puvvadi.net/api/download/OpenTofu.Tofu/1.6.0-alpha3/x64/machine
  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  21.2 MB / 21.2 MB
Successfully verified installer hash
Extracting archive...
Successfully extracted archive
Starting package install...
Installer failed with exit code: 127

Expected behavior

  1. exact the zip contents to $ENV:LOCALAPPDATA\Microsoft\WinGet\Packages\OpenTofu.Tofu_$Source\ or C:\Program Files\package\
  2. Add link to that in $ENV:LOCALAPPDATA\Microsoft\WinGet\Links\package.exe
  3. Add environment Varible for that package

logs

2023-10-27 11:34:27.262 [CORE] WinGet, version [1.6.2771], activity [{30FFBFC9-E156-4AF9-9C7B-DEA7E7FC8111}]
2023-10-27 11:34:27.262 [CORE] OS: Windows.Desktop v10.0.19045.3570
2023-10-27 11:34:27.262 [CORE] Command line Args: "C:\Users\kd\AppData\Local\Microsoft\WindowsApps\winget.exe" install OpenTofu.Tofu -s puvvadi --scope machine
2023-10-27 11:34:27.262 [CORE] Package: Microsoft.DesktopAppInstaller v1.21.2771.0
2023-10-27 11:34:27.262 [CORE] IsCOMCall:0; Caller: winget-cli
2023-10-27 11:34:27.276 [CLI ] WinGet invoked with arguments: 'install' 'OpenTofu.Tofu' '-s' 'puvvadi' '--scope' 'machine'
2023-10-27 11:34:27.277 [CLI ] Found subcommand: install
2023-10-27 11:34:27.277 [CLI ] Leaf command to execute: root:install
2023-10-27 11:34:27.283 [CLI ] Executing command: install
2023-10-27 11:34:27.285 [REPO] Source named 'msstore' is already defined at origin User. The source from origin Default is dropped.
2023-10-27 11:34:27.286 [REPO] Named source requested, found: puvvadi
2023-10-27 11:34:27.286 [REPO] Source past auto update time [5 mins]; it has been at least 9 mins
2023-10-27 11:34:27.287 [REPO] Source named 'msstore' is already defined at origin User. The source from origin Default is dropped.
2023-10-27 11:34:27.290 [REPO] Sending http GET request to: https://winget.local.puvvadi.net/wg/information
2023-10-27 11:34:27.644 [REPO] Response status: 200
2023-10-27 11:34:27.645 [REPO] Sending http GET request to: https://winget.local.puvvadi.net/wg/information
2023-10-27 11:34:27.693 [REPO] Response status: 200
2023-10-27 11:34:27.911 [REPO] Source named 'msstore' is already defined at origin User. The source from origin Default is dropped.
2023-10-27 11:34:27.912 [REPO] Creating PredefinedInstalledSource with filter [None]
2023-10-27 11:34:27.912 [REPO] Creating new SQLite Index with version [Latest] at ':memory:'
2023-10-27 11:34:27.912 [SQL ] Opening SQLite connection #1: ':memory:' [6, 0]
2023-10-27 11:34:27.986 [REPO] Reading MSI UpgradeCodes
2023-10-27 11:34:28.001 [REPO] Examining ARP entries for Machine | X64
2023-10-27 11:34:28.071 [REPO] Examining ARP entries for Machine | X86
2023-10-27 11:34:28.218 [REPO] Reading MSI UpgradeCodes
2023-10-27 11:34:28.230 [REPO] Examining ARP entries for User | X64
2023-10-27 11:34:28.526 [REPO] Opening SQLite Index for ReadWrite at 'C:\Users\kd\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\puvvadi\installed.db'
2023-10-27 11:34:28.526 [SQL ] Opening SQLite connection #2: 'C:\Users\kd\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\puvvadi\installed.db' [2, 0]
2023-10-27 11:34:28.527 [REPO] Opened SQLite Index with version [1.6], last write [2023-10-27 11:10:21.000]
2023-10-27 11:34:28.582 [REPO] Sending http POST request to: https://winget.local.puvvadi.net/wg/manifestSearch
2023-10-27 11:34:28.648 [REPO] Response status: 200
2023-10-27 11:34:28.649 [REPO] Sending http GET request to: https://winget.local.puvvadi.net/wg/packageManifests/OpenTofu.Tofu?Version=1.6.0-alpha3
2023-10-27 11:34:28.723 [REPO] Response status: 200
2023-10-27 11:34:28.728 [REPO] Finding installed package from available package using system reference search: Query:[none] Include:NormalizedNameAndPublisher='tofu'+'opentofu'[Exact]
2023-10-27 11:34:28.760 [REPO] Opening pinning index
2023-10-27 11:34:28.761 [REPO] Opening existing pinning index
2023-10-27 11:34:28.761 [REPO] Opening SQLite Index for ReadWrite at 'C:\Users\kd\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\pinning.db'
2023-10-27 11:34:28.761 [SQL ] Opening SQLite connection #3: 'C:\Users\kd\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\pinning.db' [2, 0]
2023-10-27 11:34:28.764 [REPO] Opened Pinning Index with version [1.0], last write [2023-04-04 14:31:49.000]
2023-10-27 11:34:28.765 [CLI ] Found one app. App id: OpenTofu.Tofu App name: Tofu
2023-10-27 11:34:28.773 [REPO] Sending http GET request to: https://winget.local.puvvadi.net/wg/packageManifests/OpenTofu.Tofu?Version=1.6.0-alpha3
2023-10-27 11:34:28.894 [REPO] Response status: 200
2023-10-27 11:34:28.895 [CLI ] Starting installer selection.
2023-10-27 11:34:28.895 [CLI ] Installer [X64,exe,User,] not applicable: Installer scope does not match required scope: User != Machine
2023-10-27 11:34:28.896 [CLI ] Completed installer selection.
2023-10-27 11:34:28.896 [CLI ] Manifest fields: Name [Tofu], Version [1.6.0-alpha3]
2023-10-27 11:34:28.914 [CLI ] Generated temp download path: C:\Users\kd\AppData\Local\Temp\WinGet\OpenTofu.Tofu.1.6.0-alpha3\395e7278136c06fe87ad4115ad5781332f37790adc5e5e64160b01d2a3acd53b
2023-10-27 11:34:28.915 [CORE] Downloading to path: C:\Users\kd\AppData\Local\Temp\WinGet\OpenTofu.Tofu.1.6.0-alpha3\395e7278136c06fe87ad4115ad5781332f37790adc5e5e64160b01d2a3acd53b
2023-10-27 11:34:28.915 [CORE] DeliveryOptimization downloading from url: https://winget.local.puvvadi.net/api/download/OpenTofu.Tofu/1.6.0-alpha3/x64/machine
2023-10-27 11:34:53.631 [CORE] Download completed.
2023-10-27 11:34:53.875 [CORE] Started applying motw to C:\Users\kd\AppData\Local\Temp\WinGet\OpenTofu.Tofu.1.6.0-alpha3\395e7278136c06fe87ad4115ad5781332f37790adc5e5e64160b01d2a3acd53b with zone: 3
2023-10-27 11:34:53.878 [CORE] Finished applying motw
2023-10-27 11:34:53.879 [CLI ] Installer hash verified
2023-10-27 11:34:53.879 [CORE] Started applying motw using IAttachmentExecute to C:\Users\kd\AppData\Local\Temp\WinGet\OpenTofu.Tofu.1.6.0-alpha3\395e7278136c06fe87ad4115ad5781332f37790adc5e5e64160b01d2a3acd53b
2023-10-27 11:34:55.072 [CORE] Finished applying motw using IAttachmentExecute. Result: 0 IAttachmentExecute::Save() result: 0
2023-10-27 11:34:55.073 [CLI ] Successfully renamed downloaded installer. Path: C:\Users\kd\AppData\Local\Temp\WinGet\OpenTofu.Tofu.1.6.0-alpha3\machine.zip
2023-10-27 11:34:55.073 [REPO] Creating PredefinedInstalledSource with filter [ARP]
2023-10-27 11:34:55.073 [REPO] Creating new SQLite Index with version [Latest] at ':memory:'
2023-10-27 11:34:55.073 [SQL ] Opening SQLite connection #4: ':memory:' [6, 0]
2023-10-27 11:34:55.132 [REPO] Reading MSI UpgradeCodes
2023-10-27 11:34:55.148 [REPO] Examining ARP entries for Machine | X64
2023-10-27 11:34:55.215 [REPO] Examining ARP entries for Machine | X86
2023-10-27 11:34:55.345 [REPO] Reading MSI UpgradeCodes
2023-10-27 11:34:55.357 [REPO] Examining ARP entries for User | X64
2023-10-27 11:34:55.498 [CLI ] Extracting archive to: C:\Users\kd\AppData\Local\Temp\WinGet\OpenTofu.Tofu.1.6.0-alpha3\extracted
2023-10-27 11:34:57.176 [CLI ] Successfully extracted archive
2023-10-27 11:34:57.177 [CLI ] Setting installerPath to: C:\Users\kd\AppData\Local\Temp\WinGet\OpenTofu.Tofu.1.6.0-alpha3\extracted\tofu.exe
2023-10-27 11:34:57.288 [CLI ] Installer args: 
2023-10-27 11:34:57.289 [CLI ] Starting: 'C:\Users\kd\AppData\Local\Temp\WinGet\OpenTofu.Tofu.1.6.0-alpha3\extracted\tofu.exe' with arguments ''
2023-10-27 11:35:02.984 [CLI ] ShellExecute installer failed: 127
2023-10-27 11:35:02.984 [CLI ] Terminating context: 0x8a150006 at D:\a\_work\1\s\external\pkg\src\AppInstallerCLICore\Workflows\InstallFlow.cpp:1fd

General Information:

  • OS: Windows 10 Pro 22H2
  • Browser: chrome
  • WinGetty Version: 0.0.5/stable

Additional context
Running docker image stable behind traefik locally.

IpTables error when starting WinGetty

Describe the bug
When starting the Docker container with "docker-compose up -d" the following error is displayed after a few seconds:
Creating network "wingetty-main_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable NAT rule: (iptables failed: iptables --wait -t nat -I POSTROUTING -s 172.18.0.0/16 ! -o br-9be1109a0643 -j MASQUERADE: iptables: Invalid argument. Run `dmesg' for more information.
(exit status 1))

If run again following error appears:
Creating network "wingetty-main_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable NAT rule: (iptables failed: iptables --wait -t nat -I POSTROUTING -s 172.19.0.0/16 ! -o br-9689143a5182 -j MASQUERADE: iptables: No chain/target/match by that name.
(exit status 1))

To Reproduce
Steps to reproduce the behavior:

  1. Setup windows 2022 server and install WSL
  2. follow this turtorial: https://techcommunity.microsoft.com/t5/itops-talk-blog/using-wsl-2-on-windows-server-2022-to-run-linux-containers/ba-p/3624745
  3. Copy Wingetty folder to linux folder
  4. "docker-compose up -d"
  5. See error

Expected behavior
Notification that the WinGetty Container is up and running.

Screenshots
image

General Information:

  • OS: Windows Server 2022 21H2
  • WinGetty Version: latest

A problem connecting to mysql database

I had a problem connecting to the mysql database. After checking the log, I found that the pymysql library was not added to python.
Suggested solution: add the pymysql library in requirements.txt

Problems with postgres as db server

I try to setup wingetty using postgres 16 container as db server. There seem to be 2 problems:

  1. Python module psycopg2-binary is missing in requirements.txt
  2. Authentication against db server does not work with error message: "fe_sendauth: no password supplied"

I added the password using WINGETTY_SECRET_KEY variable. But this seems not to be used for db server authentication.

Wingetty over Dns record

Hello,

We just have a fresh install of wingetty, this seems cool. We have configured nginx as reverse proxy and we can now add our source on winget client. Our wingetty is on a specific computer over our DNS, the computer name is β€œrepository”. To use https we are using our wildcard certificate (like *.contoso.com) and register the computer with a dns record (repository.contoso.com). So, we can add our source like that:
β€œwinget source add -n WinGetty -t "Microsoft.Rest" -a https://repository.contoso.com /wg/”
Everything works fine, and source can be list:

image

And my package for the test can be β€œsearch”

image

But when I want to install it:

image

As you can see on the screen capture, the URL returned is not the good one, and we cannot download. The process stays stuck at this point. We assume that is normal, because wingetty cannot know our dns record, but do you have a setting to set this information, to fix download part?
To be clear if, with my browser, I go to https://repository.contoso.com/api/download/Publisher.TestPackage/1.1/x86/user download start and succeed.

Thanks a lot,
Thomas.

Trouble Adding Any Packages (Probably my fault)

Hi Thilo,

First of all, thank you and sorry to bug you. This seems like an awesome tool and I'm excited to get it up and running!

I stood up my WinGetty v0.0.3 instance using Docker on Ubuntu 20.04.6 LTS, configured Nginx for reverse proxy, and successfully added the repo to Winget on my workstation.

I'm having trouble adding any packages to WinGetty at all.

When I upload a package, the progress bar completes, I get a message that says "Package Added Successfully" but no packages are listed and no packages are available in the repo from my workstation. I've tried uploading a package using the public IP of the server:8080, the FQDN via the reverse proxy, and on the server itself using localhost:8080.

I looked for the /app/instance and /app/app/packages folders referenced in the docker-compose.yml in the WinGetty folder and didn't see them. I then created the folders with permissions for everyone (chmod 777), but still no luck.

Is there logging somewhere that I can check to see I've done wrong? Any assistance would be greatly appreciated.

Thank you.

External Storage Mapping

Is your feature request related to a problem? Please describe.
I have this running in an app service in azure. I cant map the storage location to an external store.

Describe the solution you'd like or how it could be implemented
I would like to store the installers and manifests to a bucket like an Azure Storage Account. This could also act as a recovery point should the app fail. It could be pointed to the data store and find all the manifests and apps without having to re-add them.

Issue with adding package to existing version

Describe the bug

Unable to add installer to existing version of the package

To Reproduce
Steps to reproduce the behavior:

  1. Add Any version to the package
  2. Add a Installer to that version
  3. Trying adding another installer of the version
  4. No Error.

Expected behavior
Add the installer

Logs

[2023-12-11 15:48:34 +0530] [7] [DEBUG] [WinGetty] Available pages: 1
[2023-12-11 15:48:38 +0530] [10] [DEBUG] GET /package/OpenTofu.Tofu
[2023-12-11 15:49:03 +0530] [9] [DEBUG] POST /api/package/OpenTofu.Tofu/add_installer
[2023-12-11 15:49:03 +0530] [9] [INFO] [WinGetty] File and version found
[2023-12-11 15:49:03 +0530] [9] [INFO] [WinGetty] Getting file hash from external URL
[2023-12-11 15:49:04 +0530] [9] [DEBUG] [WinGetty] Checking for field name Silent
[2023-12-11 15:49:04 +0530] [9] [DEBUG] [WinGetty] Checking for field name SilentWithProgress
[2023-12-11 15:49:04 +0530] [9] [DEBUG] [WinGetty] Checking for field name Interactive
[2023-12-11 15:49:04 +0530] [9] [DEBUG] [WinGetty] Checking for field name InstallLocation
[2023-12-11 15:49:04 +0530] [9] [DEBUG] [WinGetty] Checking for field name Log
[2023-12-11 15:49:04 +0530] [9] [DEBUG] [WinGetty] Checking for field name Upgrade
[2023-12-11 15:49:04 +0530] [9] [DEBUG] [WinGetty] Checking for field name Custom
[2023-12-11 15:49:04 +0530] [9] [DEBUG] GET /package/OpenTofu.Tofu
[2023-12-11 15:49:09 +0530] [10] [DEBUG] GET /package/OpenTofu.Tofu

General Information:

  • OS: Windows 11 22H2
  • Browser: chrome
  • WinGetty Version 0.0.9

weird `winget upgrade` responce

Describe the bug
wingetty returning returning weird results for winget upgrade. Only added one package exists in the repo. But when upgrade excecuted from the shell, retuning mostly id of the package but also sometimes returning same. Everytime response is bit different.

To Reproduce
Steps to reproduce the behavior:

  1. Go to winget upgrade
  2. Wait to see the error

Expected behavior
Return response to the only packages exists in the repo.

Screenshots

winget response

winget upgrade
Name                                                   Id                            Version       Available     Source
-----------------------------------------------------------------------------------------------------------------------
Sheets                                                 OpenTofu.TofuAlpha            1.0           1.6.0-alpha5  tofu
Bruno 1.1.1                                            Bruno.Bruno                   1.1.1         1.6.0-alpha5  tofu
Docs                                                   OpenTofu.TofuAlpha            1.0           1.6.0-alpha5  tofu
Google Drive                                           OpenTofu.TofuAlpha            1.0           1.6.0-alpha5  tofu
Terragrunt                                             Gruntwork.Terragrunt          0.45.15       1.6.0-alpha5  tofu
Hugo (Extended)                                        Hugo.Hugo.Extended            0.120.4       1.6.0-alpha5  tofu
CommManagementTool                                     OpenTofu.TofuAlpha            1.00.0002     1.6.0-alpha5  tofu
OMRON Automation Software Upgrade Utility              OpenTofu.TofuAlpha            1.3.0.14      1.6.0-alpha5  tofu
Microsoft Edge Update                                  OpenTofu.TofuAlpha            1.3.181.5     1.6.0-alpha5  tofu
HEIF Image Extensions                                  OpenTofu.TofuAlpha            1.0.63001.0   1.6.0-alpha5  tofu
PowerToys ImageResizer Context Menu                    OpenTofu.TofuAlpha            0.74.0.0      1.6.0-alpha5  tofu
PowerToys PowerRename Context Menu                     OpenTofu.TofuAlpha            0.74.0.0      1.6.0-alpha5  tofu
VP9 Video Extensions                                   OpenTofu.TofuAlpha            1.0.62911.0   1.6.0-alpha5  tofu
Web Media Extensions                                   OpenTofu.TofuAlpha            1.0.61591.0   1.6.0-alpha5  tofu
Webp Image Extensions                                  OpenTofu.TofuAlpha            1.0.62681.0   1.6.0-alpha5  tofu
Dev Home (Preview)                                     OpenTofu.TofuAlpha            0.601.297.0   1.6.0-alpha5  tofu
Microsoft Family                                       OpenTofu.TofuAlpha            0.2.40.0      1.6.0-alpha5  tofu
Notepad++                                              OpenTofu.TofuAlpha            1.0.0.0       1.6.0-alpha5  tofu
Tofu.Alpha                                             OpenTofu.TofuAlpha            1.6.0-alpha4  1.6.0-alpha5  tofu
terraform-docs                                         Terraform-docs.Terraform-docs 0.16.0        1.6.0-alpha5  tofu
.
.
.

wingetty log

[2023-11-17 15:20:22 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:25 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': '11157tiendonam.localsend_g71aj367vb7ze', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:25 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:25 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': '2efa8accbcdd4c87bbe1d52e0d9fac9c', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'sheets', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:25 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:26 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': '35fe443c-39df-5cca-9e6d-73ca33a1ce77', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'bruno', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:26 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:26 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': '40174mourinaruto.nanazip_gnj4mf6z9tkrc', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:26 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:26 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': '5319275a.whatsappdesktop_cv1g1gvanyjgm', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:26 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:27 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': '622079cc7b33315c0d4e0c81649227141609098f', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'windowsdriverpackageomronsentechusb', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:27 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:27 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': '758148beed0b983bce21cbbffee1dfbd', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'docs', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:27 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:27 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': '87af54246aa437477437b09c3ca2c4df', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'googledrive', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:27 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:27 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'appup.intelgraphicsexperience_8j3eq9eme6ctt', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:27 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:28 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'canonicalgrouplimited.ubuntu22.04lts_79rhkp1fndgsc', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:28 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:28 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'digitalocean.doctl_microsoft.winget.source_8wekyb3d8bbwe', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'doctl', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:28 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:28 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'docker desktop', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'dockerdesktop', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:28 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:28 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'git_is1', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'git', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:28 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:29 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'gnupg', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'gnuprivacyguard', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:29 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:29 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'gruntwork.terragrunt_microsoft.winget.source_8wekyb3d8bbwe', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'terragrunt', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:29 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:29 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'handbrake', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:29 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:29 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'hashicorp.terraform_microsoft.winget.source_8wekyb3d8bbwe', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'hashicorpterraform', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:29 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:30 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'helm.helm_microsoft.winget.source_8wekyb3d8bbwe', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'helm', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:30 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:30 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'hugo.hugo.extended_microsoft.winget.source_8wekyb3d8bbwe', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'hugo', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:30 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:30 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'installshield_{22a2831f-6489-4172-936e-b56a93c699d1}', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'commmanagementtool', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:30 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:30 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'installshield_{58d35f73-2929-4378-80c1-f983d8527d27}', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'cxserverdrivermanagementtool', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:30 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:31 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'installshield_{63f0d44f-5ef1-42b3-8b81-172682c605a4}', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'communicationsmiddleware', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:31 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:31 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'installshield_{884dbe6c-f967-4904-80e9-5e8c72e1f362}', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'cxserver', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:31 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:31 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'installshield_{b505c917-a140-43cb-8628-6b0670d2ff68}', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'omronautomationsoftwareupgradeutility', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:31 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:31 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'installshield_{cc33b47f-136e-4f58-870c-e097a2cb438f}', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'sysmacstudio', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:31 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:32 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'installshield_{fc56c930-5f6d-4002-bef3-2b24476efe5e}', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'cxone', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:32 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:32 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'kicad 7.0', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'kicad', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:32 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:32 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'mkvtoolnix', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'mkvtoolnix', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'mkvtoolnix(x64)', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:32 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:32 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'make-3.81_is1', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'gnuwin32make', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:32 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:33 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'microsoft edge', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'microsoftedge', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:33 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:33 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'microsoft edge update', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:33 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:33 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'microsoft edgewebview', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'microsoftedgewebview2runtime', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:33 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:33 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.549981c3f5f10_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:33 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:34 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.desktopappinstaller_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:34 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:34 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.gethelp_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:34 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:34 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.heifimageextension_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:34 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:34 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.hevcvideoextension_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:34 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:35 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.languageexperiencepacken-gb_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:35 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:35 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.microsoftedge.stable_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:35 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:35 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.onedrivesync_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:35 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:35 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.paint_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:35 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:36 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.powertoys.imageresizercontextmenu_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:36 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:36 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.powertoys.powerrenamecontextmenu_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:36 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:36 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.rawimageextension_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:36 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:36 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.screensketch_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:36 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:37 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.sechealthui_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:37 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:37 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.vp9videoextensions_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:37 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:37 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.webmediaextensions_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:37 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:37 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.webpimageextension_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:37 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:38 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.windows.devhome_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:38 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:38 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.windows.photos_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:38 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:38 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.windowscalculator_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:38 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:38 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.windowscamera_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:38 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:38 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.windowsnotepad_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:38 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:39 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.windowsstore_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:39 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:39 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.windowsterminal_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:39 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:39 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.winget.source_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:39 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:39 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoft.xboxgameoverlay_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:39 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:40 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoftcorporationii.microsoftfamily_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:40 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:40 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoftcorporationii.windowssubsystemforlinux_8wekyb3d8bbwe', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:40 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:40 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'microsoftwindows.client.webexperience_cw5n1h2txyewy', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:40 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:40 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'nmap', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'nmap', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:40 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:41 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'notepad++', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'notepad', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'notepad(x64)', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:41 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:41 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'PackageFamilyName', 'RequestMatch': {'KeyWord': 'notepadplusplus_7njy0v32s6xk6', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:41 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:41 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'npcapinst', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'npcap', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:41 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:41 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'oh my posh_is1', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'ohmyposh', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:41 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:42 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'onedrivesetup.exe', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'microsoftonedrive', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:42 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:42 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'opentofu.tofualpha_tofu', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'tofualpha', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:42 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:42 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'postman', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'postman', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'postman(x64)', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:42 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:43 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'proplusretail - en-us', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'microsoftofficeprofessionalplus2016', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:43 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:43 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'rclone.rclone_microsoft.winget.source_8wekyb3d8bbwe', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'rclone', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:43 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:43 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'rubyinstaller-3.2-x64-mingw-ucrt_is1', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'ruby', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'ruby(x64)', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:43 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
[2023-11-17 15:27:43 +0530] [7] [INFO] [WinGetty] Received manifestSearch request: {'Inclusions': [{'PackageMatchField': 'ProductCode', 'RequestMatch': {'KeyWord': 'terraform-docs.terraform-docs_microsoft.winget.source_8wekyb3d8bbwe', 'MatchType': 'Exact'}}, {'PackageMatchField': 'NormalizedPackageNameAndPublisher', 'RequestMatch': {'KeyWord': 'terraformdocs', 'MatchType': 'Exact'}}]}
[2023-11-17 15:27:43 +0530] [7] [INFO] [WinGetty] Returning 1 packages.
.
.
.

General Information:

  • OS: Windows 11 22H2
  • WinGetty Version: 0.0.8

Additional context
Some of the applications are not even installed on the windows box.

Firefox Paket silent deinstallieren

Describe the bug
Ich habe das Programm Firefox ESR als Paket geadded und den Installer switch /S eingebeben.
Beim installieren ist es Silent also keine Userinteraktion aber bei dem Deinstallieren kommt das Firefox deinstallations GUI.

To Reproduce
Steps to reproduce the behavior:

  1. Firefox ESR exe als paket einbingen
  2. Silent switch /S
  3. Install package
  4. Firefox deinstallieren
  5. Fenster ΓΆffnet sich

Expected behavior
Firefox wird im hintergrund deinstalliert.

Screenshots
image

General Information:

  • OS: Windows 10 22H2
  • WinGetty Version 1.0.0

winget search retrieves all packages, not just the matches

Describe the bug
When executing winget search <packagename> all listed packages are listed not only those which match by the name.

To Reproduce
Steps to reproduce the behavior:

  1. Have multiple packages in WinGetty
  2. Execute winget search with the exact package name
  3. Retrieves all packages instead

Expected behavior
winget search <packagename> retrieves only those packages which matches with the queried package name.

General Information:

  • OS: Windows 10 22H2
  • WinGetty Version 1.0.0

Upgrade from 0.0.2 to 0.0.3 hasn't seemed to run migrations for me

I had 0.0.2 up and running on a Kubernetes cluster. When I restarted to upgrade to 0.0.3, I got this:

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: role
[SQL: SELECT role.id AS role_id, role.name AS role_name
FROM role
WHERE role.name = ?
 LIMIT ? OFFSET ?]
[parameters: ('admin', 1, 0)]

I'm thinking that maybe the migrations need to run. Is there a way to kick them manually?

To Reproduce
Steps to reproduce the behavior:

  1. Get 0.0.2 up and running with just a SQLite database
  2. Shutdown the container
  3. Start it back with the 0.0.3 image
  4. See error

Expected behavior
Database migrations should run, and make sure the databases are in the correct state.

General Information:

  • OS: k8s
  • WinGetty Version 0.0.3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.