Exemple #1
0
def main(global_config, config=None, **settings):
    if not config:
        config = Configurator(settings=settings, root_factory=RouteFactory)

    # Force project name, since it determines settings prefix.
    config.add_settings({'cliquet.project_name': 'kinto'})

    cliquet.initialize(config,
                       version=__version__,
                       default_settings=DEFAULT_SETTINGS)

    settings = config.get_settings()

    # In Kinto API 1.x, a default bucket is available.
    # Force its inclusion if not specified in settings.
    if 'kinto.plugins.default_bucket' not in settings['includes']:
        config.include('kinto.plugins.default_bucket')

    # Retro-compatibility with first Kinto clients.
    config.registry.public_settings.add('cliquet.batch_max_requests')

    # Expose capability
    schema_enabled = asbool(
        settings['experimental_collection_schema_validation']
    )
    if schema_enabled:
        config.add_api_capability(
            "schema",
            description="Validates collection records with JSON schemas.",
            url="http://kinto.readthedocs.org/en/latest/api/1.x/"
                "collections.html#collection-json-schema")

    # Scan Kinto views.
    kwargs = {}
    flush_enabled = asbool(settings.get('flush_endpoint_enabled'))

    if flush_enabled:
        config.add_api_capability(
            "flush_endpoint",
            description="The __flush__ endpoint can be used to remove all "
                        "data from all backends.",
            url="http://kinto.readthedocs.org/en/latest/configuration/"
                "settings.html#activating-the-flush-endpoint"
        )
    else:
        kwargs['ignore'] = 'kinto.views.flush'
    config.scan("kinto.views", **kwargs)

    app = config.make_wsgi_app()

    # Install middleware (idempotent if disabled)
    return cliquet.install_middlewares(app, settings)
Exemple #2
0
def main(global_config, config=None, **settings):
    if not config:
        config = Configurator(settings=settings, root_factory=RouteFactory)

    config.registry.command = global_config and global_config.get(
        "command", None)

    # Force settings prefix.
    config.add_settings({"kinto.settings_prefix": "kinto"})

    kinto.core.initialize(config,
                          version=__version__,
                          default_settings=DEFAULT_SETTINGS)

    settings = config.get_settings()

    # Expose capability
    schema_enabled = asbool(
        settings["experimental_collection_schema_validation"])
    if schema_enabled:
        config.add_api_capability(
            "schema",
            description="Validates collection records with JSON schemas.",
            url="https://kinto.readthedocs.io/en/latest/api/1.x/"
            "collections.html#collection-json-schema",
        )

    # Scan Kinto views.
    kwargs = {}

    # Permissions endpoint enabled if permission backend is setup.
    is_admin_enabled = "kinto.plugins.admin" in settings["includes"]
    permissions_endpoint_enabled = (is_admin_enabled or asbool(
        settings["experimental_permissions_endpoint"])) and hasattr(
            config.registry, "permission")
    if permissions_endpoint_enabled:
        config.add_api_capability(
            "permissions_endpoint",
            description="The permissions endpoint can be used to list all "
            "user objects permissions.",
            url="https://kinto.readthedocs.io/en/latest/configuration/"
            "settings.html#activating-the-permissions-endpoint",
        )
    else:
        kwargs.setdefault("ignore", []).append("kinto.views.permissions")

    config.scan("kinto.views", **kwargs)

    app = config.make_wsgi_app()

    # Install middleware (no-op if disabled)
    return kinto.core.install_middlewares(app, settings)
Exemple #3
0
def main(global_config, config=None, **settings):
    if not config:
        config = Configurator(settings=settings, root_factory=RouteFactory)

    # Force project name, since it determines settings prefix.
    config.add_settings({'kinto.project_name': 'kinto'})

    kinto.core.initialize(config,
                          version=__version__,
                          default_settings=DEFAULT_SETTINGS)

    settings = config.get_settings()

    # Expose capability
    schema_enabled = asbool(
        settings['experimental_collection_schema_validation']
    )
    if schema_enabled:
        config.add_api_capability(
            "schema",
            description="Validates collection records with JSON schemas.",
            url="https://kinto.readthedocs.io/en/latest/api/1.x/"
                "collections.html#collection-json-schema")

    # Scan Kinto views.
    kwargs = {}

    flush_enabled = asbool(settings['flush_endpoint_enabled'])
    if flush_enabled:
        config.add_api_capability(
            "flush_endpoint",
            description="The __flush__ endpoint can be used to remove all "
                        "data from all backends.",
            url="https://kinto.readthedocs.io/en/latest/configuration/"
                "settings.html#activating-the-flush-endpoint")
    else:
        kwargs['ignore'] = ['kinto.views.flush']

    # Permissions endpoint enabled if permission backend is setup.
    permissions_endpoint_enabled = (
        asbool(settings['experimental_permissions_endpoint']) and
        hasattr(config.registry, 'permission'))
    if not permissions_endpoint_enabled:
        kwargs.setdefault('ignore', []).append('kinto.views.permissions')

    config.scan("kinto.views", **kwargs)

    app = config.make_wsgi_app()

    # Install middleware (idempotent if disabled)
    return kinto.core.install_middlewares(app, settings)
Exemple #4
0
def main(global_config, config=None, **settings):
    if not config:
        config = Configurator(settings=settings, root_factory=RouteFactory)

    config.registry.command = global_config and global_config.get(
        'command', None)

    # Force settings prefix.
    config.add_settings({'kinto.settings_prefix': 'kinto'})

    kinto.core.initialize(config,
                          version=__version__,
                          default_settings=DEFAULT_SETTINGS)

    settings = config.get_settings()

    # Expose capability
    schema_enabled = asbool(
        settings['experimental_collection_schema_validation'])
    if schema_enabled:
        config.add_api_capability(
            'schema',
            description='Validates collection records with JSON schemas.',
            url='https://kinto.readthedocs.io/en/latest/api/1.x/'
            'collections.html#collection-json-schema')

    # Scan Kinto views.
    kwargs = {}

    # Permissions endpoint enabled if permission backend is setup.
    is_admin_enabled = 'kinto.plugins.admin' in settings['includes']
    permissions_endpoint_enabled = ((is_admin_enabled or asbool(
        settings['experimental_permissions_endpoint']))
                                    and hasattr(config.registry, 'permission'))
    if permissions_endpoint_enabled:
        config.add_api_capability(
            'permissions_endpoint',
            description='The permissions endpoint can be used to list all '
            'user objects permissions.',
            url='https://kinto.readthedocs.io/en/latest/configuration/'
            'settings.html#activating-the-permissions-endpoint')
    else:
        kwargs.setdefault('ignore', []).append('kinto.views.permissions')

    config.scan('kinto.views', **kwargs)

    app = config.make_wsgi_app()

    # Install middleware (no-op if disabled)
    return kinto.core.install_middlewares(app, settings)
Exemple #5
0
def main(global_config, config=None, **settings):
    if not config:
        config = Configurator(settings=settings, root_factory=RouteFactory)

    # Force project name, since it determines settings prefix.
    config.add_settings({'kinto.project_name': 'kinto'})

    kinto.core.initialize(config,
                          version=__version__,
                          default_settings=DEFAULT_SETTINGS)

    settings = config.get_settings()

    # Expose capability
    schema_enabled = asbool(
        settings['experimental_collection_schema_validation']
    )
    if schema_enabled:
        config.add_api_capability(
            'schema',
            description='Validates collection records with JSON schemas.',
            url='https://kinto.readthedocs.io/en/latest/api/1.x/'
                'collections.html#collection-json-schema')

    # Scan Kinto views.
    kwargs = {}

    # Permissions endpoint enabled if permission backend is setup.
    is_admin_enabled = 'kinto.plugins.admin' in settings['includes']
    permissions_endpoint_enabled = (
        (is_admin_enabled or asbool(settings['experimental_permissions_endpoint'])) and
        hasattr(config.registry, 'permission'))
    if permissions_endpoint_enabled:
        config.add_api_capability(
            'permissions_endpoint',
            description='The permissions endpoint can be used to list all '
                        'user objects permissions.',
            url='https://kinto.readthedocs.io/en/latest/configuration/'
                'settings.html#activating-the-permissions-endpoint')
    else:
        kwargs.setdefault('ignore', []).append('kinto.views.permissions')

    config.scan('kinto.views', **kwargs)

    app = config.make_wsgi_app()

    # Install middleware (no-op if disabled)
    return kinto.core.install_middlewares(app, settings)
Exemple #6
0
def main(global_config, config=None, **settings):
    if not config:
        config = Configurator(settings=settings, root_factory=RouteFactory)

    config.registry.command = global_config and global_config.get("command", None)

    # Force settings prefix.
    config.add_settings({"kinto.settings_prefix": "kinto"})

    kinto.core.initialize(config, version=__version__, default_settings=DEFAULT_SETTINGS)

    settings = config.get_settings()

    # Expose capability
    schema_enabled = asbool(settings["experimental_collection_schema_validation"])
    if schema_enabled:
        config.add_api_capability(
            "schema",
            description="Validates collection records with JSON schemas.",
            url="https://kinto.readthedocs.io/en/latest/api/1.x/"
            "collections.html#collection-json-schema",
        )

    # Scan Kinto views.
    kwargs = {}

    # Permissions endpoint enabled if permission backend is setup.
    is_admin_enabled = "kinto.plugins.admin" in settings["includes"]
    permissions_endpoint_enabled = (
        is_admin_enabled or asbool(settings["experimental_permissions_endpoint"])
    ) and hasattr(config.registry, "permission")
    if permissions_endpoint_enabled:
        config.add_api_capability(
            "permissions_endpoint",
            description="The permissions endpoint can be used to list all "
            "user objects permissions.",
            url="https://kinto.readthedocs.io/en/latest/configuration/"
            "settings.html#activating-the-permissions-endpoint",
        )
    else:
        kwargs.setdefault("ignore", []).append("kinto.views.permissions")

    config.scan("kinto.views", **kwargs)

    app = config.make_wsgi_app()

    # Install middleware (no-op if disabled)
    return kinto.core.install_middlewares(app, settings)
Exemple #7
0
def main(global_config, config=None, **settings):
    if not config:
        config = Configurator(settings=settings, root_factory=RouteFactory)

    # Force project name, since it determines settings prefix.
    config.add_settings({'kinto.project_name': 'kinto'})

    kinto.core.initialize(config,
                          version=__version__,
                          default_settings=DEFAULT_SETTINGS)

    settings = config.get_settings()

    # Expose capability
    schema_enabled = asbool(
        settings['experimental_collection_schema_validation'])
    if schema_enabled:
        config.add_api_capability(
            "schema",
            description="Validates collection records with JSON schemas.",
            url="http://kinto.readthedocs.io/en/latest/api/1.x/"
            "collections.html#collection-json-schema")

    # Scan Kinto views.
    kwargs = {}

    flush_enabled = asbool(settings.get('flush_endpoint_enabled'))
    if flush_enabled:
        config.add_api_capability(
            "flush_endpoint",
            description="The __flush__ endpoint can be used to remove all "
            "data from all backends.",
            url="http://kinto.readthedocs.io/en/latest/configuration/"
            "settings.html#activating-the-flush-endpoint")
    else:
        kwargs['ignore'] = 'kinto.views.flush'

    config.scan("kinto.views", **kwargs)

    app = config.make_wsgi_app()

    # Install middleware (idempotent if disabled)
    return kinto.core.install_middlewares(app, settings)