openvsx
openvsx copied to clipboard
Sign extension on my self hosted openvsx marketplace
Hello,
I am trying to use OpenVsx as self hosted marketplace for my enterprise extension. I have deployed the openvsx server and webui images on kubernetes and it works well, with enterprise SSO and certificate.
When I try to use my marketplace in vscodium I have isue with extension not being signed by the marketplace
When connecting to the public openvsx marketplace the signature is working fine.
How should I set up my private signature between my self hosted openvsx server and vscodium ?
I tryed to add those line on application.yml but it does not seems to change anything :
ovsx: integrity: key-pair: renew
@RichardSGFR Do you have mirror mode enabled (ovsx.data.mirror.enabled)?
Is the JobRunr background server running?
org:
jobrunr:
job-scheduler:
enabled: true
background-job-server:
enabled: true
worker-count: 2
Hello @amvanbaren ,
No the mirror mode is disabled, for the moment my deployment can't have access to internet. It has only access to internal network. Maybe in the future we will open it to have the mirror mode but not for the moment (it demands a lot of security concerns in my organisation).
I use openvsx-server image v0.23.1, and openvsx-webui v0.23.1.
Concerning the JobRunR it is enable. Here is my application.yml for further analysis :
logging:
level:
root: INFO
org:
springframework: INFO
eclipse.openvsx: DEBUG
springframework.security: INFO
springframework.security.oauth2: INFO
springframework.web: INFO
springframework.session.web.http.SessionRepositoryFilter.SESSION_LOGGER: INFO
server:
address: 0.0.0.0
port: 8080
shutdown: graceful
use-forward-headers: true
forward-headers-strategy: native
tomcat:
remote-ip-header: X-Forwarded-For
protocol-header: X-Forwarded-Proto
compression:
enabled: true
mime-types: text/html,text/plain,text/css,application/javascript,application/json,text/xml,application/xml,application/xml+rss,text/javascript
min-response-size: 1024
servlet:
session:
cookie:
same-site: none
secure: true
domain: mydomain.com
ssl:
enabled: true
certificate-private-key: /etc/ssl/certs/tls.key
certificate: /etc/ssl/certs/tls.crt
trustore: /app/keystores/truststore.p12
trustore-password: ${TRUSTORE_PASSWORD}
spring:
web:
cors:
allowed-origins: https://myoauth2.provider
allowed-methods: GET,POST
allowed-headers: Authorization,Content-Type
allow-credentials: true
datasource:
url: "jdbc:postgresql://mypgdb:port/openvsx"
username: ${PG_USER}
password: ${PG_PASSWORD}
cache:
jcache:
config: classpath:ehcache.xml
flyway:
baseline-on-migrate: true
baseline-version: 0.1.0
baseline-description: JobRunr tables
jpa:
open-in-view: false
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
hibernate:
ddl-auto: none
session:
cookie:
same-site: none
domain: mydomain.com
http-only: true
secure: true
max-age: 3600
timeout: 3600
store-type: jdbc
jdbc:
initialize-schema: never
profiles:
include: ovsx
security:
oauth2:
client:
registration:
mycustomauth:
client-id: ${CLIENT_mycustomauth}
client-secret: ${SECRET_mycustomauth}
redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
authorization-grant-type: authorization_code
scope:
- openid
- profile
provider:
mycustomauth:
authorization-uri: https://myoauth2.provider/oauth2/authorize
token-uri: https://myoauth2.provider/oauth2/token
user-info-uri: https://myoauth2.provider/oauth2/userinfo
jwk-set-uri: https://myoauth2.provider/oauth2/jwks.json
user-name-attribute: name
bucket4j:
enabled: true
filters:
- cache-name: buckets
url: '/api/-/(namespace/create|publish)'
http-response-headers:
Access-Control-Allow-Origin: '*'
Access-Control-Expose-Headers: X-Rate-Limit-Retry-After-Seconds, kubeX-Rate-Limit-Remaining
rate-limits:
- cache-key: getParameter("token")
bandwidths:
- capacity: 15
time: 1
unit: seconds
- cache-name: buckets
url: '/vscode/asset/.*/.*/.*/Microsoft.VisualStudio.Services.Icons.Default'
http-response-headers:
Access-Control-Allow-Origin: '*'
Access-Control-Expose-Headers: X-Rate-Limit-Retry-After-Seconds, X-Rate-Limit-Remaining
rate-limits:
- cache-key: getRemoteAddr()
bandwidths:
- capacity: 75
time: 1
unit: seconds
- cache-name: buckets
url: '/vscode/(?!asset/.*/.*/.*/Microsoft.VisualStudio.Services.Icons.Default).*|/api/(?!(.*/.*/review(/delete)?)|(-/(namespace/create|publish))).*'
http-response-headers:
Access-Control-Allow-Origin: '*'
Access-Control-Expose-Headers: X-Rate-Limit-Retry-After-Seconds, X-Rate-Limit-Remaining
rate-limits:
- cache-key: getRemoteAddr()
bandwidths:
- capacity: 15
time: 1
unit: seconds
management:
tracing:
enabled: false
zipkin:
tracing:
enabled: false
springdoc:
swagger-ui:
docExpansion: list
operationsSorter: alpha
supportedSubmitMethods:
- get
org:
jobrunr:
job-scheduler:
enabled: true
background-job-server:
enabled: true
worker-count: 2
dashboard:
enabled: false
database:
type: sql
miscellaneous:
allow-anonymous-data-usage: false
ovsx:
registry:
version: 0.23.1
webui:
frontendRoutes: "/extension/**,/namespace/**,/user-settings/**,/admin-dashboard/**"
elasticsearch:
enabled: false
databasesearch:
enabled: true
storage:
local:
directory: /app/storage
extension-control:
enabled: false
integrity:
key-pair: renew
oauth2:
provider: mycustomauth
attribute-names:
mycustomauth:
avatar-url: avatar_url
email: email
full-name: name
login-name: sub
provider-url: ''
Ok, then it should work. You should see INFO log messages starting with: Generating signature for:
Hello,
I see that a job has run this night and now most of the extension are correctly signed.
2025-03-26T03:00:03.445Z DEBUG 1 --- [ool-12-thread-2] o.e.o.adapter.VSCodeIdUpdateService : DAILY UPDATE ALL 2025-03-26T03:00:03.471Z DEBUG 1 --- [ool-12-thread-2] o.e.o.adapter.VSCodeIdUpdateService : UPSTREAM EXTENSIONS: 17 2025-03-26T03:00:03.471Z DEBUG 1 --- [ool-12-thread-2] o.e.o.adapter.VSCodeIdUpdateService : CHANGED EXTENSIONS: 0 2025-03-26T03:00:03.471Z DEBUG 1 --- [ool-12-thread-2] o.e.o.adapter.VSCodeIdUpdateService : UPSTREAM NAMESPACES: 7 2025-03-26T03:00:03.471Z DEBUG 1 --- [ool-12-thread-2] o.e.o.adapter.VSCodeIdUpdateService : CHANGED NAMESPACES: 0
But I still have two extensions (the bigger ones) that are not correctly signed. I see no error in the openvsx server log. What log level should I change to have more info about what is happening ?
The logs you've included are something different.
You should look for ExtensionVersionSignatureJobRequestHandler, the log level is INFO
There is no mention to ExtensionVersionSignatureJobRequestHandler in my logs.
Even after settings jobrunr log to trace i don't have any trace of ExtensionVersionSignatureJobRequestHandler
Here is my logs :
JVM_ARGS: ''
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.2.4)
2025-03-26T13:37:04.610Z INFO 1 --- [ main] o.eclipse.openvsx.RegistryApplication : Starting RegistryApplication using Java 17.0.7 with PID 1 (/home/openvsx/server/BOOT-INF/classes started by openvsx in /home/openvsx/server)
2025-03-26T13:37:04.613Z DEBUG 1 --- [ main] o.eclipse.openvsx.RegistryApplication : Running with Spring Boot v3.2.4, Spring v6.1.5
2025-03-26T13:37:04.614Z INFO 1 --- [ main] o.eclipse.openvsx.RegistryApplication : The following 1 profile is active: "ovsx"
2025-03-26T13:37:07.611Z INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2025-03-26T13:37:07.613Z INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Elasticsearch repositories in DEFAULT mode.
2025-03-26T13:37:07.711Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.AdminStatisticsRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.712Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.AzureDownloadCountProcessedItemRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.713Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.ExtensionRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.713Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.ExtensionReviewRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.715Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.ExtensionVersionRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.716Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.FileResourceRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.716Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.MigrationItemRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.717Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.NamespaceMembershipRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.718Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.NamespaceRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.719Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.PersistedLogRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.719Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.PersonalAccessTokenRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.720Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.SignatureKeyPairRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.721Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.UserDataRepository; If you want this repository to be a Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ElasticsearchRepository, org.springframework.data.elasticsearch.repository.ElasticsearchRepository
2025-03-26T13:37:07.722Z INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 104 ms. Found 0 Elasticsearch repository interfaces.
2025-03-26T13:37:07.728Z INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2025-03-26T13:37:07.728Z INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Reactive Elasticsearch repositories in DEFAULT mode.
2025-03-26T13:37:07.746Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.AdminStatisticsRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.747Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.AzureDownloadCountProcessedItemRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.747Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.ExtensionRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.747Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.ExtensionReviewRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.747Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.ExtensionVersionRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.748Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.FileResourceRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.748Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.MigrationItemRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.748Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.NamespaceMembershipRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.748Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.NamespaceRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.748Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.PersistedLogRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.748Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.PersonalAccessTokenRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.749Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.SignatureKeyPairRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.749Z INFO 1 --- [ main] .RepositoryConfigurationExtensionSupport : Spring Data Reactive Elasticsearch - Could not safely identify store assignment for repository candidate interface org.eclipse.openvsx.repositories.UserDataRepository; If you want this repository to be a Reactive Elasticsearch repository, consider annotating your entities with one of these annotations: org.springframework.data.elasticsearch.annotations.Document (preferred), or consider extending one of the following types with your repository: org.springframework.data.elasticsearch.repository.ReactiveElasticsearchRepository
2025-03-26T13:37:07.749Z INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 20 ms. Found 0 Reactive Elasticsearch repository interfaces.
2025-03-26T13:37:07.775Z INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
2025-03-26T13:37:07.777Z INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2025-03-26T13:37:07.947Z INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 166 ms. Found 13 JPA repository interfaces.
2025-03-26T13:37:10.363Z INFO 1 --- [ main] org.ehcache.core.EhcacheManager : Cache 'database.search' created in EhcacheManager.
2025-03-26T13:37:10.413Z INFO 1 --- [ main] .e.s.o.t.o.p.UpfrontAllocatingPageSource : Allocating 2MB in chunks
2025-03-26T13:37:10.453Z INFO 1 --- [ main] org.ehcache.core.EhcacheManager : Cache 'malicious.extensions' created in EhcacheManager.
2025-03-26T13:37:10.460Z INFO 1 --- [ main] .e.s.o.t.o.p.UpfrontAllocatingPageSource : Allocating 32MB in chunks
2025-03-26T13:37:10.478Z INFO 1 --- [ main] org.ehcache.core.EhcacheManager : Cache 'latest.extension.version' created in EhcacheManager.
2025-03-26T13:37:10.481Z INFO 1 --- [ main] org.ehcache.core.EhcacheManager : Cache 'files.extension' created in EhcacheManager.
2025-03-26T13:37:10.487Z INFO 1 --- [ main] .e.s.o.t.o.p.UpfrontAllocatingPageSource : Allocating 32MB in chunks
2025-03-26T13:37:10.494Z INFO 1 --- [ main] org.ehcache.core.EhcacheManager : Cache 'buckets' created in EhcacheManager.
2025-03-26T13:37:10.495Z INFO 1 --- [ main] org.ehcache.core.EhcacheManager : Cache 'files.webresource' created in EhcacheManager.
2025-03-26T13:37:10.500Z INFO 1 --- [ main] .e.s.o.t.o.p.UpfrontAllocatingPageSource : Allocating 1MB in chunks
2025-03-26T13:37:10.504Z INFO 1 --- [ main] org.ehcache.core.EhcacheManager : Cache 'average.review.rating' created in EhcacheManager.
2025-03-26T13:37:10.508Z INFO 1 --- [ main] .e.s.o.t.o.p.UpfrontAllocatingPageSource : Allocating 32MB in chunks
2025-03-26T13:37:10.515Z INFO 1 --- [ main] org.ehcache.core.EhcacheManager : Cache 'extension.json' created in EhcacheManager.
2025-03-26T13:37:10.518Z INFO 1 --- [ main] .e.s.o.t.o.p.UpfrontAllocatingPageSource : Allocating 2MB in chunks
2025-03-26T13:37:10.543Z INFO 1 --- [ main] org.ehcache.core.EhcacheManager : Cache 'sitemap' created in EhcacheManager.
2025-03-26T13:37:10.547Z INFO 1 --- [ main] .e.s.o.t.o.p.UpfrontAllocatingPageSource : Allocating 32MB in chunks
2025-03-26T13:37:10.554Z INFO 1 --- [ main] org.ehcache.core.EhcacheManager : Cache 'namespace.details.json' created in EhcacheManager.
2025-03-26T13:37:10.679Z INFO 1 --- [ main] org.ehcache.jsr107.Eh107CacheManager : Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./home/openvsx/server/BOOT-INF/classes/ehcache.xml,Cache=database.search
2025-03-26T13:37:10.681Z INFO 1 --- [ main] org.ehcache.jsr107.Eh107CacheManager : Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./home/openvsx/server/BOOT-INF/classes/ehcache.xml,Cache=malicious.extensions
2025-03-26T13:37:10.682Z INFO 1 --- [ main] org.ehcache.jsr107.Eh107CacheManager : Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./home/openvsx/server/BOOT-INF/classes/ehcache.xml,Cache=latest.extension.version
2025-03-26T13:37:10.682Z INFO 1 --- [ main] org.ehcache.jsr107.Eh107CacheManager : Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./home/openvsx/server/BOOT-INF/classes/ehcache.xml,Cache=files.extension
2025-03-26T13:37:10.682Z INFO 1 --- [ main] org.ehcache.jsr107.Eh107CacheManager : Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./home/openvsx/server/BOOT-INF/classes/ehcache.xml,Cache=buckets
2025-03-26T13:37:10.683Z INFO 1 --- [ main] org.ehcache.jsr107.Eh107CacheManager : Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./home/openvsx/server/BOOT-INF/classes/ehcache.xml,Cache=files.webresource
2025-03-26T13:37:10.683Z INFO 1 --- [ main] org.ehcache.jsr107.Eh107CacheManager : Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./home/openvsx/server/BOOT-INF/classes/ehcache.xml,Cache=average.review.rating
2025-03-26T13:37:10.684Z INFO 1 --- [ main] org.ehcache.jsr107.Eh107CacheManager : Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./home/openvsx/server/BOOT-INF/classes/ehcache.xml,Cache=extension.json
2025-03-26T13:37:10.684Z INFO 1 --- [ main] org.ehcache.jsr107.Eh107CacheManager : Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./home/openvsx/server/BOOT-INF/classes/ehcache.xml,Cache=sitemap
2025-03-26T13:37:10.684Z INFO 1 --- [ main] org.ehcache.jsr107.Eh107CacheManager : Registering Ehcache MBean javax.cache:type=CacheStatistics,CacheManager=file./home/openvsx/server/BOOT-INF/classes/ehcache.xml,Cache=namespace.details.json
2025-03-26T13:37:10.949Z INFO 1 --- [ main] s.Bucket4JAutoConfigurationServletFilter : create-servlet-filter;1;buckets;/api/-/(namespace/create|publish)
2025-03-26T13:37:10.950Z INFO 1 --- [ main] s.Bucket4JAutoConfigurationServletFilter : create-servlet-filter;2;buckets;/vscode/asset/.*/.*/.*/Microsoft.VisualStudio.Services.Icons.Default
2025-03-26T13:37:10.950Z INFO 1 --- [ main] s.Bucket4JAutoConfigurationServletFilter : create-servlet-filter;3;buckets;/vscode/(?!asset/.*/.*/.*/Microsoft.VisualStudio.Services.Icons.Default).*|/api/(?!(.*/.*/review(/delete)?)|(-/(namespace/create|publish))).*
2025-03-26T13:37:11.411Z INFO 1 --- [ main] o.s.b.w.e.j.JettyServletWebServerFactory : Server initialized with port: 8080
2025-03-26T13:37:11.685Z INFO 1 --- [ main] org.eclipse.jetty.server.Server : jetty-12.0.7; built: 2024-02-29T21:19:41.771Z; git: c89aca8fd34083befd79f328a3b8b6ffff04347e; jvm 17.0.7+7
2025-03-26T13:37:11.718Z INFO 1 --- [ main] o.e.j.s.h.ContextHandler.application : Initializing Spring embedded WebApplicationContext
2025-03-26T13:37:11.719Z INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 6913 ms
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
2025-03-26T13:37:12.436Z INFO 1 --- [ main] o.e.j.session.DefaultSessionIdManager : Session workerName=node0
2025-03-26T13:37:12.441Z INFO 1 --- [ main] o.e.jetty.server.handler.ContextHandler : Started osbwej.JettyEmbeddedWebAppContext@1c8da7e8{application,/,b=[file:/tmp/jetty-docbase.8080.2491959363330535717/, jar:file:///home/openvsx/server/BOOT-INF/lib/swagger-ui-4.18.2.jar!/META-INF/resources/],a=AVAILABLE,h=oeje10s.SessionHandler@6c79a7c1{STARTED}}
2025-03-26T13:37:12.442Z INFO 1 --- [ main] o.e.j.e.servlet.ServletContextHandler : Started osbwej.JettyEmbeddedWebAppContext@1c8da7e8{application,/,b=[file:/tmp/jetty-docbase.8080.2491959363330535717/, jar:file:///home/openvsx/server/BOOT-INF/lib/swagger-ui-4.18.2.jar!/META-INF/resources/],a=AVAILABLE,h=oeje10s.SessionHandler@6c79a7c1{STARTED}}
2025-03-26T13:37:12.443Z INFO 1 --- [ main] org.eclipse.jetty.server.Server : Started oejs.Server@1299fed3{STARTING}[12.0.7,sto=0] @9498ms
2025-03-26T13:37:12.652Z INFO 1 --- [ main] o.f.c.internal.license.VersionPrinter : Flyway Community Edition 9.19.1 by Redgate
2025-03-26T13:37:12.652Z INFO 1 --- [ main] o.f.c.internal.license.VersionPrinter : See release notes here: https://rd.gt/416ObMi
2025-03-26T13:37:12.652Z INFO 1 --- [ main] o.f.c.internal.license.VersionPrinter :
2025-03-26T13:37:12.671Z INFO 1 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2025-03-26T13:37:13.045Z INFO 1 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@4b93a232
2025-03-26T13:37:13.048Z INFO 1 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2025-03-26T13:37:13.083Z INFO 1 --- [ main] o.f.c.i.database.base.BaseDatabaseType : Database: anonymised
2025-03-26T13:37:13.175Z INFO 1 --- [ main] o.f.core.internal.command.DbValidate : Successfully validated 54 migrations (execution time 00:00.064s)
2025-03-26T13:37:13.306Z INFO 1 --- [ main] o.f.core.internal.command.DbMigrate : Current version of schema "public": 1.52
2025-03-26T13:37:13.308Z INFO 1 --- [ main] o.f.core.internal.command.DbMigrate : Schema "public" is up to date. No migration necessary.
2025-03-26T13:37:13.511Z INFO 1 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default]
2025-03-26T13:37:13.604Z INFO 1 --- [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.2.2.Final
2025-03-26T13:37:13.606Z INFO 1 --- [ main] org.hibernate.cfg.Environment : HHH000406: Using bytecode reflection optimizer
2025-03-26T13:37:13.775Z INFO 1 --- [ main] o.h.b.i.BytecodeProviderInitiator : HHH000021: Bytecode provider name : bytebuddy
2025-03-26T13:37:13.906Z INFO 1 --- [ main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer
2025-03-26T13:37:13.953Z INFO 1 --- [ main] org.hibernate.orm.dialect : HHH035001: Using dialect: org.hibernate.dialect.PostgreSQLDialect, version: org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$DialectResolutionInfoImpl@51ce8293
2025-03-26T13:37:14.447Z INFO 1 --- [ main] o.h.b.i.BytecodeProviderInitiator : HHH000021: Bytecode provider name : bytebuddy
2025-03-26T13:37:15.416Z INFO 1 --- [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2025-03-26T13:37:15.419Z INFO 1 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2025-03-26T13:37:16.023Z INFO 1 --- [ main] o.s.d.j.r.query.QueryEnhancerFactory : Hibernate is in classpath; If applicable, HQL parser will be used.
ANTLR Tool version 4.10.1 used for code generation does not match the current runtime version 4.13.0
ANTLR Runtime version 4.10.1 used for parser compilation does not match the current runtime version 4.13.0
ANTLR Tool version 4.10.1 used for code generation does not match the current runtime version 4.13.0
ANTLR Runtime version 4.10.1 used for parser compilation does not match the current runtime version 4.13.0
2025-03-26T13:37:21.457Z INFO 1 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint(s) beneath base path '/actuator'
2025-03-26T13:37:21.662Z INFO 1 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@645494c5, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5fc9593d, org.springframework.security.web.context.SecurityContextHolderFilter@1acfebc4, org.springframework.security.web.header.HeaderWriterFilter@3131b41, org.springframework.web.filter.CorsFilter@672c8149, org.springframework.web.filter.CorsFilter@418068a7, org.springframework.security.web.csrf.CsrfFilter@1ee3ad6, org.springframework.security.web.authentication.logout.LogoutFilter@2b37a0dd, org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter@a3b417, org.springframework.security.oauth2.client.web.OAuth2LoginAuthenticationFilter@72e48a21, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@7d24645, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@703bd69c, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1b23eee, org.springframework.security.web.access.ExceptionTranslationFilter@5573267, org.springframework.security.web.access.intercept.AuthorizationFilter@5eff0651]
2025-03-26T13:37:22.077Z INFO 1 --- [ main] .j.s.t.PlatformThreadPoolJobRunrExecutor : ThreadManager of type 'ScheduledThreadPool' started
2025-03-26T13:37:22.102Z INFO 1 --- [ool-11-thread-1] org.jobrunr.server.BackgroundJobServer : JobRunr BackgroundJobServer (a3cf79a2-e907-4cf1-8378-62c6aaf5447c) using PostgresStorageProvider and 2 BackgroundJobPerformers started successfully
2025-03-26T13:37:22.129Z INFO 1 --- [ool-11-thread-1] org.jobrunr.server.ServerZooKeeper : Server a3cf79a2-e907-4cf1-8378-62c6aaf5447c is master (this BackgroundJobServer)
2025-03-26T13:37:23.057Z DEBUG 1 --- [ main] o.e.openvsx.web.ShallowEtagHeaderFilter : Filter 'shallowEtagHeaderFilter' configured for use
2025-03-26T13:37:23.060Z INFO 1 --- [ main] o.e.j.s.h.ContextHandler.application : Initializing Spring DispatcherServlet 'dispatcherServlet'
2025-03-26T13:37:23.060Z INFO 1 --- [ main] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2025-03-26T13:37:23.062Z INFO 1 --- [ main] o.s.web.servlet.DispatcherServlet : Completed initialization in 2 ms
2025-03-26T13:37:23.077Z INFO 1 --- [ main] o.e.jetty.util.ssl.SslContextFactory : x509=X509@d5632b7(ssl,h=[anonymised, openvsx],a=[],w=[]) for Server@309876a8[provider=null,keyStore=null,trustStore=null]
2025-03-26T13:37:23.093Z INFO 1 --- [ main] o.e.jetty.server.AbstractConnector : Started SslValidatingServerConnector@3cb6bb8b{SSL, (ssl, http/1.1)}{0.0.0.0:8080}
2025-03-26T13:37:23.094Z INFO 1 --- [ main] o.s.b.web.embedded.jetty.JettyWebServer : Jetty started on port 8080 (ssl, http/1.1) with context path '/'
2025-03-26T13:37:23.124Z INFO 1 --- [ main] o.eclipse.openvsx.RegistryApplication : Started RegistryApplication in 19.447 seconds (process running for 20.18)
2025-03-26T13:37:23.203Z INFO 1 --- [ main] o.j.scheduling.AbstractJobScheduler : Skipped Job with id 3df3f96a-e083-3e31-b374-84216e0931d7 as it already exists
2025-03-26T13:40:18.389Z INFO 1 --- [qtp992521115-25] org.jooq.Constants :
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@ @@ @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@
@@@@@@@@@@@@@@@@ @@ @@ @@@@@@@@@@
@@@@@@@@@@ @@@@ @@ @@ @@@@@@@@@@
@@@@@@@@@@ @@ @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@ @@ @@@@@@@@@@
@@@@@@@@@@ @@ @@ @@@@ @@@@@@@@@@
@@@@@@@@@@ @@ @@ @@@@ @@@@@@@@@@
@@@@@@@@@@ @@ @ @ @@@@@@@@@@
@@@@@@@@@@ @@ @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Thank you for using jOOQ 3.18.13 (Build date: 2024-03-08T10:59:42Z)
2025-03-26T13:40:18.391Z INFO 1 --- [qtp992521115-25] org.jooq.Constants :
jOOQ tip of the day: When creating dynamic SQL Conditions, the DSL.trueCondition(), DSL.falseCondition(), DSL.noCondition(): https://blog.jooq.org/create-empty-optional-sql-clauses-with-jooq/
2025-03-26T13:40:18.452Z INFO 1 --- [qtp992521115-25] o.j.i.D.logVersionSupport : Version : Database version is supported by dialect POSTGRES: 15.11
2025-03-26T13:47:32.393Z WARN 1 --- [ task-8] org.eclipse.jetty.util.Blocker : Blocking.Shared incomplete
2025-03-26T13:47:32.398Z WARN 1 --- [qtp992521115-29] .w.s.m.s.DefaultHandlerExceptionResolver : Ignoring exception, response committed already: org.springframework.web.context.request.async.AsyncRequestTimeoutException
2025-03-26T13:47:32.398Z WARN 1 --- [qtp992521115-29] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.context.request.async.AsyncRequestTimeoutException]
2025-03-26T13:48:11.668Z WARN 1 --- [ task-4] org.eclipse.jetty.util.Blocker : Blocking.Shared incomplete
2025-03-26T13:48:11.670Z WARN 1 --- [qtp992521115-26] .w.s.m.s.DefaultHandlerExceptionResolver : Ignoring exception, response committed already: org.springframework.web.context.request.async.AsyncRequestTimeoutException
2025-03-26T13:48:11.670Z WARN 1 --- [qtp992521115-26] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.context.request.async.AsyncRequestTimeoutException]
2025-03-26T13:48:54.137Z WARN 1 --- [ task-9] org.eclipse.jetty.util.Blocker : Blocking.Shared incomplete
2025-03-26T13:48:54.141Z WARN 1 --- [qtp992521115-29] .w.s.m.s.DefaultHandlerExceptionResolver : Ignoring exception, response committed already: org.springframework.web.context.request.async.AsyncRequestTimeoutException
2025-03-26T13:48:54.141Z WARN 1 --- [qtp992521115-29] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.context.request.async.AsyncRequestTimeoutException]
What happens when you set ovsx.integrity.key-pair to create or delete?
Hello, when set to create or delete, I see nothing more on the logs with level INFO. But, when set to delete, I then see all my extension as unsigned by the marketplace in vscodium.
Then I restart the openvsx server with create, still nothing in the log. But then I go back to the previous step where most of the extension are recognised as signed but two of them are not. Looks like there is an issue with the signin for those two extension but can't find a way to log this service.
Hi,
I'm in the exact same situation. I set ovsx.integrity.key-pair to create, and after re-publishing, most of the extensions appear as signed, but I still see the following error for a few extensions in the backend logs:
Integrity service is enabled, but extension-name did not have an active key pair
I'm wondering if you managed to solve this? My current assumption is that maybe something residual persisted from a previous state (possibly in storage or cache even though I dropped the database and recreated it) and those specific extensions weren't re-signed correctly, but I'm still investigating.
Please let me know if you found a solution. Thanks!
Hi,
I'm in the exact same situation. I set ovsx.integrity.key-pair to create, and after re-publishing, most of the extensions appear as signed, but I still see the following error for a few extensions in the backend logs:
Integrity service is enabled, but extension-name did not have an active key pair
I'm wondering if you managed to solve this? My current assumption is that maybe something residual persisted from a previous state (possibly in storage or cache even though I dropped the database and recreated it) and those specific extensions weren't re-signed correctly, but I'm still investigating.
Please let me know if you found a solution. Thanks!
Hi, unfortunatelly no. I stopped working on this subject for the moment, sorry
I have a similar setup and this helped me fixing my problem. I just set the key-pair to create and it all worked fine. I do not have all the extensions though. Could it be related to specific publishers?
I solved my problem using the suggestions from the issue I opened here https://github.com/eclipse/openvsx/issues/1251 I think the start for solving this (if still a problem) should be dropping the jobrunr tables and restarting the server, so that the signing jobs are re-triggered.
I added ovsx.migrations.once-per-version in v0.27.0, so that migrations (including extension signing jobs) run on each restart instead of once for each version. This should fix this issue. Please reopen if it still doesn't work.