kong.ctx

    A table that has the lifetime of the current request and is shared between all plugins. It can be used to share data between several plugins in a given request.

    Since only relevant in the context of a request, this table cannot be accessed from the top-level chunk of Lua modules. Instead, it can only be accessed in request phases, which are represented by the , access, header_filter, response, body_filter, log, and preread phases of the plugin interfaces. Accessing this table in those functions (and their callees) is fine.

    Values inserted in this table by a plugin will be visible by all other plugins. One must use caution when interacting with its values, as a naming conflict could result in the overwrite of data.

    • rewrite, access, header_filter, response, body_filter, log, preread

    Usage

    Back to top

    kong.ctx.plugin

    A table that has the lifetime of the current request - Unlike kong.ctx.shared, this table is not shared between plugins. Instead, it is only visible for the current plugin instance. That is, if several instances of the rate-limiting plugin are configured (e.g. on different Services), each instance has its own table, for every request.

    Since only relevant in the context of a request, this table cannot be accessed from the top-level chunk of Lua modules. Instead, it can only be accessed in request phases, which are represented by the , access, header_filter, body_filter, log, and preread phases of the plugin interfaces. Accessing this table in those functions (and their callees) is fine.

    Values inserted in this table by a plugin will be visible in successful phases of this plugin’s instance only. For example, if a plugin wants to save some value for post-processing during the log phase:

    Phases

    • rewrite, access, header_filter, response, body_filter, log, preread
    1. kong.ctx.plugin.val_1 = "hello"
    2. kong.ctx.plugin.val_2 = "world"
    3. end
    4. function plugin_handler:log(conf)
    5. local value = kong.ctx.plugin.val_1 .. " " .. kong.ctx.plugin.val_2
    6. kong.log(value) -- "hello world"

    Back to top