cassandra/examples/triggers
Stefan Miklosovic 9860c1e9d9
Fix copying of JAR of a trigger to temporary file
While testing the fix for trigger, we fixed the corresponding
trigger example. While on it, we detected that ssl-factory example was
not working either so it is fixed in this commit as well.

patch by Stefan Miklosovic; reviewed by Brandon Williams for CASSANDRA-18264
2023-02-17 16:36:42 +01:00
..
conf Updated trigger example 2015-11-10 15:35:13 +00:00
src/org/apache/cassandra/triggers Fix copying of JAR of a trigger to temporary file 2023-02-17 16:36:42 +01:00
README.adoc Fix copying of JAR of a trigger to temporary file 2023-02-17 16:36:42 +01:00
build.xml Fix copying of JAR of a trigger to temporary file 2023-02-17 16:36:42 +01:00

README.adoc

Cassandra Trigger Example
==========================

The `AuditTrigger` class will create a basic audit of
activity on a table.

Installation
-------------

----
$ cd <cassandra_src_dir>/examples/triggers
$ ant install
----

It will build the trigger and copy it to `conf/triggers`. `AuditTrigger.properties`
in `conf` directory of this example will be automatically bundled into built jar file.
It is not needed to copy it to `conf/triggers` directory.

Usage
-----

Create the keyspace and table configured in `AuditTrigger.properties`:

----
cqlsh> CREATE KEYSPACE test WITH REPLICATION =
    { 'class' : 'SimpleStrategy', 'replication_factor' : '1' };
cqlsh> CREATE TABLE test.audit (key timeuuid, keyspace_name text,
    table_name text, primary_key text, PRIMARY KEY(key));
----

Create a table to add the trigger to:

Note: The example currently only handles non-composite partition keys
----
cqlsh> CREATE TABLE test.test (key text, value text, PRIMARY KEY(key));
----

Configure the trigger on the table:

----
cqlsh> CREATE TRIGGER test1 ON test.test USING 'org.apache.cassandra.triggers.AuditTrigger';
----

Start inserting data to the table that has the trigger. For each
partition added to the table an entry should appear in the 'audit' table:

----
cqlsh> INSERT INTO test.test (key, value) VALUES ('1', '1');
----

An entry will be automatically added to `test.audit` table:

----
cqlsh> SELECT * FROM test.audit ;

@ Row 1
---------------+--------------------------------------
 key           | 885141d0-ad7c-11ed-b917-9958320828b8
 keyspace_name | test
 primary_key   | 1
 table_name    | test
----