---
# System prepended metadata

title: 'Tickets - Ordered as per the necessary order of execution:'

---

# Tickets - Ordered as per the necessary order of execution:

1. Backend: Technical Design necessary for log source - marketplace
    - We need to assess which new collections are necessary in the backend & design appropriate schemas. These collections could be (but are not limited to):
        - Log Source Type (eg. Universal Rest API fetcher, Syslog Collector)
        - Log Source Template (eg. Cisco URAF of type Universal Rest API fetcher")
        - Log Source (eg. Cisco URAF for 10.45.1.23 from Cisco URAF Template)
    - Where would the controller/logic reside for each "Log source type"
    - Development note: Keep in mind that every consumer of a "Log Source" should be thought out as a micro-service in itself
    
    Expected Output:
    - Example Schema Design for Log Source Type, Log Source Template & Log Source
    - Code-level architecture
    - Backend documentation for the Log Source

2. Backend + Frontend: Establish contract for data-structure of the requests & response between the backend & the frontend
    Expected output:
    Data-structure for all the requests & response relevant for Log Source feature:
        - list log source
        - list log source template
        - extract log source
        - extract log source template
        - create/edit log source template
        - create/edit log source
        - list available log source types
        - extract metadata of log source type
        

3. Backend: Endpoint to list all available "Log Source Types" & extract their metadata
    - There should be endpoints in the webserver to:
        - Extract the list of all available Log Source Types (like Universal rest API, syslog collector, etc). For 1st version of marketplace, only Universal rest API is relevant but we need to design it for collectors & fetchers that would be supported in the future
        - Extract metadata for a specific available log source type, i.e fields specific to a relevant log source type. UI could use this meta-data to construct the user interface.

4. Backend: Endpoint to create/edit a "Log Source Template"
    - There should be an endpoint to create/edit a "Log Source template". The endpoint should:
        - Validate fields and parameters as per the "log source type" of the "Log source template" getting created/edited
        - Save all the parameters of the log source template
        - In the edit action, the original values of the fields should also be persisted for the feature of 
    - Development note: Keep in mind that the same business logic should be reusable for import feature

5. Backend: Endpoint to create/edit a "Log Source"
    - There should be an endpoint to create a new "Log Source" or edit an existing one. The endpoint should:
        - Validate fields & parameters as per the type of the Log Source getting created
        - Create all necessary sub-components for the "log source", like routing policy, normalization policy, etc. This could be dependent on the "log source type".
    - For v1 of marketplace, support to create a log source of type "Universal rest api fetcher" should suffice. However, the underlying technical design & implementation should be done in such a way that adding support for other types is easier in the future.

6. Backend: Endpoint to delete a "Log Source"
    - There should be an endpoint in the webserver to delete a log source. A log source should safely be deleted & necessary cleanup should be done.

7. Backend: Endpoint to extract "Log Source Template"
    - There should be an endpoint in the webserver to extract a "Log Source Template"

8. Backend: Endpoint to extract "Log Source"
    - There should be an endpoint in the webserver to extract a "Log Source"

9. Backend: Endpoint to List all "Log Source Template"
    - There should be an endpoint in the webserver to list all the "Log Source Template" in the system. The endpoint should:
        - support search through search field & log source type
        - return a response with multiple rows where each row would have  name, vendor name, type, description, source, release date & version of the "Log Source Template"

10. Backend: Endpoint to List all "Log Source"
    - There should be an endpoint in the webserver to:
        - List all "Log Source" in the system
        - The endpoint should support search
        - return a response with multiple rows where each row would have log source template, log source type & time of last log collected from the log source

11. Backend: Endpoint to export a "Log Source Template" as a pak file
    - We need an endpoint in the webserver to export any "Log Source Template" in the system as a pak file

12. Backend: Endpoint to import a "Log Source Template" from a pak file 
    - There should be an endpoint in the webserver to import a "Log Source Template" from a pak file. The endpoint should:
        - Take in the template file & extract it
        - Validate the fields according to the "Log Source Type" of the log source template
        - Construct appropriate error message if validation fails
save the log source template if valid
        - Save the "log source template" if valid


13. Backend: Include "Log Source" in Object-permission

14. Backend: Endpoint to get statistics of the logs received from a "Log Source"
    - There should be an endpoint in the webserver to get statistics of the logs received from a particular "Log Source"
    - Certain research is also necessary to find the optimal way to get the statistics


## Probable other tasks - Need confirmation
15. Backend: Treat every "Log Source" as a single node for license count

