% Licensed under the Apache License, Version 2.0 (the "License"); you may not
% use this file except in compliance with the License. You may obtain a copy of
% the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
% License for the specific language governing permissions and limitations under
% the License.

{application, global_changes, [
    {description, "_changes-like feeds for multiple DBs"},
    {vsn, git},
    {registered, [global_changes_config_listener, global_changes_server]},
    {applications, [
        kernel,
        stdlib,
        couch_epi,
        config,
        couch_log,
        couch_stats,
        couch,
        mem3,
        fabric
    ]},
    {mod, {global_changes_app, []}},
    {env, [
        {dbname, <<"_global_changes">>}
    ]}
]}.
