File

doc/storage.tld @ 12525:8087f5357f53 0.12

mod_smacks: Fix bounce of stanzas directed to full JID on unclean disconnect Fixes #1758 Introduced in 1ea01660c79a In e62025f949f9 to and from was inverted since it changed from acting on a reply to acting on the original stanza (or a clone thereof) Unsure of the purpose of this check, you don't usually send stanzas to your own full JID. Perhaps guarding against routing loops? The check was present in the original commit of mod_smacks, prosody-modules rev 9a7671720dec
author Kim Alvefur <zash@zash.se>
date Fri, 27 May 2022 12:05:47 +0200
parent 10838:f26f2ec33f1e
line wrap: on
line source

-- Storage Interface API Description
--
-- This is written as a TypedLua description

-- Key-Value stores (the default)

interface keyval_store
	get : ( self, string? ) -> (any) | (nil, string)
	set : ( self, string?, any ) -> (boolean) | (nil, string)
end

-- Map stores (key-key-value stores)

interface map_store
	get : ( self, string?, any ) -> (any) | (nil, string)
	set : ( self, string?, any, any ) -> (boolean) | (nil, string)
	set_keys : ( self, string?, { any : any }) -> (boolean) | (nil, string)
	remove : {}
end

-- Archive stores

typealias archive_query = {
	"start"  : number?, -- timestamp
	"end"    : number?, -- timestamp
	"with"   : string?,
	"after"  : string?, -- archive id
	"before" : string?, -- archive id
	"total"  : boolean?,
}

interface archive_store
	-- Optional set of capabilities
	caps   : {
		-- Optional total count of matching items returned as second return value from :find()
		"total" : boolean?,
	}?

	-- Add to the archive
	append : ( self, string?, string?, any, number?, string? ) -> (string) | (nil, string)

	-- Iterate over archive
	find   : ( self, string?, archive_query? ) -> ( () -> ( string, any, number?, string? ), integer? )

	-- Removal of items. API like find. Optional?
	delete : ( self, string?, archive_query? ) -> (boolean) | (number) | (nil, string)

	-- Array of dates which do have messages (Optional?)
	dates  : ( self, string? ) -> ({ string }) | (nil, string)

	-- Map of counts per "with" field
	summary : ( self, string?, archive_query? ) -> ( { string : integer } ) | (nil, string)

	-- Map-store API
	get    : ( self, string, string ) -> (stanza, number?, string?) | (nil, string)
	set    : ( self, string, string, stanza, number?, string? ) -> (boolean) | (nil, string)
end

-- This represents moduleapi
interface module
	-- If the first string is omitted then the name of the module is used
	-- The second string is one of "keyval" (default), "map" or "archive"
	open_store : (self, string?, string?) -> (keyval_store) | (map_store) | (archive_store) | (nil, string)

	-- Other module methods omitted
end

module : module