{"id":15732292,"url":"https://github.com/stopsopa/watchdog","last_synced_at":"2025-03-31T03:25:42.183Z","repository":{"id":81256780,"uuid":"301853173","full_name":"stopsopa/watchdog","owner":"stopsopa","description":"Passive monitoring tool","archived":false,"fork":false,"pushed_at":"2021-07-29T19:39:25.000Z","size":809,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-06T08:13:04.658Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stopsopa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-06T20:58:48.000Z","updated_at":"2021-07-29T19:39:29.000Z","dependencies_parsed_at":"2023-05-24T05:00:19.001Z","dependency_job_id":null,"html_url":"https://github.com/stopsopa/watchdog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stopsopa%2Fwatchdog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stopsopa%2Fwatchdog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stopsopa%2Fwatchdog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stopsopa%2Fwatchdog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stopsopa","download_url":"https://codeload.github.com/stopsopa/watchdog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246409769,"owners_count":20772545,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-04T00:08:52.929Z","updated_at":"2025-03-31T03:25:42.162Z","avatar_url":"https://github.com/stopsopa.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# todo\n\n- [ ] single server.sh running everything (webpack build and dev server)\n- [x] refresh param ?_=time (browser cache)\n- [ ] extend webpack to be able to import semantic ui css\n- [ ] parameter to skip cache-loader in webpack.config.js for docker image build mode\n- [x] deleteing projects with probes\n- [x] favicon\n- [x] probeClass()-\u003estatus() - add/calculate next trigger time\n- [x] Flip days selectors next to the datepicker\n- [x] log stats page, listen to get parameters\n- [x] fix resizing of the graph with selection (it would require to convert positon of mouse to percentage of with of the svg - not worth of effort)\n- [x] buttons to navigate from logs to edit probe and back\n- [x] add ace editor\n- [x] update live graph and list below\n- [x] service flag\n- [ ] commenting individual logs\n- [x] current time on the graph\n- [x] add icon informing about collecting full log when probe=true - archive mode\n- [ ] extend project - add telegram integration with proxy users management - sending to to particular use but to group (to group id)\n- [x] status icon\n- [ ] 'some probes are disabled' icon\n- [x] widget informing about incomming execution (for active) or incomming request (for passive) expected trigger (countdown)\n- [ ] creating new probes by copying settings from another\n- [ ] whether icons https://www.s-ings.com/typicons/\n- [x] issue fix, updating probe updates list of probes in other browser instance\n- [x] issue fix, probes countdown - not always lowest number of seconds\n- [x] restart on update\n- [x] require-from-string\n- [x] autoscroll\n- [ ] chrome notifications https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API\n\nhttps://github.com/stopsopa/watchdog\n\nhttps://www.geeksforgeeks.org/how-to-use-animation-on-favicon-image/#:~:text=An%20animated%20favicon%20is%20created,within%20a%20specific%20time%20frame.\u0026text=Note%3A%20Animated%20images%20of%20type%20GIF%20will%20work%20in%20Firefox%20browser.\n\n--------- logger ----\n\nhttps://docs.python.org/3/howto/logging.html\n\n\nerror_uuid: [string]\nip || password [string]\nenv: [string] (prod|stage|test|... so on)\n\nif ip provided:\n    url [string]\n    useragent [string]\n    session_uuid [string]\n    session_interaction_history: (array of few previous important events) Array([string]) \n    user_id [string] ?\n\nelse (if no ip then password have to be provided - for server)\n    machine_hostname: [string]\n    server_instance_uuid: [string] ?\n    cluster: [string] ?\n    node: [string] ?\n    pod: [string] ?\n\nerror_symbol: [string] \nlevel: DEBUG INFO WARNING+ ERROR CRITICAL [string]    \n\ncreated: [datetime]\n\n# deleting es index\n\njust run server specifying --delete parameter\nthen run server normally to recreate index in new format\n\n```\n\nnode server.js --delete messengers\nnode server.js --delete watchdog\n```\n\nsee mapping.js file\n\n# Requirements:\n\n- es version 7.6.0\n- node.js - look to .nvmrc\n- mysql version - docker image (see docker/docker-compose.yml file)\n\n# changing structure of index in es\n\nhttps://www.elastic.co/blog/reindex-is-coming\n \ninvestigate strucutre of index\n\n    curl -H \"authorization: Basic xxx\" 'elastic.xxx.com/watchdog_watchdog?format=yaml'\n    \n    curl -XPOST -H \"authorization: Basic xxx\" -H 'Content-Type: application/json' elastic.xxx.com/_reindex?pretty -d '{\n        \"source\": {\n            \"index\": \"watchdog_watchdog\"\n        },\n        \"dest\": {\n            \"index\": \"watchdogg_watchdog\"\n        }\n    }'\n    \n    watch \"curl -H \\\"authorization: Basic xxx\\\" 'elastic.xxx.com/_cat/indices?v' | grep watch\"\n\nwhen ready, then just clone index:\nhttps://www.elastic.co/guide/en/elasticsearch/reference/current/indices-clone-index.html\n\n    curl -XPUT -H \"authorization: Basic xxx\" -H 'Content-Type: application/json' elastic.xxx.com/watchdog_watchdog/_settings -d '{\n        \"settings\": {\n            \"index.blocks.write\": false\n        }\n    }'\n\n    curl -XPOST -H \"authorization: Basic xxx\" elastic.xxx.com/source_index/_clone/target_index\n\nand remove old index:\nhttps://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html\n\n    curl -XDELETE -H \"authorization: Basic xxx\" elastic.xxx.com/watchdog_watchdog\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstopsopa%2Fwatchdog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstopsopa%2Fwatchdog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstopsopa%2Fwatchdog/lists"}