icon: material/pencil-ruler¶
Entity Identity Card¶
Sample with guidance¶
Entity Name & Purpose¶
Aspect | Description |
---|---|
Name | Name of the entity (e.g., Proposal, Fund, Comment) |
Purpose/Role | Brief description of what this entity represents and its role in the system. |
Scope | Define if this entity is user-generated/owned, dApp (catalyst) owned, or system-controlled. |
Ownership & Control¶
Aspect | Decision | Guidance/Notes |
---|---|---|
Data Owner | User / dApp | (Who owns the data? Specify if it's user-generated or operational data owned by the dApp.) |
Controller | User / dApp / Shared | (Who controls updates and access? Examples: who controls the cryptographic keys if applicable, potential for multi party control. ) |
Permissions | Consent Based / Implicit | (Is access explicitly granted by the owner, or implicitly set by system rules?) |
Storage Controller | User / dApp / Third-Party | (Who is responsible for storing the data?) |
Schema & Lifecycle¶
Aspect | Decision | Guidance/Notes |
---|---|---|
Schema Stability | Fixed / Flexible | (Is the schema immutable or flexible? If flexible, what governance process governs schema changes and does the dApp define these processes?) |
Versioning | Linked Records / Overwrite | (Define if updates create new versions or overwrite existing data. Note: All data stored in public distributed platforms must specify Linked Records ) |
Version History | Time-bound / Indefinite | (Define the rules governing responsibility for the lifecycle of historical versions.) |
Lifecycle Stages | Draft → Published → Archived | (Define the entity's progression through different states. Reference external state, sequence and flow diagrams that are relevant.) |
Validation Rules | Strict / Flexible | (Are data inputs strictly validated and how are validation rules enforced? Examples: Schema adherence, constraints.) |
Required Fields | Yes / No | (Is there a minimum set of fields required for the entity's validity are the detailed in the schema?) |
Expected Lifespan | Short-lived / Long-lived / Indefinite | (Expected lifespan of this entity.) |
Archival Needs | Indefinite / Conditional / None | (Is archival required post-lifecycle completion? Justify reasoning as there are ownership and cost implications depending on the choice) |
Visibility & Storage¶
Aspect | Decision | Guidance/Notes |
---|---|---|
Public vs Private | Public / Private / Hybrid | (Define access levels throughout lifecycle, e.g., drafts private, submissions public.) |
Storage Location | User-Determined / Enforced / dApp provided | (Where is the data stored? Examples: IPFS, Arweave, Filecoin, centralized backend, local disk) |
Public Persistence | IPFS, Filecoin, or Other | (Mechanisms ensuring availability, such as decentralized storage redundancy.) |
Data Impermanence | Handled Gracefully | (What happens if storage nodes fail? User responsibilities for re-pinning or redundancy.) |
Access & Security¶
Aspect | Decision | Guidance/Notes |
---|---|---|
Encryption | Default On / Optional | (Is encryption required for drafts or optional for published data?) |
Encryption Key Owner | User / dApp / Shared | (Who controls the keys required for encryption? Align with section Ownership & Control:Controller) |
Consent Rules | Time-bound / Conditional | (Define explicit conditions under which access is granted, revoked, or expired by the owner. Note: unless the data is encrypted it is not possible to withdraw consent from public documents) |
Traceability | Historical Linked Records / None | (Is there an immutable audit trail of changes? Helps ensure trust and accountability.) |
Integration & Rules Enforcement¶
Aspect | Decision | Guidance/Notes |
---|---|---|
Mandatory Participation Conditions | dApp Enforced / User Choice | (Rules for submission, access, or interactions, e.g., deadlines or visibility requirements.) |
Non-Compliance Consequences | Ignored / Flagged | (Entity impact for dapp rule violations, e.g., Blocked / Flagged / Moderated etc.) |
Validation Mechanism | Community Moderation / dApp Enforcement / Smart Contract Logic | (How rules are enforced through available methods.) |
Relationships¶
Note: The following table is for illustration purposes only, the content of the relationship table will be determined by the entity and its use case.
Source Entity | Target Entity | Relationship Type | Cardinality (Source → Target) | Cardinality (Target → Source) | Description |
---|---|---|---|---|---|
Proposal | ProposalSchema | Depends On | 1..1 | 0..* | Each proposal requires one schema. A schema can be used by many proposals. |
Proposal | Fund | Depends On | 1..1 | 0..* | Each proposal is associated with one fund. A fund can support many proposals. |
Regulatory & Compliance Considerations¶
Aspect | Decision | Guidance/Notes |
---|---|---|
Data Liability | User / Shared / dApp | (Who bears compliance responsibility under regulations like GDPR/CCPA?) |
Regulatory Impacts | Minimal Data Enforced | (Ensure alignment with regulations via minimal data collection and clear user consent.) |
Data Removal | Append-Only / Superseded | (Define mechanisms for marking data obsolete or superseded in immutable systems.) |
Financial Considerations¶
Aspect | Decision | Guidance/Notes |
---|---|---|
Cost Bearer | Who is responsible for paying storage costs for this entity’s data? | (Who pays for storage, e.g., IPFS pinning costs?) Include details if shared. |
Third-Party Storage | Yes / No | (Can a third party store and maintain the entity if they wish? )(Yes / No) |
Funding Method | Wallet / Transaction Fees / Community | (How is the data storage and lifecycle financially supported?) |
Security and Privacy Handling¶
Aspect | Description |
---|---|
Sensitive Data | (Does this entity include sensitive data? If yes, list the types. reference data sensitivity types.) |
Privacy Measures | (How is privacy ensured, e.g., anonymization, encryption, limited access.) |
Risk Mitigation | (Steps to mitigate privacy/security risks, e.g., GDPR compliance, security audits.) |
Languages and Localization¶
Aspect | Description |
---|---|
Supported Languages | (List supported languages for this entity, e.g., English, Spanish.) |
Localization Needs | (Specify if localization/customization is required for different regions or jurisdictions.) |
Licensing and Reuse¶
- Specify applicable licenses (e.g., Creative Commons, MIT License) and reuse constraints of the data.
Metadata Attributes¶
Note: The following table is for illustration purposes only the content of the attribute table will be determined by the entity and its use case.
Metadata Attributes are defined in the header of each document, common metadata attributes can appear on every document, entity metadata attributes are those which have a specific meaning to the current entity. While they can share a common name across entities their purpose may differ from entity to entity.
Common metadata attributes¶
Attribute | Required | Type | Category | Description | Constraints | Notes |
---|---|---|---|---|---|---|
id |
Yes | UUID | Unprotected header | Unique identifier for the entity | Primary Key | Ensures global uniqueness for the entity. |
ver |
Yes | ULID | Unprotected header | Version ID for the Proposal | The initial ver assigned when published will be identical to the id |
Enables versioning and traceability. |
alg |
Yes | String | Unprotected header | Indicates the cryptography algorithm used for the security processing | It must be equal to EdDSA value. | |
type |
Yes | ULID or CBOR Array | Unprotected header | Indicates the content type of the COSE payload | Define Media Types from IANA where possible Reference | |
encoding |
Yes | ULID or CBOR Array | Unprotected header | Indicate the content encoding algorithm of the payload | Current supported encoding algorithms: br - Brotli compressed data. | |
kid |
Yes | UTF-8 encoded URI string | Protected header | A unique identifier of the signer. | Each Catalyst Signed Document COSE signature must include the following protected header field | |
ref |
Optional | ULID or CBOR Array | Reference | References related entities | Linked Record Constraint | [<id>, <ver>] format for version linking. |
ref_hash |
Optional | ULID or CBOR Array | Security | This is a cryptographically secured reference to another document. | Cryptographically secured Linked Record Constraint | Hash of the referenced document CBOR bytes |
template |
Yes | ULID or CBOR Array | Reference | Template guiding the entity structure | Must reference an existing Template entity | [<id>, <ver>] ensures traceable references. |
reply |
Optional | CBOR Array | Reference | Identifies the entity this is replying to | Optional; [<id>, <ver>] format |
Typically used for comments or discussions. |
section |
Optional | JSON Path | Reference | Links to a specific section of a document | Must comply with valid JSON Path syntax | Useful for granular referencing within payloads. |
collabs |
Optional | CBOR Array | Security | Authorized collaborators for the entity | Must be valid collaborator address | Ensures multi party editing is traceable. |
Entity metadata attributes¶
Attribute | Type | Category | Description | Constraints | Notes |
---|---|---|---|---|---|
campaign_id |
UUID | Additional Fields | Unique identifier of the category the proposal has been published to | Existing UUID of category, category brand_id MUST be the same as the proposal brand_id |
Ensures each proposal is only published to one category |
brand_id |
UUID | Additional Fields | Unique identifier of the brand under which the proposal has been submitted | Existing UUID of brand | Used for quick lookups on indexes |
Attributes¶
Note: The following table is for illustration purposes only the content of the attribute table will be determined by the entity and its use case.
Entity specific attributes that will appear in the document body.
Attribute | Type | Required | Description | Constraints | Notes |
---|---|---|---|---|---|
title |
String | Yes | Display name for the proposal | Max Length: 255 | Shown in interfaces for user context. |
description |
String | Optional | Summary of the proposal | Optional, Max Length: 1000 | Displayed as UI/UX content. |
requestedFunds |
Yes | Presentation | Requested amount in ADA | Between: 15,000-2,000,000 ADA inclusive | |
duration |
Yes | Presentation | Project duration in months | Between 2 and 12 inclusive |
Actions¶
Note: The following table is for illustration purposes only the content of the actions table will be determined by the entity and its use case.
This section defines the actions that can be performed on the entity, the entities that can perform the action and any constraints placed on the action
Operation | Action owner | Inputs | Constraints | Expected Output | Output Owner | Additional Notes |
---|---|---|---|---|---|---|
Create | Proposer (owner) | Register proposer | Proposer must have registered with Catalyst | New proposal document created and assigned a unique ID. (Proposal Document) | Proposal creator now Owner |
Proposal ownership is initially assigned to the creator; metadata includes creation timestamp. |
Proposal Submission | Proposal owner or collaborator | Proposal ID | Proposal must be complete and pass validation | Proposal becomes visible and active (Proposal Publish Action Document) | Proposal Owner | Transition from draft to public; ensures proposal adheres to all formatting and content guidelines. |
Retract | Proposal owner or collaborator | Proposal ID, reason for retraction | Restricted to owner; may not retract proposals in active voting or funding phases | Proposal is marked as retracted; becomes inactive (Proposal Retraction Action Document) | Proposal Owner | Retracted proposals remain in the system for record keeping but are excluded from future processes. |
Comment | User with role 0 key | Proposal ID, comment text | User must have commenting permissions; content must adhere to community guidelines | Comment linked to the proposal (Comment Document) | Comment creator | Comments are public documents tied to the proposal; responsibility for the lifecycle remains with the commenter. |
Vote | Users who have registered for voting | Proposal ID, vote type (Yes, No, Abstain) | User must belong to an eligible voter group; voting period must be active | (Vote Document) | Voter | Voting results are tied to the proposal; individual votes remain private unless explicitly disclosed. |
Review | Assigned reviewers | Proposal ID, review feedback | User must be assigned as a reviewer; review criteria must be satisfied | Proposal enters reviewed state with feedback (Review Document) | Reviewer | Review documents are tied to the proposal but owned by the reviewer, who is responsible for feedback accuracy. |
Approve | Assigned reviewers | Proposal ID, approval decision | Restricted to authorized reviewers; approval may require a consensus | Proposal is approved and progresses to the next phase (Approved Action Document) | Moderator / Catalyst | |
Reject | Assigned reviewers | Proposal ID, rejection reason | Restricted to authorized reviewers; rejection reason must be provided | Proposal is rejected (Rejected Action Document) | Moderator / Catalyst | Rejected proposals may be revised and resubmitted depending on system fund policies. |
Fund | Funding authority | Proposal ID, funding amount | Proposal must have met all criteria for funding; funding pool must have sufficient balance | Proposal is marked as funded; funds are allocated (Funded Action Document) | Moderator / Catalyst | |
Add Collaborator | Proposal owner | Proposal ID, collaborator ID | Collaborator must have an active account and accept the invitation | Collaborator gains access to the proposal and may contribute (Collaborator Action Document) | Proposal Owner | Added collaborators inherit specific permissions tied to their role in the proposal. |
Remove Collaborator | Proposal owner | Proposal ID, collaborator ID | Collaborator must already be associated with the proposal | Collaborator's access is revoked (Collaborator Revocation Action Document) | Proposal Owner | Removed collaborators can no longer perform actions on the proposal document |
Workflow¶
- *Step-by-step description of the entity life cycle and work flows, reference external diagrams
Error Handling¶
- Description of potential errors or exceptions and how they are handled and by whom.
Business Rules¶
- List of business rules or logic associated with this entity
Data Flow¶
- Description of how data moves into, through, and out of this entity
Security Considerations¶
- Any security-related information specific to this entity
Open Issues¶
- Any unresolved questions or potential future changes related to this entity
Iteration Change Log¶
Version | Date | Description of Change | Author |
---|---|---|---|
e.g., v1.0 | 2024-12-20 | Initial creation of the entity identity card. | Name or Role |
e.g., v1.1 | 2024-12-25 | Added a new attribute to enhance functionality. | Name or Role |