Add well-known endpoint for Quay

Fixes #1790
This commit is contained in:
Joseph Schorr 2016-09-12 17:33:08 -04:00
parent 640925e47c
commit 2fb43196c6
2 changed files with 33 additions and 0 deletions

31
endpoints/wellknown.py Normal file
View file

@ -0,0 +1,31 @@
import json
import logging
from app import get_app_url
from flask import Blueprint, make_response
logger = logging.getLogger(__name__)
wellknown = Blueprint('wellknown', __name__)
@wellknown.route('/app-capabilities', methods=['GET'])
def app_capabilities():
view_image_tmpl = '%s/{namespace}/{reponame}:{tag}' % get_app_url()
image_security_tmpl = ('%s/api/v1/repository/{namespace}/{reponame}/image/{imageid}/security' %
get_app_url())
metadata = {
'appName': 'io.quay',
'capabilities': {
'io.quay.view-image': {
'url-template': view_image_tmpl,
},
'io.quay.image-security': {
'rest-api-template': image_security_tmpl,
},
},
}
resp = make_response(json.dumps(metadata))
resp.headers['Content-Type'] = 'application/json'
return resp

2
web.py
View file

@ -12,6 +12,7 @@ from endpoints.oauthlogin import oauthlogin
from endpoints.realtime import realtime from endpoints.realtime import realtime
from endpoints.web import web from endpoints.web import web
from endpoints.webhooks import webhooks from endpoints.webhooks import webhooks
from endpoints.wellknown import wellknown
if os.environ.get('DEBUGLOG') == 'true': if os.environ.get('DEBUGLOG') == 'true':
logging.config.fileConfig('conf/logging_debug.conf', disable_existing_loggers=False) logging.config.fileConfig('conf/logging_debug.conf', disable_existing_loggers=False)
@ -25,3 +26,4 @@ application.register_blueprint(api_bp, url_prefix='/api')
application.register_blueprint(webhooks, url_prefix='/webhooks') application.register_blueprint(webhooks, url_prefix='/webhooks')
application.register_blueprint(realtime, url_prefix='/realtime') application.register_blueprint(realtime, url_prefix='/realtime')
application.register_blueprint(key_server, url_prefix='/keys') application.register_blueprint(key_server, url_prefix='/keys')
application.register_blueprint(wellknown, url_prefix='/.well-known')