diff --git a/.github/ISSUE_TEMPLATE/new_release.md b/.github/ISSUE_TEMPLATE/new_release.md index 81b5c468a4..247979f7f2 100644 --- a/.github/ISSUE_TEMPLATE/new_release.md +++ b/.github/ISSUE_TEMPLATE/new_release.md @@ -27,6 +27,7 @@ Example: ### Post-release - [ ] Make draft releases final and public. - [ ] Sync branches. +- [ ] Update [Compatibility Matrix](https://github.com/wazuh/wazuh-kibana-app/wiki/Compatibility). ### Supported versions diff --git a/CHANGELOG.md b/CHANGELOG.md index 51505cd566..e2d7625f0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,14 @@ All notable changes to the Wazuh app project will be documented in this file. - Handling endpoint response was done when there is no data to show [#4918]https://github.com/wazuh/wazuh-kibana-app/pull/4918 - Fixed the 2 errors that appeared in console in Settings>Configuration section. [#5135](https://github.com/wazuh/wazuh-kibana-app/pull/5135) +## Wazuh v4.4.1 - Kibana 7.10.2, 7.16.x, 7.17.x - Revision 01 + +### Fixed + +- Fixed the search in the agent inventory data tables [#5196](https://github.com/wazuh/wazuh-kibana-app/pull/5196) +- Fixed the `Anomaly and malware detection` link. [#5329](https://github.com/wazuh/wazuh-kibana-app/pull/5329) +- Fixed the problem that did not allow closing the time picker when the button was clicked again in `Agents` and `Management/Statistics`. [#5341](https://github.com/wazuh/wazuh-kibana-app/pull/5341) + ## Wazuh v4.4.0 - Kibana 7.10.2, 7.16.x, 7.17.x - Revision 06 ### Added diff --git a/common/api-info/security-actions.json b/common/api-info/security-actions.json index 035696e9ce..c9b571e3e2 100644 --- a/common/api-info/security-actions.json +++ b/common/api-info/security-actions.json @@ -111,8 +111,7 @@ "DELETE /agents/{agent_id}/group/{group_id}", "PUT /agents/{agent_id}/group/{group_id}", "DELETE /agents/group", - "PUT /agents/group", - "DELETE /groups" + "PUT /agents/group" ] }, "group:modify_assignments": { @@ -134,8 +133,7 @@ "DELETE /agents/{agent_id}/group/{group_id}", "PUT /agents/{agent_id}/group/{group_id}", "DELETE /agents/group", - "PUT /agents/group", - "DELETE /groups" + "PUT /agents/group" ] }, "agent:restart": { diff --git a/public/components/agents/syscollector/components/syscollector-table.tsx b/public/components/agents/syscollector/components/syscollector-table.tsx index d430d837a2..4df55316fd 100644 --- a/public/components/agents/syscollector/components/syscollector-table.tsx +++ b/public/components/agents/syscollector/components/syscollector-table.tsx @@ -6,7 +6,11 @@ import { AppState } from '../../../../react-services/app-state'; export function SyscollectorTable({ tableParams }) { - const [params, setParams] = useState({ limit: 10, offset: 0, }); + const [params, setParams] = useState<{ limit: number, offset: number, select:string, q?: string}>({ + limit: 10, + offset: 0, + select: tableParams.columns.map(({id}) => id).join(",") + }); const [pageIndex, setPageIndex] = useState(0); const [searchBarValue, setSearchBarValue] = useState(""); const [pageSize, setPageSize] = useState(10); @@ -67,7 +71,13 @@ export function SyscollectorTable({ tableParams }) { setSearchBarValue(value); timerDelaySearch && clearTimeout(timerDelaySearch); const timeoutId = setTimeout(() => { - const newParams = { ...params, search: value }; + const { q, ...rest} = params; + const newParams = { + ...rest, + ...(value ? { + q: tableParams.columns.map(({id}) => `${id}~${value}`).join(",") + }: {}) + }; setParams(newParams); setPageIndex(0); }, 400) @@ -85,7 +95,7 @@ export function SyscollectorTable({ tableParams }) { await AppState.downloadCsv( tableParams.path, tableParams.exportFormatted, - !!params.search ? [{ name: 'search', value: params.search }] : [] + !!params.q ? [{ name: 'q', value: params.q }] : [] ) } @@ -101,11 +111,11 @@ export function SyscollectorTable({ tableParams }) { diff --git a/public/components/wz-date-picker/components/condensed.tsx b/public/components/wz-date-picker/components/condensed.tsx index 8f4f7f4246..2f862b90f9 100644 --- a/public/components/wz-date-picker/components/condensed.tsx +++ b/public/components/wz-date-picker/components/condensed.tsx @@ -48,8 +48,8 @@ export function CondensedPicker({ ranges, onTimeChange }) { return result; } - const button = ( setIsOpen(true)} + const button = ( setIsOpen(!isOpen)} iconType="arrowDown" iconSide="right"> {!!customRange @@ -78,4 +78,4 @@ export function CondensedPicker({ ranges, onTimeChange }) { ) -} \ No newline at end of file +} diff --git a/public/controllers/management/components/management/configuration/policy-monitoring/help-links.js b/public/controllers/management/components/management/configuration/policy-monitoring/help-links.js index d097a6408b..d406da914d 100644 --- a/public/controllers/management/components/management/configuration/policy-monitoring/help-links.js +++ b/public/controllers/management/components/management/configuration/policy-monitoring/help-links.js @@ -14,8 +14,8 @@ import { webDocumentationLink } from "../../../../../../../common/services/web_d export default [ { - text: 'Anomaly and malware detection', - href: webDocumentationLink('user-manual/capabilities/anomalies-detection/index.html') + text: 'Malware detection', + href: webDocumentationLink('user-manual/capabilities/malware-detection/index.html') }, { text: 'Monitoring security policies', diff --git a/scripts/tag.py b/scripts/tag.py index 2bcf95fe10..4ce2f2eb6b 100644 --- a/scripts/tag.py +++ b/scripts/tag.py @@ -4,20 +4,30 @@ import subprocess # ==================== CONFIGURATION ==================== # +# Fill the variables below with the desired values +# # Values to modify: -# - version -# - revision -# - stage +# - version - sent to the package.json +# - revision - sent to the package.json +# - stage - sent to the package.json +# - tag_suffix - used by the tag generation # - supported_versions & kbn_versions ONLY IF NEEDED (e.g. new Kibana version) # ======================================================= # # Wazuh version: major.minor.patch -version = '4.4.0' +version = '4.4.1' # App's revision number (previous rev + 1) -revision = '06' +revision = '01' # One of 'pre-alpha', 'alpha', 'beta', 'release-candidate', 'stable' stage = 'stable' - +# Tag suffix. Usually set to stage + stage iteration. +tag_suffix = '' + +# ================================================ # +# Constants and global variables # +# ================================================ # +LOG_FILE = 'output.log' +TAGS_FILE = 'tags.log' # Global variable. Will be set later branch = None minor = ".".join(version.split('.')[:2]) @@ -41,16 +51,31 @@ }, 'Wazuh Dashboard': { 'branch': f'{minor}-2.4-wzd', - 'versions': ['2.4.1'] + 'versions': ['2.6.0'] } } +# ================================================ # +# Functions # +# ================================================ # + +def require_confirmation(): + """Ask for confirmation before running the script.""" + print('WARNING! This script will commit and push the tags to the remote ' + + 'repository, deleting any unpushed changes.') + confirmation = input('Do you want to continue? [y/N] ') + + if confirmation.lower() != 'y': + logging.info('Aborting...') + exit(0) + def get_git_revision_short_hash() -> str: return subprocess.check_output(['git', 'rev-parse', '--short', branch]).decode('ascii').strip() def update_package_json(v: str) -> tuple: + """Update package.json with the new version and revision.""" logging.info(f'Updating package.json') data, success = {}, True @@ -74,6 +99,7 @@ def update_package_json(v: str) -> tuple: def setup(): + """Sync the repo.""" logging.info( f'Switching to branch "{branch}" and removing outdated tags...') os.system(f'git checkout {branch}') @@ -81,11 +107,12 @@ def setup(): def main(platform: str, versions: list): + """Main function.""" for v in versions: if stage == 'stable': tag = f'v{version}-{v}' else: - tag = f'v{version}-{v}-{stage}' + tag = f'v{version}-{v}-{tag_suffix}' logging.info(f'Generating tag "{tag}"') update_package_json(v) os.system(f'git commit -am "Bump {tag}"') @@ -95,20 +122,29 @@ def main(platform: str, versions: list): os.system(f'git push origin {tag}') # Undo latest commit os.system(f'git reset --hard origin/{branch}') + # Save created tags to file - os.system(f'git tag | grep -P -i "^v{version}-.*-{stage}" > tags.txt') + os.system(f'git tag | grep -P -i "^v{version}-.*-{tag_suffix}" > {TAGS_FILE}') +# ================================================ # +# Main program # +# ================================================ # if __name__ == '__main__': logging.basicConfig( - filename='output.log', + filename=LOG_FILE, level=logging.INFO, format='%(asctime)s %(message)s' ) logging.info( f'Wazuh version is "{version}". App revision is "{revision}". Stage is "{stage}"') + require_confirmation() for platform_name, platform_data in supported_versions.items(): branch, versions = platform_data['branch'], platform_data['versions'] setup() main(platform_name, versions) + + + print(f'\nCOMPLETED. \nCheck {LOG_FILE} for more details.') + print(f'Tags are stored in {TAGS_FILE}')