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.web import web
from endpoints.webhooks import webhooks
from endpoints.wellknown import wellknown
if os.environ.get('DEBUGLOG') == 'true':
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(realtime, url_prefix='/realtime')
application.register_blueprint(key_server, url_prefix='/keys')
application.register_blueprint(wellknown, url_prefix='/.well-known')