Skip to content

Instantly share code, notes, and snippets.

View jwmatthews's full-sized avatar

John Matthews jwmatthews

View GitHub Profile
@jwmatthews
jwmatthews / provider-settings.yaml
Created December 5, 2025 13:33
provider-settings.yaml: Verified Functional - MTA 8.0.2 with podman AI and ibm-granite/granite-3.3-8b-instruct-GGUF
# This is a sample settings file generated by the extension with a few common providers
# and models defined. To return the file back to default, delete it and restart vscode.
---
environment:
ALWAYS_APPLIED_KEY: "envvar to be set regardless of which model is active"
# CA_BUNDLE: "" # optional
# ALLOW_INSECURE: "false" # optional
# This is a collection of model configurations that may be used. The `&active`
# anchor is used to reference the model to the active node below. The extension will

Deep Dive Technical Analysis: MTA Extension Enterprise Failure Points

Executive Summary

The Migration Toolkit for Applications (MTA) VS Code extension is a complex multi-component system with several potential failure points in restricted enterprise environments. The architecture involves multiple communication protocols, binary executables, and external dependencies that can be blocked or restricted by enterprise security policies.


System Architecture Overview

This file has been truncated, but you can view the full file.
{"level":"info","message":"Logger created","timestamp":"2025-08-20T15:56:13.818Z"}
{"component":"SolutionServerClient","level":"info","message":"Solution server is disabled, skipping connection","timestamp":"2025-08-20T15:56:13.842Z"}
{"level":"info","message":"Extension initialized","timestamp":"2025-08-20T15:56:13.842Z"}
{"component":"webviewMessageHandler","level":"debug","message":"messageHandler: {\"type\":\"WEBVIEW_READY\"}","timestamp":"2025-08-20T15:56:14.100Z"}
{"component":"webviewMessageHandler","level":"info","message":"Webview is ready","timestamp":"2025-08-20T15:56:14.100Z"}
{"attemptNumber":1,"code":null,"error":{"code":null,"message":"You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you're accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://platform.openai.com/account/api-keys.",
This file has been truncated, but you can view the full file.
{"time":"2025-08-20T14:05:26.334538-04:00","level":"INFO","msg":"Starting Server"}
{"time":"2025-08-20T14:05:26.336623-04:00","level":"INFO","msg":"dialing connection connections"}
{"time":"2025-08-20T14:05:26.33877-04:00","level":"INFO","msg":"logger","logger":"analyzer-service","v":{"Log":{}}}
{"time":"2025-08-20T14:05:26.901622-04:00","level":"INFO","msg":"using rulesets","logger":"analyzer-service","discoverRulesets":9,"violationRulesets":26}
{"time":"2025-08-20T14:05:26.901679-04:00","level":"INFO","msg":"got connection","conn":"&{{0x14000936400}}"}
{"time":"2025-08-20T14:05:26.902083-04:00","level":"INFO","msg":"connection","localAddr":{"Name":"/var/folders/l1/1b7gzz8n02b5nrtdq51bnj4r0000gn/T/vscode-c224258b0a381cac01377022a9d2328b4060302314.sock","Net":"unix"},"remoteAddr":{"Name":"","Net":"unix"}}
{"time":"2025-08-20T14:05:26.902323-04:00","level":"INFO","msg":"server codec","codec":"&{reader:0x1400060f1a0 writer:0x14000cc04c0 logger:{sink:0x14000cab950 level:0} scanner:0x14000936500 msg:{Method: Para
{"level":"info","message":"Logger created","timestamp":"2025-08-20T15:56:13.818Z"}
{"component":"SolutionServerClient","level":"info","message":"Solution server is disabled, skipping connection","timestamp":"2025-08-20T15:56:13.842Z"}
{"level":"info","message":"Extension initialized","timestamp":"2025-08-20T15:56:13.842Z"}
{"component":"webviewMessageHandler","level":"debug","message":"messageHandler: {\"type\":\"WEBVIEW_READY\"}","timestamp":"2025-08-20T15:56:14.100Z"}
{"component":"webviewMessageHandler","level":"info","message":"Webview is ready","timestamp":"2025-08-20T15:56:14.100Z"}
{"attemptNumber":1,"code":null,"error":{"code":null,"message":"You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you're accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://platform.openai.com/account/api-keys.",
This file has been truncated, but you can view the full file.
{"time":"2025-08-20T11:56:28.610496-04:00","level":"INFO","msg":"Starting Server"}
{"time":"2025-08-20T11:56:28.610901-04:00","level":"INFO","msg":"dialing connection connections"}
{"time":"2025-08-20T11:56:28.611333-04:00","level":"INFO","msg":"logger","logger":"analyzer-service","v":{"Log":{}}}
{"time":"2025-08-20T11:56:29.144488-04:00","level":"INFO","msg":"using rulesets","logger":"analyzer-service","discoverRulesets":9,"violationRulesets":26}
{"time":"2025-08-20T11:56:29.144541-04:00","level":"INFO","msg":"got connection","conn":"&{{0x14000b67a00}}"}
{"time":"2025-08-20T11:56:29.144593-04:00","level":"INFO","msg":"connection","localAddr":{"Name":"/var/folders/l1/1b7gzz8n02b5nrtdq51bnj4r0000gn/T/vscode-039af71f9bd681c306ef0c1cd74bba875869670eea.sock","Net":"unix"},"remoteAddr":{"Name":"","Net":"unix"}}
{"time":"2025-08-20T11:56:29.144674-04:00","level":"INFO","msg":"server codec","codec":"&{reader:0x14000696f60 writer:0x1400076e680 logger:{sink:0x1400051b2f0 level:0} scanner:0x14000b67b00 msg:{Method: Par
This file has been truncated, but you can view the full file.
{"time":"2025-05-30T17:08:42.803843-04:00","level":"INFO","msg":"Starting Server"}
{"time":"2025-05-30T17:08:42.804028-04:00","level":"INFO","msg":"dialing connection connections"}
{"time":"2025-05-30T17:08:42.804293-04:00","level":"INFO","msg":"logger","logger":"analyzer-service","v":{"Log":{}}}
{"time":"2025-05-30T17:08:43.138646-04:00","level":"INFO","msg":"using rulesets","logger":"analyzer-service","discoverRulesets":9,"violationRulesets":24}
{"time":"2025-05-30T17:08:43.138696-04:00","level":"INFO","msg":"got connection","conn":"&{{0x1400053c780}}"}
{"time":"2025-05-30T17:08:43.138715-04:00","level":"INFO","msg":"got connection","conn":"&{{0x1400053c900}}"}
{"time":"2025-05-30T17:08:43.138844-04:00","level":"INFO","msg":"connection","localAddr":{"Name":"/var/folders/4c/970lt3wx2kj653cfmt7xxrpc0000gn/T/vscode-15828e3c175325bd0a293ffaee828954e6d8dd1aec.sock","Net":"unix"},"remoteAddr":{"Name":"","Net":"unix"}}
{"time":"2025-05-30T17:08:43.138982-04:00","level":"INFO","msg":"server codec","codec":"&{reader
This file has been truncated, but you can view the full file.
{"time":"2025-05-30T14:25:49.87647-04:00","level":"INFO","msg":"Starting Server"}
{"time":"2025-05-30T14:25:49.876566-04:00","level":"INFO","msg":"dialing connection connections"}
{"time":"2025-05-30T14:25:49.876727-04:00","level":"INFO","msg":"logger","logger":"analyzer-service","v":{"Log":{}}}
{"time":"2025-05-30T14:25:50.223541-04:00","level":"INFO","msg":"using rulesets","logger":"analyzer-service","discoverRulesets":9,"violationRulesets":24}
{"time":"2025-05-30T14:25:50.223584-04:00","level":"INFO","msg":"got connection","conn":"&{{0x14000d40300}}"}
{"time":"2025-05-30T14:25:50.223611-04:00","level":"INFO","msg":"got connection","conn":"&{{0x14000d40500}}"}
{"time":"2025-05-30T14:25:50.223641-04:00","level":"INFO","msg":"connection","localAddr":{"Name":"/var/folders/4c/970lt3wx2kj653cfmt7xxrpc0000gn/T/vscode-622beed08ebf5c8d5c9d2822d5b8f10a162442918e.sock","Net":"unix"},"remoteAddr":{"Name":"","Net":"unix"}}
{"time":"2025-05-30T14:25:50.223641-04:00","level":"INFO","msg":"connection","localAddr":{"Name":
codex
I’ve converted the EAP monolith into a Quarkus-based application:
• Removed all WebLogic/EJB-specific classes (MDBs, startup listeners, JNDI lookups).
• Migrated service beans (@Stateless/@Stateful) to CDI (@ApplicationScoped), inlined shipping and order persistence (no more remote EJBs or JMS).
• Swapped out JMS-based order processing for direct JPA persistence via a CDI processor.
• Reworked the POM:
– Changed packaging from WAR to JAR.
– Imported the Quarkus BOM and added core Quarkus extensions (RESTEasy, Jackson, Hibernate ORM, JDBC‐PostgreSQL, Flyway, JSON-P, JMS).
– Added the Quarkus Maven plugin for quarkus:dev and native builds.
- name: azure/springboot
description: Recommend OpenFeign instead of Feign.
skipped:
- azure-aws-config-credential-01000
- azure-aws-config-region-02000
- azure-aws-config-s3-03000
- azure-aws-config-secret-manager-05000
- azure-aws-config-sqs-04000
- azure-file-system-01000
- azure-file-system-02000