You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement automatic auditing of entities. Create a new annotation, @Audited, that can be specified on the entity classes. When this annotation is present, any WRITE operations of the entity should be logged to the Cloud Datastore. Also support another annotation, @NotAudited which can be specified on Entity Fields to not audit certain fields of the entity.
Auditing should store snapshots of the auditable fields of the entity in a separate entity. Each time an entity is inserted, updated, upserted or deleted, that affected entity should be stored to the audit table (Kind). When an entity is deleted, it is not required that all fields of the entity be stored to the audit table, just the entity ID is sufficient. The reason for this -
Entities can be deleted by their ID/Key, which means the entity is not read from the Datastore.
Deleted entity does not require its fields be logged, the previous audited entity should have the values.
For the initial version, auditing can be done synchronously (in the same thread that affected the entity), but also explore the options for auditing asynchronously, so the application threads are not locked while auditing.
The text was updated successfully, but these errors were encountered:
Implement automatic auditing of entities. Create a new annotation,
@Audited
, that can be specified on the entity classes. When this annotation is present, any WRITE operations of the entity should be logged to the Cloud Datastore. Also support another annotation,@NotAudited
which can be specified on Entity Fields to not audit certain fields of the entity.Auditing should store snapshots of the auditable fields of the entity in a separate entity. Each time an entity is inserted, updated, upserted or deleted, that affected entity should be stored to the audit table (Kind). When an entity is deleted, it is not required that all fields of the entity be stored to the audit table, just the entity ID is sufficient. The reason for this -
For the initial version, auditing can be done synchronously (in the same thread that affected the entity), but also explore the options for auditing asynchronously, so the application threads are not locked while auditing.
The text was updated successfully, but these errors were encountered: