def index_html(hub_id): check_assertion(HubExists(hub_id)) details = fetch_view(DetailHub(hub_id)) return flask.render_template('datasets/index.html.j2', hub_id=hub_id, is_writer=is_current_hub_writer(), **details, **fetch_view(ListDatasets(hub_id)))
def index_html(hub_id, dataset_id): check_assertion(DatasetExists(hub_id, dataset_id)) details = fetch_view(DetailDataset(hub_id, dataset_id)) versions = fetch_view(ListVersions(hub_id, dataset_id)) return flask.render_template('versions/index.html.j2', hub_id=hub_id, dataset_id=dataset_id, is_writer=is_current_hub_writer(), **details, **versions)
def detail_html(hub_id, dataset_id, version): check_assertion(VersionExists(hub_id, dataset_id, version)) dataset_details = fetch_view(DetailDataset(hub_id, dataset_id)) details = fetch_view(DetailVersion(hub_id, dataset_id, version)) return flask.render_template('versions/detail.html.j2', hub_id=hub_id, dataset_id=dataset_id, version_int=version, is_writer=is_current_hub_writer(), **dataset_details, **details)
def new_html(hub_id, dataset_id): error = None if flask.request.method == 'POST': data = flask.request.form columns = [ [ name, data.getlist('column_type[]')[idx], data.getlist('column_description[]')[idx], data.getlist('column_is_nullable[]')[idx] == 'true', data.getlist('column_is_unique[]')[idx] == 'true', data.getlist('column_has_pii[]')[idx] == 'true', ] for (idx, name) in enumerate(data.getlist('column_name[]')) ] depends_on = [ [ hub_id, data.getlist('parent_dataset_id[]')[idx], int(data.getlist('parent_version[]')[idx]), ] for (idx, hub_id) in enumerate(data.getlist('parent_hub_id[]')) ] try: execute_action( NewDatasetVersion(hub_id, dataset_id, data['backend'], data['path'], data.getlist('partition_key[]'), data['description'], bool(data.get('is_overlapping')), columns, depends_on) ) return flask.redirect(flask.url_for('versions.index_html', hub_id=hub_id, dataset_id=dataset_id)) except DbException as e: error = str(e) published = fetch_view(PublishedVersions()) dataset_name = fetch_view(DetailDataset(hub_id, dataset_id))['name'] return flask.render_template('versions/new.html.j2', hub_id=hub_id, dataset_id=dataset_id, backends=Backends, types=Types, error=error, published=published, dataset_name=dataset_name, version={})
def clone_html(hub_id, dataset_id, version): check_assertion(VersionExists(hub_id, dataset_id, version)) details = fetch_view(DetailVersion(hub_id, dataset_id, version)) published = fetch_view(PublishedVersions()) dataset_name = fetch_view(DetailDataset(hub_id, dataset_id))['name'] return flask.render_template('versions/new.html.j2', hub_id=hub_id, dataset_id=dataset_id, backends=Backends, types=Types, published=published, dataset_name=dataset_name, **details)
def list_readable_hubs(): roles = flask_jwt.get_jwt_claims() return { 'hubs': [ hub for hub in fetch_view(ListHubs())['hubs'] if AccessLevel.can_read(roles.get(str(hub['id']), 'none')) ] }
def discover_json(hub_id, dataset_id, version): check_assertion(VersionExists(hub_id, dataset_id, version)) backend_id = fetch_view(SimpleDetailVersion(hub_id, dataset_id, version))['backend_id'] queue_id = enqueue_job(backend_id, 'discover_partitions', { 'hub_id': str(hub_id), 'dataset_id': str(dataset_id), 'version': str(version) }) return flask.jsonify({'queue_id': queue_id})
def discover_html(hub_id, dataset_id, version): check_assertion(VersionExists(hub_id, dataset_id, version)) backend_id = fetch_view(SimpleDetailVersion(hub_id, dataset_id, version))['backend_id'] enqueue_job(backend_id, 'discover_partitions', { 'hub_id': str(hub_id), 'dataset_id': str(dataset_id), 'version': str(version) }) return flask.redirect(flask.url_for('versions.detail_html', hub_id=hub_id, dataset_id=dataset_id, version=version))
def verify_json(hub_id, dataset_id, version): check_assertion(VersionExists(hub_id, dataset_id, version)) execute_action(SetQueuedPartitionStatus(hub_id, dataset_id, version)) backend_id = fetch_view(SimpleDetailVersion(hub_id, dataset_id, version))['backend_id'] queue_id = enqueue_job(backend_id, 'verify_partitions', { 'hub_id': str(hub_id), 'dataset_id': str(dataset_id), 'version': str(version) }) return flask.jsonify({'queue_id': queue_id})
def new_html(): error = None if flask.request.method == 'POST': data = flask.request.form try: execute_action(NewHub(data['team_id'], data['name'])) return flask.redirect(flask.url_for('hubs.index_html')) except DbException as e: error = str(e) teams = fetch_view(ListTeams())['teams'] return flask.render_template('hubs/new.html.j2', teams=teams, error=error)
def new_html(hub_id): error = None if flask.request.method == 'POST': data = flask.request.form try: execute_action(NewDataset(hub_id, data['name'])) return flask.redirect(flask.url_for('datasets.index_html', hub_id=hub_id)) except DbException as e: error = str(e) details = fetch_view(DetailHub(hub_id)) return flask.render_template('datasets/new.html.j2', hub_id=hub_id, error=error, **details)
def login_json(): data = flask.request.json email = data.get('email') password = data.get('password') if not email or not password: return flask.jsonify({}), 401 check_assertion(CorrectPassword(email, password)) details = fetch_view(DetailUser(email)) return flask.jsonify({ 'access_token': flask_jwt.create_access_token(details['user_id'], user_claims=details['roles']) })
def login_html(): error = None if flask.request.method == 'POST': data = flask.request.form try: check_assertion(CorrectPassword(data['email'], data['password'])) details = fetch_view(DetailUser(data['email'])) access_token = flask_jwt.create_access_token(details['user_id'], user_claims=details['roles']) response = flask.redirect(flask.url_for('hubs.index_html')) flask_jwt.set_access_cookies(response, access_token) return response except AssertionFailure as e: error = str(e) return flask.render_template('auth/login.html.j2', error=error)
def render_html(hub_id, dataset_id, connection_id): return flask.render_template('connections/render.html.j2', hub_id=hub_id, dataset_id=dataset_id, **fetch_view(RenderConnection(connection_id)))
def index_json(hub_id): check_assertion(HubExists(hub_id)) return flask.jsonify(fetch_view(ListDatasets(hub_id)))
def index_json(): return flask.jsonify(fetch_view(ListTeams()))
def index_html(): return flask.render_template('teams/index.html.j2', **fetch_view(ListTeams()))
def detail_json(team_id): check_assertion(TeamExists(team_id)) return flask.jsonify(fetch_view(DetailTeam(team_id)))
def detail_html(team_id): check_assertion(TeamExists(team_id)) details = fetch_view(DetailTeam(team_id)) return flask.render_template('teams/detail.html.j2', team_id=team_id, **details)
def index_json(hub_id, dataset_id): check_assertion(DatasetExists(hub_id, dataset_id)) return flask.jsonify(fetch_view(ListVersions(hub_id, dataset_id)))
def detail_json(hub_id, dataset_id, version): check_assertion(VersionExists(hub_id, dataset_id, version)) return flask.jsonify(fetch_view(DetailVersion(hub_id, dataset_id, version)))