48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
|
import json
|
||
|
import logging
|
||
|
|
||
|
from app import get_app_url
|
||
|
from auth.decorators import require_session_login
|
||
|
from auth.auth_context import get_authenticated_user
|
||
|
from flask import Blueprint, make_response, redirect
|
||
|
|
||
|
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 = '%s/api/v1/repository/{namespace}/{reponame}/image/{imageid}/security'
|
||
|
image_security_tmpl = image_security % get_app_url()
|
||
|
|
||
|
manifest_security = '%s/api/v1/repository/{namespace}/{reponame}/manifest/{digest}/security'
|
||
|
manifest_security_tmpl = manifest_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,
|
||
|
},
|
||
|
|
||
|
'io.quay.manifest-security': {
|
||
|
'rest-api-template': manifest_security_tmpl,
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
resp = make_response(json.dumps(metadata))
|
||
|
resp.headers['Content-Type'] = 'application/json'
|
||
|
return resp
|
||
|
|
||
|
|
||
|
@wellknown.route('/change-password', methods=['GET'])
|
||
|
@require_session_login
|
||
|
def change_password():
|
||
|
return redirect('/user/%s?tab=settings' % get_authenticated_user().username)
|