couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "first-leon@yandex.ru" <first-l...@yandex.ru>
Subject Re: Database information from validate_doc_update
Date Sat, 09 Nov 2013 11:00:59 GMT
And i not possible get information about data base from validate_doc_update?
> validate_doc_update functions deliberately don't let you do this
> otherwise eventually consistency can be compromised.
>
> Also remember that the native view server has no sandbox, anyone
> allowed to edit design documents can do anything to your servers that
> the user you run couchdb as can (read files, open network connections,
> delete files, etc).
>
> B.
>
>
> On 9 November 2013 09:02, first-leon@yandex.ru <first-leon@yandex.ru> wrote:
>> It is very good!
>> But, i create validation function and see error:
>>
>> Error: EXIT
>>
>> {{badmatch,[]},
>>   [{couch_query_servers,new_process,3,
>> [{file,"couch_query_servers.erl"},{line,472}]},
>>    {couch_query_servers,lang_proc,3,
>> [{file,"couch_query_servers.erl"},{line,462}]},
>>    {couch_query_servers,handle_call,3,
>> [{file,"couch_query_servers.erl"},{line,322}]},
>>    {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,585}]},
>> {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]}
>>
>> I am not understand Erlang code, and not see error details.
>> You have it working?
>>
>> In /etc/couchdb/local.ini i added
>> [native_query_servers]
>> erlang = {couch_native_process, start_link, []}
>>
>>
>>> Currently, this is possible only via native Erlang query server:
>>>
>>> fun(NewDoc, OldDoc, {UserCtx}, SecObj) ->
>>>     DbName = couch_util:get_value(<<"db">>, UserCtx),
>>>     {ok, Db} = couch_db:open_int(DbName, [{user_ctx, UserCtx}]),
>>>     {ok, Info} = couch_db:get_db_info(Db),
>>>     DiskSize = couch_util:get_value(disk_size, Info),
>>>     case DiskSize < 100000 of  %% ~100KB
>>>       true ->
>>>         ok;
>>>       false ->
>>>         throw({[{<<"forbidden">>, <<"quota limit reached">>}]})
>>>     end,
>>>     1
>>> end.
>>>
>>>
>>>
>>> --
>>> ,,,^..^,,,
>>>
>>>
>>> On Sat, Nov 9, 2013 at 7:56 AM, first-leon@yandex.ru
>>> <first-leon@yandex.ru> wrote:
>>>> Hello.
>>>>
>>>> Can I get information about the database as a function of
>>>> validate_doc_update? For example, to find out the size of the database or
>>>> the number of documents.
>>>>
>>>> Example:
>>>> function(newDoc, oldDoc, userCtx) {
>>>>    if ( thisDb.disk_size > 1000 ) throw({forbidden : 'you have exceeded
>>>> the
>>>> limit'});
>>>> }
>>>>
>>>> It is possible?
>>>>
>>>> Thanks.
>>


Mime
View raw message