diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 14afb729..00000000
--- a/.editorconfig
+++ /dev/null
@@ -1,1712 +0,0 @@
-# for Intellij IDE you can import the file ./intellij-java-google-style.xml
-# Settings -> Editor -> Code Style -> 'gear icon' -> Import Schema
-[*]
-charset = utf-8
-end_of_line = lf
-indent_size = 2
-indent_style = space
-insert_final_newline = true
-max_line_length = 100
-tab_width = 2
-ij_continuation_indent_size = 4
-ij_formatter_off_tag = @formatter:off
-ij_formatter_on_tag = @formatter:on
-ij_formatter_tags_enabled = false
-ij_smart_tabs = false
-ij_visual_guides = none
-ij_wrap_on_typing = false
-
-[*.css]
-ij_css_align_closing_brace_with_properties = false
-ij_css_blank_lines_around_nested_selector = 1
-ij_css_blank_lines_between_blocks = 1
-ij_css_block_comment_add_space = false
-ij_css_brace_placement = end_of_line
-ij_css_enforce_quotes_on_format = false
-ij_css_hex_color_long_format = false
-ij_css_hex_color_lower_case = false
-ij_css_hex_color_short_format = false
-ij_css_hex_color_upper_case = false
-ij_css_keep_blank_lines_in_code = 2
-ij_css_keep_indents_on_empty_lines = false
-ij_css_keep_single_line_blocks = false
-ij_css_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow
-ij_css_space_after_colon = true
-ij_css_space_before_opening_brace = true
-ij_css_use_double_quotes = true
-ij_css_value_alignment = do_not_align
-
-[*.feature]
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_gherkin_keep_indents_on_empty_lines = false
-
-[*.java]
-ij_java_align_consecutive_assignments = false
-ij_java_align_consecutive_variable_declarations = false
-ij_java_align_group_field_declarations = false
-ij_java_align_multiline_annotation_parameters = false
-ij_java_align_multiline_array_initializer_expression = false
-ij_java_align_multiline_assignment = false
-ij_java_align_multiline_binary_operation = false
-ij_java_align_multiline_chained_methods = false
-ij_java_align_multiline_deconstruction_list_components = true
-ij_java_align_multiline_extends_list = false
-ij_java_align_multiline_for = false
-ij_java_align_multiline_method_parentheses = false
-ij_java_align_multiline_parameters = false
-ij_java_align_multiline_parameters_in_calls = false
-ij_java_align_multiline_parenthesized_expression = false
-ij_java_align_multiline_records = true
-ij_java_align_multiline_resources = false
-ij_java_align_multiline_ternary_operation = false
-ij_java_align_multiline_text_blocks = false
-ij_java_align_multiline_throws_list = false
-ij_java_align_subsequent_simple_methods = false
-ij_java_align_throws_keyword = false
-ij_java_align_types_in_multi_catch = true
-ij_java_annotation_parameter_wrap = off
-ij_java_array_initializer_new_line_after_left_brace = false
-ij_java_array_initializer_right_brace_on_new_line = false
-ij_java_array_initializer_wrap = normal
-ij_java_assert_statement_colon_on_next_line = false
-ij_java_assert_statement_wrap = off
-ij_java_assignment_wrap = off
-ij_java_binary_operation_sign_on_next_line = true
-ij_java_binary_operation_wrap = normal
-ij_java_blank_lines_after_anonymous_class_header = 0
-ij_java_blank_lines_after_class_header = 1
-ij_java_blank_lines_after_imports = 1
-ij_java_blank_lines_after_package = 1
-ij_java_blank_lines_around_class = 1
-ij_java_blank_lines_around_field = 0
-ij_java_blank_lines_around_field_in_interface = 0
-ij_java_blank_lines_around_initializer = 1
-ij_java_blank_lines_around_method = 1
-ij_java_blank_lines_around_method_in_interface = 1
-ij_java_blank_lines_before_class_end = 0
-ij_java_blank_lines_before_imports = 1
-ij_java_blank_lines_before_method_body = 0
-ij_java_blank_lines_before_package = 0
-ij_java_block_brace_style = end_of_line
-ij_java_block_comment_add_space = false
-ij_java_block_comment_at_first_column = true
-ij_java_builder_methods = none
-ij_java_call_parameters_new_line_after_left_paren = false
-ij_java_call_parameters_right_paren_on_new_line = false
-ij_java_call_parameters_wrap = normal
-ij_java_case_statement_on_separate_line = true
-ij_java_catch_on_new_line = false
-ij_java_class_annotation_wrap = split_into_lines
-ij_java_class_brace_style = end_of_line
-ij_java_class_count_to_use_import_on_demand = 999
-ij_java_class_names_in_javadoc = 1
-ij_java_deconstruction_list_wrap = normal
-ij_java_do_not_indent_top_level_class_members = false
-ij_java_do_not_wrap_after_single_annotation = false
-ij_java_do_not_wrap_after_single_annotation_in_parameter = false
-ij_java_do_while_brace_force = always
-ij_java_doc_add_blank_line_after_description = true
-ij_java_doc_add_blank_line_after_param_comments = false
-ij_java_doc_add_blank_line_after_return = false
-ij_java_doc_add_p_tag_on_empty_lines = true
-ij_java_doc_align_exception_comments = true
-ij_java_doc_align_param_comments = true
-ij_java_doc_do_not_wrap_if_one_line = false
-ij_java_doc_enable_formatting = true
-ij_java_doc_enable_leading_asterisks = true
-ij_java_doc_indent_on_continuation = false
-ij_java_doc_keep_empty_lines = true
-ij_java_doc_keep_empty_parameter_tag = true
-ij_java_doc_keep_empty_return_tag = true
-ij_java_doc_keep_empty_throws_tag = true
-ij_java_doc_keep_invalid_tags = true
-ij_java_doc_param_description_on_new_line = false
-ij_java_doc_preserve_line_breaks = false
-ij_java_doc_use_throws_not_exception_tag = true
-ij_java_else_on_new_line = false
-ij_java_entity_dd_suffix = EJB
-ij_java_entity_eb_suffix = Bean
-ij_java_entity_hi_suffix = Home
-ij_java_entity_lhi_prefix = Local
-ij_java_entity_lhi_suffix = Home
-ij_java_entity_li_prefix = Local
-ij_java_entity_pk_class = java.lang.String
-ij_java_entity_vo_suffix = VO
-ij_java_enum_constants_wrap = off
-ij_java_extends_keyword_wrap = off
-ij_java_extends_list_wrap = normal
-ij_java_field_annotation_wrap = split_into_lines
-ij_java_finally_on_new_line = false
-ij_java_for_brace_force = always
-ij_java_for_statement_new_line_after_left_paren = false
-ij_java_for_statement_right_paren_on_new_line = false
-ij_java_for_statement_wrap = normal
-ij_java_generate_final_locals = false
-ij_java_generate_final_parameters = false
-ij_java_if_brace_force = always
-ij_java_imports_layout = $*, |, *
-ij_java_indent_case_from_switch = true
-ij_java_insert_inner_class_imports = true
-ij_java_insert_override_annotation = true
-ij_java_keep_blank_lines_before_right_brace = 2
-ij_java_keep_blank_lines_between_package_declaration_and_header = 2
-ij_java_keep_blank_lines_in_code = 1
-ij_java_keep_blank_lines_in_declarations = 2
-ij_java_keep_builder_methods_indents = false
-ij_java_keep_control_statement_in_one_line = false
-ij_java_keep_first_column_comment = true
-ij_java_keep_indents_on_empty_lines = false
-ij_java_keep_line_breaks = true
-ij_java_keep_multiple_expressions_in_one_line = false
-ij_java_keep_simple_blocks_in_one_line = false
-ij_java_keep_simple_classes_in_one_line = false
-ij_java_keep_simple_lambdas_in_one_line = false
-ij_java_keep_simple_methods_in_one_line = false
-ij_java_label_indent_absolute = false
-ij_java_label_indent_size = 0
-ij_java_lambda_brace_style = end_of_line
-ij_java_layout_static_imports_separately = true
-ij_java_line_comment_add_space = false
-ij_java_line_comment_add_space_on_reformat = false
-ij_java_line_comment_at_first_column = true
-ij_java_message_dd_suffix = EJB
-ij_java_message_eb_suffix = Bean
-ij_java_method_annotation_wrap = split_into_lines
-ij_java_method_brace_style = end_of_line
-ij_java_method_call_chain_wrap = normal
-ij_java_method_parameters_new_line_after_left_paren = false
-ij_java_method_parameters_right_paren_on_new_line = false
-ij_java_method_parameters_wrap = normal
-ij_java_modifier_list_wrap = false
-ij_java_multi_catch_types_wrap = normal
-ij_java_names_count_to_use_import_on_demand = 999
-ij_java_new_line_after_lparen_in_annotation = false
-ij_java_new_line_after_lparen_in_deconstruction_pattern = true
-ij_java_new_line_after_lparen_in_record_header = false
-ij_java_parameter_annotation_wrap = off
-ij_java_parentheses_expression_new_line_after_left_paren = false
-ij_java_parentheses_expression_right_paren_on_new_line = false
-ij_java_place_assignment_sign_on_next_line = false
-ij_java_prefer_longer_names = true
-ij_java_prefer_parameters_wrap = false
-ij_java_record_components_wrap = normal
-ij_java_repeat_synchronized = true
-ij_java_replace_instanceof_and_cast = false
-ij_java_replace_null_check = true
-ij_java_replace_sum_lambda_with_method_ref = true
-ij_java_resource_list_new_line_after_left_paren = false
-ij_java_resource_list_right_paren_on_new_line = false
-ij_java_resource_list_wrap = off
-ij_java_rparen_on_new_line_in_annotation = false
-ij_java_rparen_on_new_line_in_deconstruction_pattern = true
-ij_java_rparen_on_new_line_in_record_header = false
-ij_java_session_dd_suffix = EJB
-ij_java_session_eb_suffix = Bean
-ij_java_session_hi_suffix = Home
-ij_java_session_lhi_prefix = Local
-ij_java_session_lhi_suffix = Home
-ij_java_session_li_prefix = Local
-ij_java_session_si_suffix = Service
-ij_java_space_after_closing_angle_bracket_in_type_argument = false
-ij_java_space_after_colon = true
-ij_java_space_after_comma = true
-ij_java_space_after_comma_in_type_arguments = true
-ij_java_space_after_for_semicolon = true
-ij_java_space_after_quest = true
-ij_java_space_after_type_cast = true
-ij_java_space_before_annotation_array_initializer_left_brace = false
-ij_java_space_before_annotation_parameter_list = false
-ij_java_space_before_array_initializer_left_brace = false
-ij_java_space_before_catch_keyword = true
-ij_java_space_before_catch_left_brace = true
-ij_java_space_before_catch_parentheses = true
-ij_java_space_before_class_left_brace = true
-ij_java_space_before_colon = true
-ij_java_space_before_colon_in_foreach = true
-ij_java_space_before_comma = false
-ij_java_space_before_deconstruction_list = false
-ij_java_space_before_do_left_brace = true
-ij_java_space_before_else_keyword = true
-ij_java_space_before_else_left_brace = true
-ij_java_space_before_finally_keyword = true
-ij_java_space_before_finally_left_brace = true
-ij_java_space_before_for_left_brace = true
-ij_java_space_before_for_parentheses = true
-ij_java_space_before_for_semicolon = false
-ij_java_space_before_if_left_brace = true
-ij_java_space_before_if_parentheses = true
-ij_java_space_before_method_call_parentheses = false
-ij_java_space_before_method_left_brace = true
-ij_java_space_before_method_parentheses = false
-ij_java_space_before_opening_angle_bracket_in_type_parameter = false
-ij_java_space_before_quest = true
-ij_java_space_before_switch_left_brace = true
-ij_java_space_before_switch_parentheses = true
-ij_java_space_before_synchronized_left_brace = true
-ij_java_space_before_synchronized_parentheses = true
-ij_java_space_before_try_left_brace = true
-ij_java_space_before_try_parentheses = true
-ij_java_space_before_type_parameter_list = false
-ij_java_space_before_while_keyword = true
-ij_java_space_before_while_left_brace = true
-ij_java_space_before_while_parentheses = true
-ij_java_space_inside_one_line_enum_braces = false
-ij_java_space_within_empty_array_initializer_braces = false
-ij_java_space_within_empty_method_call_parentheses = false
-ij_java_space_within_empty_method_parentheses = false
-ij_java_spaces_around_additive_operators = true
-ij_java_spaces_around_annotation_eq = true
-ij_java_spaces_around_assignment_operators = true
-ij_java_spaces_around_bitwise_operators = true
-ij_java_spaces_around_equality_operators = true
-ij_java_spaces_around_lambda_arrow = true
-ij_java_spaces_around_logical_operators = true
-ij_java_spaces_around_method_ref_dbl_colon = false
-ij_java_spaces_around_multiplicative_operators = true
-ij_java_spaces_around_relational_operators = true
-ij_java_spaces_around_shift_operators = true
-ij_java_spaces_around_type_bounds_in_type_parameters = true
-ij_java_spaces_around_unary_operator = false
-ij_java_spaces_within_angle_brackets = false
-ij_java_spaces_within_annotation_parentheses = false
-ij_java_spaces_within_array_initializer_braces = false
-ij_java_spaces_within_braces = false
-ij_java_spaces_within_brackets = false
-ij_java_spaces_within_cast_parentheses = false
-ij_java_spaces_within_catch_parentheses = false
-ij_java_spaces_within_deconstruction_list = false
-ij_java_spaces_within_for_parentheses = false
-ij_java_spaces_within_if_parentheses = false
-ij_java_spaces_within_method_call_parentheses = false
-ij_java_spaces_within_method_parentheses = false
-ij_java_spaces_within_parentheses = false
-ij_java_spaces_within_record_header = false
-ij_java_spaces_within_switch_parentheses = false
-ij_java_spaces_within_synchronized_parentheses = false
-ij_java_spaces_within_try_parentheses = false
-ij_java_spaces_within_while_parentheses = false
-ij_java_special_else_if_treatment = true
-ij_java_subclass_name_suffix = Impl
-ij_java_ternary_operation_signs_on_next_line = true
-ij_java_ternary_operation_wrap = normal
-ij_java_test_name_suffix = Test
-ij_java_throws_keyword_wrap = normal
-ij_java_throws_list_wrap = off
-ij_java_use_external_annotations = false
-ij_java_use_fq_class_names = false
-ij_java_use_relative_indents = false
-ij_java_use_single_class_imports = true
-ij_java_variable_annotation_wrap = off
-ij_java_visibility = public
-ij_java_while_brace_force = always
-ij_java_while_on_new_line = false
-ij_java_wrap_comments = true
-ij_java_wrap_first_method_in_call_chain = false
-ij_java_wrap_long_lines = false
-
-[*.less]
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_less_align_closing_brace_with_properties = false
-ij_less_blank_lines_around_nested_selector = 1
-ij_less_blank_lines_between_blocks = 1
-ij_less_block_comment_add_space = false
-ij_less_brace_placement = 0
-ij_less_enforce_quotes_on_format = false
-ij_less_hex_color_long_format = false
-ij_less_hex_color_lower_case = false
-ij_less_hex_color_short_format = false
-ij_less_hex_color_upper_case = false
-ij_less_keep_blank_lines_in_code = 2
-ij_less_keep_indents_on_empty_lines = false
-ij_less_keep_single_line_blocks = false
-ij_less_line_comment_add_space = false
-ij_less_line_comment_at_first_column = false
-ij_less_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow
-ij_less_space_after_colon = true
-ij_less_space_before_opening_brace = true
-ij_less_use_double_quotes = true
-ij_less_value_alignment = 0
-
-[*.proto]
-max_line_length = 80
-ij_continuation_indent_size = 2
-ij_protobuf_keep_blank_lines_in_code = 2
-ij_protobuf_keep_indents_on_empty_lines = false
-ij_protobuf_keep_line_breaks = true
-ij_protobuf_space_after_comma = true
-ij_protobuf_space_before_comma = false
-ij_protobuf_spaces_around_assignment_operators = true
-ij_protobuf_spaces_within_braces = false
-ij_protobuf_spaces_within_brackets = false
-
-[*.sass]
-ij_sass_align_closing_brace_with_properties = false
-ij_sass_blank_lines_around_nested_selector = 1
-ij_sass_blank_lines_between_blocks = 1
-ij_sass_brace_placement = 0
-ij_sass_enforce_quotes_on_format = false
-ij_sass_hex_color_long_format = false
-ij_sass_hex_color_lower_case = false
-ij_sass_hex_color_short_format = false
-ij_sass_hex_color_upper_case = false
-ij_sass_keep_blank_lines_in_code = 2
-ij_sass_keep_indents_on_empty_lines = false
-ij_sass_keep_single_line_blocks = false
-ij_sass_line_comment_add_space = false
-ij_sass_line_comment_at_first_column = false
-ij_sass_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow
-ij_sass_space_after_colon = true
-ij_sass_space_before_opening_brace = true
-ij_sass_use_double_quotes = true
-ij_sass_value_alignment = 0
-
-[*.scala]
-ij_continuation_indent_size = 2
-ij_scala_align_composite_pattern = true
-ij_scala_align_extends_with = 0
-ij_scala_align_group_field_declarations = false
-ij_scala_align_if_else = false
-ij_scala_align_in_columns_case_branch = false
-ij_scala_align_multiline_binary_operation = false
-ij_scala_align_multiline_chained_methods = false
-ij_scala_align_multiline_for = true
-ij_scala_align_multiline_parameters = true
-ij_scala_align_multiline_parameters_in_calls = false
-ij_scala_align_multiline_parenthesized_expression = false
-ij_scala_align_parameter_types_in_multiline_declarations = 0
-ij_scala_align_tuple_elements = false
-ij_scala_alternate_continuation_indent_for_params = 4
-ij_scala_binary_operation_wrap = off
-ij_scala_blank_lines_after_anonymous_class_header = 0
-ij_scala_blank_lines_after_class_header = 0
-ij_scala_blank_lines_after_imports = 1
-ij_scala_blank_lines_after_package = 1
-ij_scala_blank_lines_around_class = 1
-ij_scala_blank_lines_around_class_in_inner_scopes = 0
-ij_scala_blank_lines_around_field = 0
-ij_scala_blank_lines_around_field_in_inner_scopes = 0
-ij_scala_blank_lines_around_field_in_interface = 0
-ij_scala_blank_lines_around_method = 1
-ij_scala_blank_lines_around_method_in_inner_scopes = 1
-ij_scala_blank_lines_around_method_in_interface = 1
-ij_scala_blank_lines_before_class_end = 0
-ij_scala_blank_lines_before_imports = 1
-ij_scala_blank_lines_before_method_body = 0
-ij_scala_blank_lines_before_package = 0
-ij_scala_block_brace_style = end_of_line
-ij_scala_block_comment_add_space = false
-ij_scala_block_comment_at_first_column = true
-ij_scala_call_parameters_new_line_after_lparen = 0
-ij_scala_call_parameters_right_paren_on_new_line = false
-ij_scala_call_parameters_wrap = off
-ij_scala_case_clause_brace_force = never
-ij_scala_catch_on_new_line = false
-ij_scala_class_annotation_wrap = split_into_lines
-ij_scala_class_brace_style = end_of_line
-ij_scala_closure_brace_force = never
-ij_scala_do_not_align_block_expr_params = true
-ij_scala_do_not_indent_case_clause_body = false
-ij_scala_do_not_indent_tuples_close_brace = true
-ij_scala_do_while_brace_force = never
-ij_scala_else_on_new_line = false
-ij_scala_enable_scaladoc_formatting = true
-ij_scala_enforce_functional_syntax_for_unit = true
-ij_scala_extends_keyword_wrap = off
-ij_scala_extends_list_wrap = off
-ij_scala_field_annotation_wrap = split_into_lines
-ij_scala_finally_brace_force = never
-ij_scala_finally_on_new_line = false
-ij_scala_for_brace_force = never
-ij_scala_for_statement_wrap = off
-ij_scala_formatter = 0
-ij_scala_if_brace_force = never
-ij_scala_implicit_value_class_suffix = Ops
-ij_scala_indent_braced_function_args = true
-ij_scala_indent_case_from_switch = true
-ij_scala_indent_first_parameter = true
-ij_scala_indent_first_parameter_clause = false
-ij_scala_indent_type_arguments = true
-ij_scala_indent_type_parameters = true
-ij_scala_indent_yield_after_one_line_enumerators = true
-ij_scala_keep_blank_lines_before_right_brace = 2
-ij_scala_keep_blank_lines_in_code = 2
-ij_scala_keep_blank_lines_in_declarations = 2
-ij_scala_keep_comments_on_same_line = true
-ij_scala_keep_first_column_comment = false
-ij_scala_keep_indents_on_empty_lines = false
-ij_scala_keep_line_breaks = true
-ij_scala_keep_one_line_lambdas_in_arg_list = false
-ij_scala_keep_simple_blocks_in_one_line = false
-ij_scala_keep_simple_methods_in_one_line = false
-ij_scala_keep_xml_formatting = false
-ij_scala_line_comment_add_space = false
-ij_scala_line_comment_at_first_column = true
-ij_scala_method_annotation_wrap = split_into_lines
-ij_scala_method_brace_force = never
-ij_scala_method_brace_style = end_of_line
-ij_scala_method_call_chain_wrap = off
-ij_scala_method_parameters_new_line_after_left_paren = false
-ij_scala_method_parameters_right_paren_on_new_line = false
-ij_scala_method_parameters_wrap = off
-ij_scala_modifier_list_wrap = false
-ij_scala_multiline_string_align_dangling_closing_quotes = false
-ij_scala_multiline_string_closing_quotes_on_new_line = false
-ij_scala_multiline_string_insert_margin_on_enter = true
-ij_scala_multiline_string_margin_char = |
-ij_scala_multiline_string_margin_indent = 2
-ij_scala_multiline_string_opening_quotes_on_new_line = true
-ij_scala_multiline_string_process_margin_on_copy_paste = true
-ij_scala_new_line_after_case_clause_arrow_when_multiline_body = false
-ij_scala_newline_after_annotations = false
-ij_scala_not_continuation_indent_for_params = false
-ij_scala_parameter_annotation_wrap = off
-ij_scala_parentheses_expression_new_line_after_left_paren = false
-ij_scala_parentheses_expression_right_paren_on_new_line = false
-ij_scala_place_closure_parameters_on_new_line = false
-ij_scala_place_self_type_on_new_line = true
-ij_scala_prefer_parameters_wrap = false
-ij_scala_preserve_space_after_method_declaration_name = false
-ij_scala_reformat_on_compile = false
-ij_scala_replace_case_arrow_with_unicode_char = false
-ij_scala_replace_for_generator_arrow_with_unicode_char = false
-ij_scala_replace_lambda_with_greek_letter = false
-ij_scala_replace_map_arrow_with_unicode_char = false
-ij_scala_scalafmt_fallback_to_default_settings = false
-ij_scala_scalafmt_reformat_on_files_save = false
-ij_scala_scalafmt_show_invalid_code_warnings = true
-ij_scala_scalafmt_use_intellij_formatter_for_range_format = true
-ij_scala_sd_align_exception_comments = true
-ij_scala_sd_align_list_item_content = true
-ij_scala_sd_align_other_tags_comments = true
-ij_scala_sd_align_parameters_comments = true
-ij_scala_sd_align_return_comments = true
-ij_scala_sd_blank_line_after_parameters_comments = false
-ij_scala_sd_blank_line_after_return_comments = false
-ij_scala_sd_blank_line_before_parameters = false
-ij_scala_sd_blank_line_before_tags = true
-ij_scala_sd_blank_line_between_parameters = false
-ij_scala_sd_keep_blank_lines_between_tags = false
-ij_scala_sd_preserve_spaces_in_tags = false
-ij_scala_space_after_comma = true
-ij_scala_space_after_for_semicolon = true
-ij_scala_space_after_modifiers_constructor = false
-ij_scala_space_after_type_colon = true
-ij_scala_space_before_brace_method_call = true
-ij_scala_space_before_class_left_brace = true
-ij_scala_space_before_for_parentheses = true
-ij_scala_space_before_if_parentheses = true
-ij_scala_space_before_infix_like_method_parentheses = false
-ij_scala_space_before_infix_method_call_parentheses = false
-ij_scala_space_before_infix_operator_like_method_call_parentheses = true
-ij_scala_space_before_method_call_parentheses = false
-ij_scala_space_before_method_left_brace = true
-ij_scala_space_before_method_parentheses = false
-ij_scala_space_before_type_colon = false
-ij_scala_space_before_type_parameter_in_def_list = false
-ij_scala_space_before_type_parameter_leading_context_bound_colon = false
-ij_scala_space_before_type_parameter_leading_context_bound_colon_hk = true
-ij_scala_space_before_type_parameter_list = false
-ij_scala_space_before_type_parameter_rest_context_bound_colons = true
-ij_scala_space_before_while_parentheses = true
-ij_scala_space_inside_closure_braces = true
-ij_scala_space_inside_self_type_braces = true
-ij_scala_space_within_empty_method_call_parentheses = false
-ij_scala_spaces_around_at_in_patterns = false
-ij_scala_spaces_in_imports = false
-ij_scala_spaces_in_one_line_blocks = false
-ij_scala_spaces_within_brackets = false
-ij_scala_spaces_within_for_parentheses = false
-ij_scala_spaces_within_if_parentheses = false
-ij_scala_spaces_within_method_call_parentheses = false
-ij_scala_spaces_within_method_parentheses = false
-ij_scala_spaces_within_parentheses = false
-ij_scala_spaces_within_while_parentheses = false
-ij_scala_special_else_if_treatment = true
-ij_scala_trailing_comma_arg_list_enabled = true
-ij_scala_trailing_comma_import_selector_enabled = false
-ij_scala_trailing_comma_mode = trailing_comma_keep
-ij_scala_trailing_comma_params_enabled = true
-ij_scala_trailing_comma_pattern_arg_list_enabled = false
-ij_scala_trailing_comma_tuple_enabled = false
-ij_scala_trailing_comma_tuple_type_enabled = false
-ij_scala_trailing_comma_type_params_enabled = false
-ij_scala_try_brace_force = never
-ij_scala_type_annotation_exclude_constant = true
-ij_scala_type_annotation_exclude_in_dialect_sources = true
-ij_scala_type_annotation_exclude_in_test_sources = false
-ij_scala_type_annotation_exclude_member_of_anonymous_class = false
-ij_scala_type_annotation_exclude_member_of_private_class = false
-ij_scala_type_annotation_exclude_when_type_is_stable = true
-ij_scala_type_annotation_function_parameter = false
-ij_scala_type_annotation_implicit_modifier = true
-ij_scala_type_annotation_local_definition = false
-ij_scala_type_annotation_private_member = false
-ij_scala_type_annotation_protected_member = true
-ij_scala_type_annotation_public_member = true
-ij_scala_type_annotation_structural_type = true
-ij_scala_type_annotation_underscore_parameter = false
-ij_scala_type_annotation_unit_type = true
-ij_scala_use_alternate_continuation_indent_for_params = false
-ij_scala_use_scala3_indentation_based_syntax = true
-ij_scala_use_scaladoc2_formatting = false
-ij_scala_variable_annotation_wrap = off
-ij_scala_while_brace_force = never
-ij_scala_while_on_new_line = false
-ij_scala_wrap_before_with_keyword = false
-ij_scala_wrap_first_method_in_call_chain = false
-ij_scala_wrap_long_lines = false
-
-[*.scss]
-ij_scss_align_closing_brace_with_properties = false
-ij_scss_blank_lines_around_nested_selector = 1
-ij_scss_blank_lines_between_blocks = 1
-ij_scss_block_comment_add_space = false
-ij_scss_brace_placement = 0
-ij_scss_enforce_quotes_on_format = false
-ij_scss_hex_color_long_format = false
-ij_scss_hex_color_lower_case = false
-ij_scss_hex_color_short_format = false
-ij_scss_hex_color_upper_case = false
-ij_scss_keep_blank_lines_in_code = 2
-ij_scss_keep_indents_on_empty_lines = false
-ij_scss_keep_single_line_blocks = false
-ij_scss_line_comment_add_space = false
-ij_scss_line_comment_at_first_column = false
-ij_scss_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow
-ij_scss_space_after_colon = true
-ij_scss_space_before_opening_brace = true
-ij_scss_use_double_quotes = true
-ij_scss_value_alignment = 0
-
-[*.vue]
-ij_vue_indent_children_of_top_level = template
-ij_vue_interpolation_new_line_after_start_delimiter = true
-ij_vue_interpolation_new_line_before_end_delimiter = true
-ij_vue_interpolation_wrap = off
-ij_vue_keep_indents_on_empty_lines = false
-ij_vue_spaces_within_interpolation_expressions = true
-
-[.editorconfig]
-ij_editorconfig_align_group_field_declarations = false
-ij_editorconfig_space_after_colon = false
-ij_editorconfig_space_after_comma = true
-ij_editorconfig_space_before_colon = false
-ij_editorconfig_space_before_comma = false
-ij_editorconfig_spaces_around_assignment_operators = true
-
-[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.pom,*.rng,*.tld,*.wadl,*.wsdd,*.wsdl,*.xjb,*.xml,*.xsd,*.xsl,*.xslt,*.xul,phpunit.xml.dist}]
-ij_continuation_indent_size = 2
-ij_xml_align_attributes = false
-ij_xml_align_text = false
-ij_xml_attribute_wrap = normal
-ij_xml_block_comment_add_space = false
-ij_xml_block_comment_at_first_column = true
-ij_xml_keep_blank_lines = 2
-ij_xml_keep_indents_on_empty_lines = false
-ij_xml_keep_line_breaks = true
-ij_xml_keep_line_breaks_in_text = true
-ij_xml_keep_whitespaces = false
-ij_xml_keep_whitespaces_around_cdata = preserve
-ij_xml_keep_whitespaces_inside_cdata = false
-ij_xml_line_comment_at_first_column = true
-ij_xml_space_after_tag_name = false
-ij_xml_space_around_equals_in_attribute = false
-ij_xml_space_inside_empty_tag = false
-ij_xml_text_wrap = normal
-ij_xml_use_custom_settings = true
-
-[{*.ats,*.cts,*.mts,*.ts}]
-ij_typescript_align_imports = false
-ij_typescript_align_multiline_array_initializer_expression = false
-ij_typescript_align_multiline_binary_operation = false
-ij_typescript_align_multiline_chained_methods = false
-ij_typescript_align_multiline_extends_list = false
-ij_typescript_align_multiline_for = true
-ij_typescript_align_multiline_parameters = true
-ij_typescript_align_multiline_parameters_in_calls = false
-ij_typescript_align_multiline_ternary_operation = false
-ij_typescript_align_object_properties = 0
-ij_typescript_align_union_types = false
-ij_typescript_align_var_statements = 0
-ij_typescript_array_initializer_new_line_after_left_brace = false
-ij_typescript_array_initializer_right_brace_on_new_line = false
-ij_typescript_array_initializer_wrap = off
-ij_typescript_assignment_wrap = off
-ij_typescript_binary_operation_sign_on_next_line = false
-ij_typescript_binary_operation_wrap = off
-ij_typescript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/**
-ij_typescript_blank_lines_after_imports = 1
-ij_typescript_blank_lines_around_class = 1
-ij_typescript_blank_lines_around_field = 0
-ij_typescript_blank_lines_around_field_in_interface = 0
-ij_typescript_blank_lines_around_function = 1
-ij_typescript_blank_lines_around_method = 1
-ij_typescript_blank_lines_around_method_in_interface = 1
-ij_typescript_block_brace_style = end_of_line
-ij_typescript_block_comment_add_space = false
-ij_typescript_block_comment_at_first_column = true
-ij_typescript_call_parameters_new_line_after_left_paren = false
-ij_typescript_call_parameters_right_paren_on_new_line = false
-ij_typescript_call_parameters_wrap = off
-ij_typescript_catch_on_new_line = false
-ij_typescript_chained_call_dot_on_new_line = true
-ij_typescript_class_brace_style = end_of_line
-ij_typescript_comma_on_new_line = false
-ij_typescript_do_while_brace_force = never
-ij_typescript_else_on_new_line = false
-ij_typescript_enforce_trailing_comma = keep
-ij_typescript_enum_constants_wrap = on_every_item
-ij_typescript_extends_keyword_wrap = off
-ij_typescript_extends_list_wrap = off
-ij_typescript_field_prefix = _
-ij_typescript_file_name_style = relaxed
-ij_typescript_finally_on_new_line = false
-ij_typescript_for_brace_force = never
-ij_typescript_for_statement_new_line_after_left_paren = false
-ij_typescript_for_statement_right_paren_on_new_line = false
-ij_typescript_for_statement_wrap = off
-ij_typescript_force_quote_style = false
-ij_typescript_force_semicolon_style = false
-ij_typescript_function_expression_brace_style = end_of_line
-ij_typescript_if_brace_force = never
-ij_typescript_import_merge_members = global
-ij_typescript_import_prefer_absolute_path = global
-ij_typescript_import_sort_members = true
-ij_typescript_import_sort_module_name = false
-ij_typescript_import_use_node_resolution = true
-ij_typescript_imports_wrap = on_every_item
-ij_typescript_indent_case_from_switch = true
-ij_typescript_indent_chained_calls = false
-ij_typescript_indent_package_children = 0
-ij_typescript_jsdoc_include_types = false
-ij_typescript_jsx_attribute_value = braces
-ij_typescript_keep_blank_lines_in_code = 2
-ij_typescript_keep_first_column_comment = true
-ij_typescript_keep_indents_on_empty_lines = false
-ij_typescript_keep_line_breaks = true
-ij_typescript_keep_simple_blocks_in_one_line = false
-ij_typescript_keep_simple_methods_in_one_line = false
-ij_typescript_line_comment_add_space = true
-ij_typescript_line_comment_at_first_column = false
-ij_typescript_method_brace_style = end_of_line
-ij_typescript_method_call_chain_wrap = off
-ij_typescript_method_parameters_new_line_after_left_paren = false
-ij_typescript_method_parameters_right_paren_on_new_line = false
-ij_typescript_method_parameters_wrap = off
-ij_typescript_object_literal_wrap = on_every_item
-ij_typescript_parentheses_expression_new_line_after_left_paren = false
-ij_typescript_parentheses_expression_right_paren_on_new_line = false
-ij_typescript_place_assignment_sign_on_next_line = false
-ij_typescript_prefer_as_type_cast = false
-ij_typescript_prefer_explicit_types_function_expression_returns = false
-ij_typescript_prefer_explicit_types_function_returns = false
-ij_typescript_prefer_explicit_types_vars_fields = false
-ij_typescript_prefer_parameters_wrap = false
-ij_typescript_reformat_c_style_comments = false
-ij_typescript_space_after_colon = true
-ij_typescript_space_after_comma = true
-ij_typescript_space_after_dots_in_rest_parameter = false
-ij_typescript_space_after_generator_mult = true
-ij_typescript_space_after_property_colon = true
-ij_typescript_space_after_quest = true
-ij_typescript_space_after_type_colon = true
-ij_typescript_space_after_unary_not = false
-ij_typescript_space_before_async_arrow_lparen = true
-ij_typescript_space_before_catch_keyword = true
-ij_typescript_space_before_catch_left_brace = true
-ij_typescript_space_before_catch_parentheses = true
-ij_typescript_space_before_class_lbrace = true
-ij_typescript_space_before_class_left_brace = true
-ij_typescript_space_before_colon = true
-ij_typescript_space_before_comma = false
-ij_typescript_space_before_do_left_brace = true
-ij_typescript_space_before_else_keyword = true
-ij_typescript_space_before_else_left_brace = true
-ij_typescript_space_before_finally_keyword = true
-ij_typescript_space_before_finally_left_brace = true
-ij_typescript_space_before_for_left_brace = true
-ij_typescript_space_before_for_parentheses = true
-ij_typescript_space_before_for_semicolon = false
-ij_typescript_space_before_function_left_parenth = true
-ij_typescript_space_before_generator_mult = false
-ij_typescript_space_before_if_left_brace = true
-ij_typescript_space_before_if_parentheses = true
-ij_typescript_space_before_method_call_parentheses = false
-ij_typescript_space_before_method_left_brace = true
-ij_typescript_space_before_method_parentheses = false
-ij_typescript_space_before_property_colon = false
-ij_typescript_space_before_quest = true
-ij_typescript_space_before_switch_left_brace = true
-ij_typescript_space_before_switch_parentheses = true
-ij_typescript_space_before_try_left_brace = true
-ij_typescript_space_before_type_colon = false
-ij_typescript_space_before_unary_not = false
-ij_typescript_space_before_while_keyword = true
-ij_typescript_space_before_while_left_brace = true
-ij_typescript_space_before_while_parentheses = true
-ij_typescript_spaces_around_additive_operators = true
-ij_typescript_spaces_around_arrow_function_operator = true
-ij_typescript_spaces_around_assignment_operators = true
-ij_typescript_spaces_around_bitwise_operators = true
-ij_typescript_spaces_around_equality_operators = true
-ij_typescript_spaces_around_logical_operators = true
-ij_typescript_spaces_around_multiplicative_operators = true
-ij_typescript_spaces_around_relational_operators = true
-ij_typescript_spaces_around_shift_operators = true
-ij_typescript_spaces_around_unary_operator = false
-ij_typescript_spaces_within_array_initializer_brackets = false
-ij_typescript_spaces_within_brackets = false
-ij_typescript_spaces_within_catch_parentheses = false
-ij_typescript_spaces_within_for_parentheses = false
-ij_typescript_spaces_within_if_parentheses = false
-ij_typescript_spaces_within_imports = false
-ij_typescript_spaces_within_interpolation_expressions = false
-ij_typescript_spaces_within_method_call_parentheses = false
-ij_typescript_spaces_within_method_parentheses = false
-ij_typescript_spaces_within_object_literal_braces = false
-ij_typescript_spaces_within_object_type_braces = true
-ij_typescript_spaces_within_parentheses = false
-ij_typescript_spaces_within_switch_parentheses = false
-ij_typescript_spaces_within_type_assertion = false
-ij_typescript_spaces_within_union_types = true
-ij_typescript_spaces_within_while_parentheses = false
-ij_typescript_special_else_if_treatment = true
-ij_typescript_ternary_operation_signs_on_next_line = false
-ij_typescript_ternary_operation_wrap = off
-ij_typescript_union_types_wrap = on_every_item
-ij_typescript_use_chained_calls_group_indents = false
-ij_typescript_use_double_quotes = true
-ij_typescript_use_explicit_js_extension = auto
-ij_typescript_use_path_mapping = always
-ij_typescript_use_public_modifier = false
-ij_typescript_use_semicolon_after_statement = true
-ij_typescript_var_declaration_wrap = normal
-ij_typescript_while_brace_force = never
-ij_typescript_while_on_new_line = false
-ij_typescript_wrap_comments = false
-
-[{*.bash,*.sh,*.zsh}]
-ij_shell_binary_ops_start_line = false
-ij_shell_keep_column_alignment_padding = false
-ij_shell_minify_program = false
-ij_shell_redirect_followed_by_space = false
-ij_shell_switch_cases_indented = false
-ij_shell_use_unix_line_separator = true
-
-[{*.cjs,*.js}]
-max_line_length = 80
-ij_javascript_align_imports = false
-ij_javascript_align_multiline_array_initializer_expression = false
-ij_javascript_align_multiline_binary_operation = false
-ij_javascript_align_multiline_chained_methods = false
-ij_javascript_align_multiline_extends_list = false
-ij_javascript_align_multiline_for = false
-ij_javascript_align_multiline_parameters = false
-ij_javascript_align_multiline_parameters_in_calls = false
-ij_javascript_align_multiline_ternary_operation = false
-ij_javascript_align_object_properties = 0
-ij_javascript_align_union_types = false
-ij_javascript_align_var_statements = 0
-ij_javascript_array_initializer_new_line_after_left_brace = false
-ij_javascript_array_initializer_right_brace_on_new_line = false
-ij_javascript_array_initializer_wrap = normal
-ij_javascript_assignment_wrap = off
-ij_javascript_binary_operation_sign_on_next_line = true
-ij_javascript_binary_operation_wrap = normal
-ij_javascript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/**
-ij_javascript_blank_lines_after_imports = 1
-ij_javascript_blank_lines_around_class = 1
-ij_javascript_blank_lines_around_field = 0
-ij_javascript_blank_lines_around_function = 1
-ij_javascript_blank_lines_around_method = 1
-ij_javascript_block_brace_style = end_of_line
-ij_javascript_block_comment_add_space = false
-ij_javascript_block_comment_at_first_column = true
-ij_javascript_call_parameters_new_line_after_left_paren = false
-ij_javascript_call_parameters_right_paren_on_new_line = false
-ij_javascript_call_parameters_wrap = normal
-ij_javascript_catch_on_new_line = false
-ij_javascript_chained_call_dot_on_new_line = true
-ij_javascript_class_brace_style = end_of_line
-ij_javascript_comma_on_new_line = false
-ij_javascript_do_while_brace_force = always
-ij_javascript_else_on_new_line = false
-ij_javascript_enforce_trailing_comma = keep
-ij_javascript_extends_keyword_wrap = off
-ij_javascript_extends_list_wrap = off
-ij_javascript_field_prefix = _
-ij_javascript_file_name_style = relaxed
-ij_javascript_finally_on_new_line = false
-ij_javascript_for_brace_force = always
-ij_javascript_for_statement_new_line_after_left_paren = false
-ij_javascript_for_statement_right_paren_on_new_line = false
-ij_javascript_for_statement_wrap = normal
-ij_javascript_force_quote_style = false
-ij_javascript_force_semicolon_style = false
-ij_javascript_function_expression_brace_style = end_of_line
-ij_javascript_if_brace_force = always
-ij_javascript_import_merge_members = global
-ij_javascript_import_prefer_absolute_path = global
-ij_javascript_import_sort_members = true
-ij_javascript_import_sort_module_name = false
-ij_javascript_import_use_node_resolution = true
-ij_javascript_imports_wrap = on_every_item
-ij_javascript_indent_case_from_switch = true
-ij_javascript_indent_chained_calls = false
-ij_javascript_indent_package_children = 0
-ij_javascript_jsx_attribute_value = braces
-ij_javascript_keep_blank_lines_in_code = 1
-ij_javascript_keep_first_column_comment = true
-ij_javascript_keep_indents_on_empty_lines = false
-ij_javascript_keep_line_breaks = true
-ij_javascript_keep_simple_blocks_in_one_line = false
-ij_javascript_keep_simple_methods_in_one_line = false
-ij_javascript_line_comment_add_space = true
-ij_javascript_line_comment_at_first_column = false
-ij_javascript_method_brace_style = end_of_line
-ij_javascript_method_call_chain_wrap = off
-ij_javascript_method_parameters_new_line_after_left_paren = false
-ij_javascript_method_parameters_right_paren_on_new_line = false
-ij_javascript_method_parameters_wrap = normal
-ij_javascript_object_literal_wrap = on_every_item
-ij_javascript_parentheses_expression_new_line_after_left_paren = false
-ij_javascript_parentheses_expression_right_paren_on_new_line = false
-ij_javascript_place_assignment_sign_on_next_line = false
-ij_javascript_prefer_as_type_cast = false
-ij_javascript_prefer_explicit_types_function_expression_returns = false
-ij_javascript_prefer_explicit_types_function_returns = false
-ij_javascript_prefer_explicit_types_vars_fields = false
-ij_javascript_prefer_parameters_wrap = false
-ij_javascript_reformat_c_style_comments = false
-ij_javascript_space_after_colon = true
-ij_javascript_space_after_comma = true
-ij_javascript_space_after_dots_in_rest_parameter = false
-ij_javascript_space_after_generator_mult = true
-ij_javascript_space_after_property_colon = true
-ij_javascript_space_after_quest = true
-ij_javascript_space_after_type_colon = true
-ij_javascript_space_after_unary_not = false
-ij_javascript_space_before_async_arrow_lparen = true
-ij_javascript_space_before_catch_keyword = true
-ij_javascript_space_before_catch_left_brace = true
-ij_javascript_space_before_catch_parentheses = true
-ij_javascript_space_before_class_lbrace = true
-ij_javascript_space_before_class_left_brace = true
-ij_javascript_space_before_colon = true
-ij_javascript_space_before_comma = false
-ij_javascript_space_before_do_left_brace = true
-ij_javascript_space_before_else_keyword = true
-ij_javascript_space_before_else_left_brace = true
-ij_javascript_space_before_finally_keyword = true
-ij_javascript_space_before_finally_left_brace = true
-ij_javascript_space_before_for_left_brace = true
-ij_javascript_space_before_for_parentheses = true
-ij_javascript_space_before_for_semicolon = false
-ij_javascript_space_before_function_left_parenth = true
-ij_javascript_space_before_generator_mult = false
-ij_javascript_space_before_if_left_brace = true
-ij_javascript_space_before_if_parentheses = true
-ij_javascript_space_before_method_call_parentheses = false
-ij_javascript_space_before_method_left_brace = true
-ij_javascript_space_before_method_parentheses = false
-ij_javascript_space_before_property_colon = false
-ij_javascript_space_before_quest = true
-ij_javascript_space_before_switch_left_brace = true
-ij_javascript_space_before_switch_parentheses = true
-ij_javascript_space_before_try_left_brace = true
-ij_javascript_space_before_type_colon = false
-ij_javascript_space_before_unary_not = false
-ij_javascript_space_before_while_keyword = true
-ij_javascript_space_before_while_left_brace = true
-ij_javascript_space_before_while_parentheses = true
-ij_javascript_spaces_around_additive_operators = true
-ij_javascript_spaces_around_arrow_function_operator = true
-ij_javascript_spaces_around_assignment_operators = true
-ij_javascript_spaces_around_bitwise_operators = true
-ij_javascript_spaces_around_equality_operators = true
-ij_javascript_spaces_around_logical_operators = true
-ij_javascript_spaces_around_multiplicative_operators = true
-ij_javascript_spaces_around_relational_operators = true
-ij_javascript_spaces_around_shift_operators = true
-ij_javascript_spaces_around_unary_operator = false
-ij_javascript_spaces_within_array_initializer_brackets = false
-ij_javascript_spaces_within_brackets = false
-ij_javascript_spaces_within_catch_parentheses = false
-ij_javascript_spaces_within_for_parentheses = false
-ij_javascript_spaces_within_if_parentheses = false
-ij_javascript_spaces_within_imports = false
-ij_javascript_spaces_within_interpolation_expressions = false
-ij_javascript_spaces_within_method_call_parentheses = false
-ij_javascript_spaces_within_method_parentheses = false
-ij_javascript_spaces_within_object_literal_braces = false
-ij_javascript_spaces_within_object_type_braces = true
-ij_javascript_spaces_within_parentheses = false
-ij_javascript_spaces_within_switch_parentheses = false
-ij_javascript_spaces_within_type_assertion = false
-ij_javascript_spaces_within_union_types = true
-ij_javascript_spaces_within_while_parentheses = false
-ij_javascript_special_else_if_treatment = true
-ij_javascript_ternary_operation_signs_on_next_line = true
-ij_javascript_ternary_operation_wrap = normal
-ij_javascript_union_types_wrap = on_every_item
-ij_javascript_use_chained_calls_group_indents = false
-ij_javascript_use_double_quotes = true
-ij_javascript_use_explicit_js_extension = auto
-ij_javascript_use_path_mapping = always
-ij_javascript_use_public_modifier = false
-ij_javascript_use_semicolon_after_statement = true
-ij_javascript_var_declaration_wrap = normal
-ij_javascript_while_brace_force = always
-ij_javascript_while_on_new_line = false
-ij_javascript_wrap_comments = false
-
-[{*.ctp,*.hphp,*.inc,*.module,*.php4,*.php5,*.phtml}]
-indent_size = 4
-tab_width = 4
-ij_php_align_assignments = false
-ij_php_align_class_constants = false
-ij_php_align_enum_cases = false
-ij_php_align_group_field_declarations = false
-ij_php_align_inline_comments = false
-ij_php_align_key_value_pairs = false
-ij_php_align_match_arm_bodies = false
-ij_php_align_multiline_array_initializer_expression = false
-ij_php_align_multiline_binary_operation = false
-ij_php_align_multiline_chained_methods = false
-ij_php_align_multiline_extends_list = false
-ij_php_align_multiline_for = true
-ij_php_align_multiline_parameters = true
-ij_php_align_multiline_parameters_in_calls = false
-ij_php_align_multiline_ternary_operation = false
-ij_php_align_named_arguments = false
-ij_php_align_phpdoc_comments = false
-ij_php_align_phpdoc_param_names = false
-ij_php_anonymous_brace_style = end_of_line
-ij_php_api_weight = 28
-ij_php_array_initializer_new_line_after_left_brace = false
-ij_php_array_initializer_right_brace_on_new_line = false
-ij_php_array_initializer_wrap = off
-ij_php_assignment_wrap = off
-ij_php_attributes_wrap = off
-ij_php_author_weight = 28
-ij_php_binary_operation_sign_on_next_line = false
-ij_php_binary_operation_wrap = off
-ij_php_blank_lines_after_class_header = 0
-ij_php_blank_lines_after_function = 1
-ij_php_blank_lines_after_imports = 1
-ij_php_blank_lines_after_opening_tag = 0
-ij_php_blank_lines_after_package = 0
-ij_php_blank_lines_around_class = 1
-ij_php_blank_lines_around_constants = 0
-ij_php_blank_lines_around_enum_cases = 0
-ij_php_blank_lines_around_field = 0
-ij_php_blank_lines_around_method = 1
-ij_php_blank_lines_before_class_end = 0
-ij_php_blank_lines_before_imports = 1
-ij_php_blank_lines_before_method_body = 0
-ij_php_blank_lines_before_package = 1
-ij_php_blank_lines_before_return_statement = 0
-ij_php_blank_lines_between_imports = 0
-ij_php_block_brace_style = end_of_line
-ij_php_call_parameters_new_line_after_left_paren = false
-ij_php_call_parameters_right_paren_on_new_line = false
-ij_php_call_parameters_wrap = off
-ij_php_catch_on_new_line = false
-ij_php_category_weight = 28
-ij_php_class_brace_style = next_line
-ij_php_comma_after_last_argument = false
-ij_php_comma_after_last_array_element = false
-ij_php_comma_after_last_closure_use_var = false
-ij_php_comma_after_last_match_arm = false
-ij_php_comma_after_last_parameter = false
-ij_php_concat_spaces = true
-ij_php_copyright_weight = 28
-ij_php_deprecated_weight = 28
-ij_php_do_while_brace_force = never
-ij_php_else_if_style = as_is
-ij_php_else_on_new_line = false
-ij_php_example_weight = 28
-ij_php_extends_keyword_wrap = off
-ij_php_extends_list_wrap = off
-ij_php_fields_default_visibility = private
-ij_php_filesource_weight = 28
-ij_php_finally_on_new_line = false
-ij_php_for_brace_force = never
-ij_php_for_statement_new_line_after_left_paren = false
-ij_php_for_statement_right_paren_on_new_line = false
-ij_php_for_statement_wrap = off
-ij_php_force_empty_methods_in_one_line = false
-ij_php_force_short_declaration_array_style = false
-ij_php_getters_setters_naming_style = camel_case
-ij_php_getters_setters_order_style = getters_first
-ij_php_global_weight = 28
-ij_php_group_use_wrap = on_every_item
-ij_php_if_brace_force = never
-ij_php_if_lparen_on_next_line = false
-ij_php_if_rparen_on_next_line = false
-ij_php_ignore_weight = 28
-ij_php_import_sorting = alphabetic
-ij_php_indent_break_from_case = true
-ij_php_indent_case_from_switch = true
-ij_php_indent_code_in_php_tags = false
-ij_php_internal_weight = 28
-ij_php_keep_blank_lines_after_lbrace = 2
-ij_php_keep_blank_lines_before_right_brace = 2
-ij_php_keep_blank_lines_in_code = 2
-ij_php_keep_blank_lines_in_declarations = 2
-ij_php_keep_control_statement_in_one_line = true
-ij_php_keep_first_column_comment = true
-ij_php_keep_indents_on_empty_lines = false
-ij_php_keep_line_breaks = true
-ij_php_keep_rparen_and_lbrace_on_one_line = false
-ij_php_keep_simple_classes_in_one_line = false
-ij_php_keep_simple_methods_in_one_line = false
-ij_php_lambda_brace_style = end_of_line
-ij_php_license_weight = 28
-ij_php_line_comment_add_space = false
-ij_php_line_comment_at_first_column = true
-ij_php_link_weight = 28
-ij_php_lower_case_boolean_const = false
-ij_php_lower_case_keywords = true
-ij_php_lower_case_null_const = false
-ij_php_method_brace_style = next_line
-ij_php_method_call_chain_wrap = off
-ij_php_method_parameters_new_line_after_left_paren = false
-ij_php_method_parameters_right_paren_on_new_line = false
-ij_php_method_parameters_wrap = off
-ij_php_method_weight = 28
-ij_php_modifier_list_wrap = false
-ij_php_multiline_chained_calls_semicolon_on_new_line = false
-ij_php_namespace_brace_style = 1
-ij_php_new_line_after_php_opening_tag = false
-ij_php_null_type_position = in_the_end
-ij_php_package_weight = 28
-ij_php_param_weight = 0
-ij_php_parameters_attributes_wrap = off
-ij_php_parentheses_expression_new_line_after_left_paren = false
-ij_php_parentheses_expression_right_paren_on_new_line = false
-ij_php_phpdoc_blank_line_before_tags = false
-ij_php_phpdoc_blank_lines_around_parameters = false
-ij_php_phpdoc_keep_blank_lines = true
-ij_php_phpdoc_param_spaces_between_name_and_description = 1
-ij_php_phpdoc_param_spaces_between_tag_and_type = 1
-ij_php_phpdoc_param_spaces_between_type_and_name = 1
-ij_php_phpdoc_use_fqcn = false
-ij_php_phpdoc_wrap_long_lines = false
-ij_php_place_assignment_sign_on_next_line = false
-ij_php_place_parens_for_constructor = 0
-ij_php_property_read_weight = 28
-ij_php_property_weight = 28
-ij_php_property_write_weight = 28
-ij_php_return_type_on_new_line = false
-ij_php_return_weight = 1
-ij_php_see_weight = 28
-ij_php_since_weight = 28
-ij_php_sort_phpdoc_elements = true
-ij_php_space_after_colon = true
-ij_php_space_after_colon_in_enum_backed_type = true
-ij_php_space_after_colon_in_named_argument = true
-ij_php_space_after_colon_in_return_type = true
-ij_php_space_after_comma = true
-ij_php_space_after_for_semicolon = true
-ij_php_space_after_quest = true
-ij_php_space_after_type_cast = false
-ij_php_space_after_unary_not = false
-ij_php_space_before_array_initializer_left_brace = false
-ij_php_space_before_catch_keyword = true
-ij_php_space_before_catch_left_brace = true
-ij_php_space_before_catch_parentheses = true
-ij_php_space_before_class_left_brace = true
-ij_php_space_before_closure_left_parenthesis = true
-ij_php_space_before_colon = true
-ij_php_space_before_colon_in_enum_backed_type = false
-ij_php_space_before_colon_in_named_argument = false
-ij_php_space_before_colon_in_return_type = false
-ij_php_space_before_comma = false
-ij_php_space_before_do_left_brace = true
-ij_php_space_before_else_keyword = true
-ij_php_space_before_else_left_brace = true
-ij_php_space_before_finally_keyword = true
-ij_php_space_before_finally_left_brace = true
-ij_php_space_before_for_left_brace = true
-ij_php_space_before_for_parentheses = true
-ij_php_space_before_for_semicolon = false
-ij_php_space_before_if_left_brace = true
-ij_php_space_before_if_parentheses = true
-ij_php_space_before_method_call_parentheses = false
-ij_php_space_before_method_left_brace = true
-ij_php_space_before_method_parentheses = false
-ij_php_space_before_quest = true
-ij_php_space_before_short_closure_left_parenthesis = false
-ij_php_space_before_switch_left_brace = true
-ij_php_space_before_switch_parentheses = true
-ij_php_space_before_try_left_brace = true
-ij_php_space_before_unary_not = false
-ij_php_space_before_while_keyword = true
-ij_php_space_before_while_left_brace = true
-ij_php_space_before_while_parentheses = true
-ij_php_space_between_ternary_quest_and_colon = false
-ij_php_spaces_around_additive_operators = true
-ij_php_spaces_around_arrow = false
-ij_php_spaces_around_assignment_in_declare = false
-ij_php_spaces_around_assignment_operators = true
-ij_php_spaces_around_bitwise_operators = true
-ij_php_spaces_around_equality_operators = true
-ij_php_spaces_around_logical_operators = true
-ij_php_spaces_around_multiplicative_operators = true
-ij_php_spaces_around_null_coalesce_operator = true
-ij_php_spaces_around_pipe_in_union_type = false
-ij_php_spaces_around_relational_operators = true
-ij_php_spaces_around_shift_operators = true
-ij_php_spaces_around_unary_operator = false
-ij_php_spaces_around_var_within_brackets = false
-ij_php_spaces_within_array_initializer_braces = false
-ij_php_spaces_within_brackets = false
-ij_php_spaces_within_catch_parentheses = false
-ij_php_spaces_within_for_parentheses = false
-ij_php_spaces_within_if_parentheses = false
-ij_php_spaces_within_method_call_parentheses = false
-ij_php_spaces_within_method_parentheses = false
-ij_php_spaces_within_parentheses = false
-ij_php_spaces_within_short_echo_tags = true
-ij_php_spaces_within_switch_parentheses = false
-ij_php_spaces_within_while_parentheses = false
-ij_php_special_else_if_treatment = false
-ij_php_subpackage_weight = 28
-ij_php_ternary_operation_signs_on_next_line = false
-ij_php_ternary_operation_wrap = off
-ij_php_throws_weight = 2
-ij_php_todo_weight = 28
-ij_php_treat_multiline_arrays_and_lambdas_multiline = false
-ij_php_unknown_tag_weight = 28
-ij_php_upper_case_boolean_const = false
-ij_php_upper_case_null_const = false
-ij_php_uses_weight = 28
-ij_php_var_weight = 28
-ij_php_variable_naming_style = mixed
-ij_php_version_weight = 28
-ij_php_while_brace_force = never
-ij_php_while_on_new_line = false
-
-[{*.ft,*.vm,*.vsl}]
-indent_size = 4
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_vtl_keep_indents_on_empty_lines = false
-
-[{*.gant,*.groovy,*.gy}]
-indent_size = 4
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_groovy_align_group_field_declarations = false
-ij_groovy_align_multiline_array_initializer_expression = false
-ij_groovy_align_multiline_assignment = false
-ij_groovy_align_multiline_binary_operation = false
-ij_groovy_align_multiline_chained_methods = false
-ij_groovy_align_multiline_extends_list = false
-ij_groovy_align_multiline_for = true
-ij_groovy_align_multiline_list_or_map = true
-ij_groovy_align_multiline_method_parentheses = false
-ij_groovy_align_multiline_parameters = true
-ij_groovy_align_multiline_parameters_in_calls = false
-ij_groovy_align_multiline_resources = true
-ij_groovy_align_multiline_ternary_operation = false
-ij_groovy_align_multiline_throws_list = false
-ij_groovy_align_named_args_in_map = true
-ij_groovy_align_throws_keyword = false
-ij_groovy_array_initializer_new_line_after_left_brace = false
-ij_groovy_array_initializer_right_brace_on_new_line = false
-ij_groovy_array_initializer_wrap = off
-ij_groovy_assert_statement_wrap = off
-ij_groovy_assignment_wrap = off
-ij_groovy_binary_operation_wrap = off
-ij_groovy_blank_lines_after_class_header = 0
-ij_groovy_blank_lines_after_imports = 1
-ij_groovy_blank_lines_after_package = 1
-ij_groovy_blank_lines_around_class = 1
-ij_groovy_blank_lines_around_field = 0
-ij_groovy_blank_lines_around_field_in_interface = 0
-ij_groovy_blank_lines_around_method = 1
-ij_groovy_blank_lines_around_method_in_interface = 1
-ij_groovy_blank_lines_before_imports = 1
-ij_groovy_blank_lines_before_method_body = 0
-ij_groovy_blank_lines_before_package = 0
-ij_groovy_block_brace_style = end_of_line
-ij_groovy_block_comment_add_space = false
-ij_groovy_block_comment_at_first_column = true
-ij_groovy_call_parameters_new_line_after_left_paren = false
-ij_groovy_call_parameters_right_paren_on_new_line = false
-ij_groovy_call_parameters_wrap = off
-ij_groovy_catch_on_new_line = false
-ij_groovy_class_annotation_wrap = split_into_lines
-ij_groovy_class_brace_style = end_of_line
-ij_groovy_class_count_to_use_import_on_demand = 5
-ij_groovy_do_while_brace_force = never
-ij_groovy_else_on_new_line = false
-ij_groovy_enable_groovydoc_formatting = true
-ij_groovy_enum_constants_wrap = off
-ij_groovy_extends_keyword_wrap = off
-ij_groovy_extends_list_wrap = off
-ij_groovy_field_annotation_wrap = split_into_lines
-ij_groovy_finally_on_new_line = false
-ij_groovy_for_brace_force = never
-ij_groovy_for_statement_new_line_after_left_paren = false
-ij_groovy_for_statement_right_paren_on_new_line = false
-ij_groovy_for_statement_wrap = off
-ij_groovy_ginq_general_clause_wrap_policy = 2
-ij_groovy_ginq_having_wrap_policy = 1
-ij_groovy_ginq_indent_having_clause = true
-ij_groovy_ginq_indent_on_clause = true
-ij_groovy_ginq_on_wrap_policy = 1
-ij_groovy_ginq_space_after_keyword = true
-ij_groovy_if_brace_force = never
-ij_groovy_import_annotation_wrap = 2
-ij_groovy_imports_layout = *, |, javax.**, java.**, |, $*
-ij_groovy_indent_case_from_switch = true
-ij_groovy_indent_label_blocks = true
-ij_groovy_insert_inner_class_imports = false
-ij_groovy_keep_blank_lines_before_right_brace = 2
-ij_groovy_keep_blank_lines_in_code = 2
-ij_groovy_keep_blank_lines_in_declarations = 2
-ij_groovy_keep_control_statement_in_one_line = true
-ij_groovy_keep_first_column_comment = true
-ij_groovy_keep_indents_on_empty_lines = false
-ij_groovy_keep_line_breaks = true
-ij_groovy_keep_multiple_expressions_in_one_line = false
-ij_groovy_keep_simple_blocks_in_one_line = false
-ij_groovy_keep_simple_classes_in_one_line = true
-ij_groovy_keep_simple_lambdas_in_one_line = true
-ij_groovy_keep_simple_methods_in_one_line = true
-ij_groovy_label_indent_absolute = false
-ij_groovy_label_indent_size = 0
-ij_groovy_lambda_brace_style = end_of_line
-ij_groovy_layout_static_imports_separately = true
-ij_groovy_line_comment_add_space = false
-ij_groovy_line_comment_add_space_on_reformat = false
-ij_groovy_line_comment_at_first_column = true
-ij_groovy_method_annotation_wrap = split_into_lines
-ij_groovy_method_brace_style = end_of_line
-ij_groovy_method_call_chain_wrap = off
-ij_groovy_method_parameters_new_line_after_left_paren = false
-ij_groovy_method_parameters_right_paren_on_new_line = false
-ij_groovy_method_parameters_wrap = off
-ij_groovy_modifier_list_wrap = false
-ij_groovy_names_count_to_use_import_on_demand = 3
-ij_groovy_packages_to_use_import_on_demand = java.awt.*, javax.swing.*
-ij_groovy_parameter_annotation_wrap = off
-ij_groovy_parentheses_expression_new_line_after_left_paren = false
-ij_groovy_parentheses_expression_right_paren_on_new_line = false
-ij_groovy_prefer_parameters_wrap = false
-ij_groovy_resource_list_new_line_after_left_paren = false
-ij_groovy_resource_list_right_paren_on_new_line = false
-ij_groovy_resource_list_wrap = off
-ij_groovy_space_after_assert_separator = true
-ij_groovy_space_after_colon = true
-ij_groovy_space_after_comma = true
-ij_groovy_space_after_comma_in_type_arguments = true
-ij_groovy_space_after_for_semicolon = true
-ij_groovy_space_after_quest = true
-ij_groovy_space_after_type_cast = true
-ij_groovy_space_before_annotation_parameter_list = false
-ij_groovy_space_before_array_initializer_left_brace = false
-ij_groovy_space_before_assert_separator = false
-ij_groovy_space_before_catch_keyword = true
-ij_groovy_space_before_catch_left_brace = true
-ij_groovy_space_before_catch_parentheses = true
-ij_groovy_space_before_class_left_brace = true
-ij_groovy_space_before_closure_left_brace = true
-ij_groovy_space_before_colon = true
-ij_groovy_space_before_comma = false
-ij_groovy_space_before_do_left_brace = true
-ij_groovy_space_before_else_keyword = true
-ij_groovy_space_before_else_left_brace = true
-ij_groovy_space_before_finally_keyword = true
-ij_groovy_space_before_finally_left_brace = true
-ij_groovy_space_before_for_left_brace = true
-ij_groovy_space_before_for_parentheses = true
-ij_groovy_space_before_for_semicolon = false
-ij_groovy_space_before_if_left_brace = true
-ij_groovy_space_before_if_parentheses = true
-ij_groovy_space_before_method_call_parentheses = false
-ij_groovy_space_before_method_left_brace = true
-ij_groovy_space_before_method_parentheses = false
-ij_groovy_space_before_quest = true
-ij_groovy_space_before_record_parentheses = false
-ij_groovy_space_before_switch_left_brace = true
-ij_groovy_space_before_switch_parentheses = true
-ij_groovy_space_before_synchronized_left_brace = true
-ij_groovy_space_before_synchronized_parentheses = true
-ij_groovy_space_before_try_left_brace = true
-ij_groovy_space_before_try_parentheses = true
-ij_groovy_space_before_while_keyword = true
-ij_groovy_space_before_while_left_brace = true
-ij_groovy_space_before_while_parentheses = true
-ij_groovy_space_in_named_argument = true
-ij_groovy_space_in_named_argument_before_colon = false
-ij_groovy_space_within_empty_array_initializer_braces = false
-ij_groovy_space_within_empty_method_call_parentheses = false
-ij_groovy_spaces_around_additive_operators = true
-ij_groovy_spaces_around_assignment_operators = true
-ij_groovy_spaces_around_bitwise_operators = true
-ij_groovy_spaces_around_equality_operators = true
-ij_groovy_spaces_around_lambda_arrow = true
-ij_groovy_spaces_around_logical_operators = true
-ij_groovy_spaces_around_multiplicative_operators = true
-ij_groovy_spaces_around_regex_operators = true
-ij_groovy_spaces_around_relational_operators = true
-ij_groovy_spaces_around_shift_operators = true
-ij_groovy_spaces_within_annotation_parentheses = false
-ij_groovy_spaces_within_array_initializer_braces = false
-ij_groovy_spaces_within_braces = true
-ij_groovy_spaces_within_brackets = false
-ij_groovy_spaces_within_cast_parentheses = false
-ij_groovy_spaces_within_catch_parentheses = false
-ij_groovy_spaces_within_for_parentheses = false
-ij_groovy_spaces_within_gstring_injection_braces = false
-ij_groovy_spaces_within_if_parentheses = false
-ij_groovy_spaces_within_list_or_map = false
-ij_groovy_spaces_within_method_call_parentheses = false
-ij_groovy_spaces_within_method_parentheses = false
-ij_groovy_spaces_within_parentheses = false
-ij_groovy_spaces_within_switch_parentheses = false
-ij_groovy_spaces_within_synchronized_parentheses = false
-ij_groovy_spaces_within_try_parentheses = false
-ij_groovy_spaces_within_tuple_expression = false
-ij_groovy_spaces_within_while_parentheses = false
-ij_groovy_special_else_if_treatment = true
-ij_groovy_ternary_operation_wrap = off
-ij_groovy_throws_keyword_wrap = off
-ij_groovy_throws_list_wrap = off
-ij_groovy_use_flying_geese_braces = false
-ij_groovy_use_fq_class_names = false
-ij_groovy_use_fq_class_names_in_javadoc = true
-ij_groovy_use_relative_indents = false
-ij_groovy_use_single_class_imports = true
-ij_groovy_variable_annotation_wrap = off
-ij_groovy_while_brace_force = never
-ij_groovy_while_on_new_line = false
-ij_groovy_wrap_chain_calls_after_dot = false
-ij_groovy_wrap_long_lines = false
-
-[{*.gql,*.graphql,*.graphqls}]
-indent_size = 4
-tab_width = 4
-
-[{*.gradle.kts,*.kt,*.kts,*.main.kts,*.space.kts}]
-indent_size = 4
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_kotlin_align_in_columns_case_branch = false
-ij_kotlin_align_multiline_binary_operation = false
-ij_kotlin_align_multiline_extends_list = false
-ij_kotlin_align_multiline_method_parentheses = false
-ij_kotlin_align_multiline_parameters = true
-ij_kotlin_align_multiline_parameters_in_calls = false
-ij_kotlin_allow_trailing_comma = false
-ij_kotlin_allow_trailing_comma_on_call_site = false
-ij_kotlin_assignment_wrap = off
-ij_kotlin_blank_lines_after_class_header = 0
-ij_kotlin_blank_lines_around_block_when_branches = 0
-ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1
-ij_kotlin_block_comment_add_space = false
-ij_kotlin_block_comment_at_first_column = true
-ij_kotlin_call_parameters_new_line_after_left_paren = false
-ij_kotlin_call_parameters_right_paren_on_new_line = false
-ij_kotlin_call_parameters_wrap = off
-ij_kotlin_catch_on_new_line = false
-ij_kotlin_class_annotation_wrap = split_into_lines
-ij_kotlin_continuation_indent_for_chained_calls = true
-ij_kotlin_continuation_indent_for_expression_bodies = true
-ij_kotlin_continuation_indent_in_argument_lists = true
-ij_kotlin_continuation_indent_in_elvis = true
-ij_kotlin_continuation_indent_in_if_conditions = true
-ij_kotlin_continuation_indent_in_parameter_lists = true
-ij_kotlin_continuation_indent_in_supertype_lists = true
-ij_kotlin_else_on_new_line = false
-ij_kotlin_enum_constants_wrap = off
-ij_kotlin_extends_list_wrap = off
-ij_kotlin_field_annotation_wrap = split_into_lines
-ij_kotlin_finally_on_new_line = false
-ij_kotlin_if_rparen_on_new_line = false
-ij_kotlin_import_nested_classes = false
-ij_kotlin_imports_layout = *, java.**, javax.**, kotlin.**, ^
-ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
-ij_kotlin_keep_blank_lines_before_right_brace = 2
-ij_kotlin_keep_blank_lines_in_code = 2
-ij_kotlin_keep_blank_lines_in_declarations = 2
-ij_kotlin_keep_first_column_comment = true
-ij_kotlin_keep_indents_on_empty_lines = false
-ij_kotlin_keep_line_breaks = true
-ij_kotlin_lbrace_on_next_line = false
-ij_kotlin_line_break_after_multiline_when_entry = true
-ij_kotlin_line_comment_add_space = false
-ij_kotlin_line_comment_add_space_on_reformat = false
-ij_kotlin_line_comment_at_first_column = true
-ij_kotlin_method_annotation_wrap = split_into_lines
-ij_kotlin_method_call_chain_wrap = off
-ij_kotlin_method_parameters_new_line_after_left_paren = false
-ij_kotlin_method_parameters_right_paren_on_new_line = false
-ij_kotlin_method_parameters_wrap = off
-ij_kotlin_name_count_to_use_star_import = 5
-ij_kotlin_name_count_to_use_star_import_for_members = 3
-ij_kotlin_packages_to_use_import_on_demand = java.util.*, kotlinx.android.synthetic.**, io.ktor.**
-ij_kotlin_parameter_annotation_wrap = off
-ij_kotlin_space_after_comma = true
-ij_kotlin_space_after_extend_colon = true
-ij_kotlin_space_after_type_colon = true
-ij_kotlin_space_before_catch_parentheses = true
-ij_kotlin_space_before_comma = false
-ij_kotlin_space_before_extend_colon = true
-ij_kotlin_space_before_for_parentheses = true
-ij_kotlin_space_before_if_parentheses = true
-ij_kotlin_space_before_lambda_arrow = true
-ij_kotlin_space_before_type_colon = false
-ij_kotlin_space_before_when_parentheses = true
-ij_kotlin_space_before_while_parentheses = true
-ij_kotlin_spaces_around_additive_operators = true
-ij_kotlin_spaces_around_assignment_operators = true
-ij_kotlin_spaces_around_equality_operators = true
-ij_kotlin_spaces_around_function_type_arrow = true
-ij_kotlin_spaces_around_logical_operators = true
-ij_kotlin_spaces_around_multiplicative_operators = true
-ij_kotlin_spaces_around_range = false
-ij_kotlin_spaces_around_relational_operators = true
-ij_kotlin_spaces_around_unary_operator = false
-ij_kotlin_spaces_around_when_arrow = true
-ij_kotlin_variable_annotation_wrap = off
-ij_kotlin_while_on_new_line = false
-ij_kotlin_wrap_elvis_expressions = 1
-ij_kotlin_wrap_expression_body_functions = 0
-ij_kotlin_wrap_first_method_in_call_chain = false
-
-[{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.stylelintrc,bowerrc,composer.lock,jest.config}]
-ij_json_array_wrapping = split_into_lines
-ij_json_keep_blank_lines_in_code = 0
-ij_json_keep_indents_on_empty_lines = false
-ij_json_keep_line_breaks = true
-ij_json_keep_trailing_comma = false
-ij_json_object_wrapping = split_into_lines
-ij_json_property_alignment = do_not_align
-ij_json_space_after_colon = true
-ij_json_space_after_comma = true
-ij_json_space_before_colon = false
-ij_json_space_before_comma = false
-ij_json_spaces_within_braces = false
-ij_json_spaces_within_brackets = false
-ij_json_wrap_long_lines = false
-
-[{*.hcl,*.nomad}]
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_hcl_array_wrapping = normal
-ij_hcl_keep_blank_lines_in_code = 2
-ij_hcl_keep_indents_on_empty_lines = false
-ij_hcl_keep_line_breaks = true
-ij_hcl_object_wrapping = normal
-ij_hcl_property_alignment = 2
-ij_hcl_property_line_commenter_character = 1
-ij_hcl_space_after_comma = true
-ij_hcl_space_before_comma = false
-ij_hcl_spaces_around_assignment_operators = true
-ij_hcl_spaces_within_braces = false
-ij_hcl_spaces_within_brackets = false
-ij_hcl_wrap_long_lines = false
-
-[{*.htm,*.html,*.ng,*.sht,*.shtm,*.shtml}]
-ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3
-ij_html_align_attributes = true
-ij_html_align_text = false
-ij_html_attribute_wrap = normal
-ij_html_block_comment_add_space = false
-ij_html_block_comment_at_first_column = true
-ij_html_do_not_align_children_of_min_lines = 0
-ij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p
-ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot
-ij_html_enforce_quotes = false
-ij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var
-ij_html_keep_blank_lines = 2
-ij_html_keep_indents_on_empty_lines = false
-ij_html_keep_line_breaks = true
-ij_html_keep_line_breaks_in_text = true
-ij_html_keep_whitespaces = false
-ij_html_keep_whitespaces_inside = span, pre, textarea
-ij_html_line_comment_at_first_column = true
-ij_html_new_line_after_last_attribute = never
-ij_html_new_line_before_first_attribute = never
-ij_html_quote_style = double
-ij_html_remove_new_line_before_tags = br
-ij_html_space_after_tag_name = false
-ij_html_space_around_equality_in_attribute = false
-ij_html_space_inside_empty_tag = false
-ij_html_text_wrap = normal
-
-[{*.http,*.rest}]
-indent_size = 0
-ij_http request_call_parameters_wrap = normal
-
-[{*.jsf,*.jsp,*.jspf,*.tag,*.tagf,*.xjsp}]
-indent_size = 4
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_jsp_jsp_prefer_comma_separated_import_list = false
-ij_jsp_keep_indents_on_empty_lines = false
-
-[{*.jspx,*.tagx}]
-indent_size = 4
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_jspx_keep_indents_on_empty_lines = false
-
-[{*.markdown,*.md}]
-indent_size = 4
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_markdown_force_one_space_after_blockquote_symbol = true
-ij_markdown_force_one_space_after_header_symbol = true
-ij_markdown_force_one_space_after_list_bullet = true
-ij_markdown_force_one_space_between_words = true
-ij_markdown_format_tables = true
-ij_markdown_insert_quote_arrows_on_wrap = true
-ij_markdown_keep_indents_on_empty_lines = false
-ij_markdown_keep_line_breaks_inside_text_blocks = true
-ij_markdown_max_lines_around_block_elements = 1
-ij_markdown_max_lines_around_header = 1
-ij_markdown_max_lines_between_paragraphs = 1
-ij_markdown_min_lines_around_block_elements = 1
-ij_markdown_min_lines_around_header = 1
-ij_markdown_min_lines_between_paragraphs = 1
-ij_markdown_wrap_text_if_long = true
-ij_markdown_wrap_text_inside_blockquotes = true
-
-[{*.pb,*.textproto}]
-ij_prototext_keep_blank_lines_in_code = 2
-ij_prototext_keep_indents_on_empty_lines = false
-ij_prototext_keep_line_breaks = true
-ij_prototext_space_after_colon = true
-ij_prototext_space_after_comma = true
-ij_prototext_space_before_colon = false
-ij_prototext_space_before_comma = false
-ij_prototext_spaces_within_braces = true
-ij_prototext_spaces_within_brackets = false
-
-[{*.properties,spring.handlers,spring.schemas}]
-ij_properties_align_group_field_declarations = false
-ij_properties_keep_blank_lines = false
-ij_properties_key_value_delimiter = equals
-ij_properties_spaces_around_key_value_delimiter = false
-
-[{*.py,*.pyw}]
-max_line_length = 80
-ij_python_align_collections_and_comprehensions = true
-ij_python_align_multiline_imports = true
-ij_python_align_multiline_parameters = false
-ij_python_align_multiline_parameters_in_calls = true
-ij_python_blank_line_at_file_end = true
-ij_python_blank_lines_after_imports = 1
-ij_python_blank_lines_after_local_imports = 0
-ij_python_blank_lines_around_class = 1
-ij_python_blank_lines_around_method = 1
-ij_python_blank_lines_around_top_level_classes_functions = 2
-ij_python_blank_lines_before_first_method = 0
-ij_python_call_parameters_new_line_after_left_paren = false
-ij_python_call_parameters_right_paren_on_new_line = false
-ij_python_call_parameters_wrap = normal
-ij_python_dict_alignment = 0
-ij_python_dict_new_line_after_left_brace = false
-ij_python_dict_new_line_before_right_brace = false
-ij_python_dict_wrapping = 1
-ij_python_from_import_new_line_after_left_parenthesis = false
-ij_python_from_import_new_line_before_right_parenthesis = false
-ij_python_from_import_parentheses_force_if_multiline = false
-ij_python_from_import_trailing_comma_if_multiline = false
-ij_python_from_import_wrapping = 1
-ij_python_hang_closing_brackets = false
-ij_python_keep_blank_lines_in_code = 1
-ij_python_keep_blank_lines_in_declarations = 1
-ij_python_keep_indents_on_empty_lines = false
-ij_python_keep_line_breaks = true
-ij_python_method_parameters_new_line_after_left_paren = false
-ij_python_method_parameters_right_paren_on_new_line = false
-ij_python_method_parameters_wrap = normal
-ij_python_new_line_after_colon = false
-ij_python_new_line_after_colon_multi_clause = true
-ij_python_optimize_imports_always_split_from_imports = false
-ij_python_optimize_imports_case_insensitive_order = false
-ij_python_optimize_imports_join_from_imports_with_same_source = false
-ij_python_optimize_imports_sort_by_type_first = true
-ij_python_optimize_imports_sort_imports = true
-ij_python_optimize_imports_sort_names_in_from_imports = false
-ij_python_space_after_comma = true
-ij_python_space_after_number_sign = true
-ij_python_space_after_py_colon = true
-ij_python_space_before_backslash = true
-ij_python_space_before_comma = false
-ij_python_space_before_for_semicolon = false
-ij_python_space_before_lbracket = false
-ij_python_space_before_method_call_parentheses = false
-ij_python_space_before_method_parentheses = false
-ij_python_space_before_number_sign = true
-ij_python_space_before_py_colon = false
-ij_python_space_within_empty_method_call_parentheses = false
-ij_python_space_within_empty_method_parentheses = false
-ij_python_spaces_around_additive_operators = true
-ij_python_spaces_around_assignment_operators = true
-ij_python_spaces_around_bitwise_operators = true
-ij_python_spaces_around_eq_in_keyword_argument = false
-ij_python_spaces_around_eq_in_named_parameter = false
-ij_python_spaces_around_equality_operators = true
-ij_python_spaces_around_multiplicative_operators = true
-ij_python_spaces_around_power_operator = true
-ij_python_spaces_around_relational_operators = true
-ij_python_spaces_around_shift_operators = true
-ij_python_spaces_within_braces = false
-ij_python_spaces_within_brackets = false
-ij_python_spaces_within_method_call_parentheses = false
-ij_python_spaces_within_method_parentheses = false
-ij_python_use_continuation_indent_for_arguments = true
-ij_python_use_continuation_indent_for_collection_and_comprehensions = false
-ij_python_use_continuation_indent_for_parameters = true
-ij_python_wrap_long_lines = false
-
-[{*.qute.htm,*.qute.html,*.qute.json,*.qute.txt,*.qute.yaml,*.qute.yml}]
-indent_size = 4
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_qute_keep_indents_on_empty_lines = false
-
-[{*.tf,*.tfvars}]
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_hcl-terraform_array_wrapping = normal
-ij_hcl-terraform_keep_blank_lines_in_code = 2
-ij_hcl-terraform_keep_indents_on_empty_lines = false
-ij_hcl-terraform_keep_line_breaks = true
-ij_hcl-terraform_object_wrapping = normal
-ij_hcl-terraform_property_alignment = 2
-ij_hcl-terraform_property_line_commenter_character = 1
-ij_hcl-terraform_space_after_comma = true
-ij_hcl-terraform_space_before_comma = false
-ij_hcl-terraform_spaces_around_assignment_operators = true
-ij_hcl-terraform_spaces_within_braces = false
-ij_hcl-terraform_spaces_within_brackets = false
-ij_hcl-terraform_wrap_long_lines = false
-
-[{*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,poetry.lock}]
-indent_size = 4
-tab_width = 4
-ij_continuation_indent_size = 8
-ij_toml_keep_indents_on_empty_lines = false
-
-[{*.yaml,*.yml,*playbook.yaml,*playbook.yml,main.yaml,main.yml}]
-ij_yaml_align_values_properties = do_not_align
-ij_yaml_autoinsert_sequence_marker = true
-ij_yaml_block_mapping_on_new_line = false
-ij_yaml_indent_sequence_value = true
-ij_yaml_keep_indents_on_empty_lines = false
-ij_yaml_keep_line_breaks = true
-ij_yaml_sequence_on_new_line = false
-ij_yaml_space_before_colon = false
-ij_yaml_spaces_within_braces = true
-ij_yaml_spaces_within_brackets = true
diff --git a/.github/workflows/check_pr.yml b/.github/workflows/check_pr.yml
index 953df7e8..07631550 100644
--- a/.github/workflows/check_pr.yml
+++ b/.github/workflows/check_pr.yml
@@ -38,9 +38,10 @@ jobs:
- name: Formatting
id: format
continue-on-error: true
- uses: axel-op/googlejavaformat-action@v3
+ uses: findologic/intellij-format-action@main
with:
- args: "--set-exit-if-changed"
+ path: .
+ fail-on-changes: false
- uses: actions/github-script@v6.3.3
if: steps.format.outcome != 'success'
diff --git a/.github/workflows/deploy_with_github_runner.yml b/.github/workflows/deploy_with_github_runner.yml
index ff7335fe..f7f7df5b 100644
--- a/.github/workflows/deploy_with_github_runner.yml
+++ b/.github/workflows/deploy_with_github_runner.yml
@@ -83,3 +83,45 @@ jobs:
resource_group_name: ${{ vars.CONTAINER_APP_ENVIRONMENT_RESOURCE_GROUP_NAME }}
runner_name: ${{ needs.create_runner.outputs.runner_name }}
pat_token: ${{ secrets.BOT_TOKEN_GITHUB }}
+
+ update_openapi:
+ needs: [ deploy ]
+ runs-on: ubuntu-latest
+ name: Update OpenAPI
+ if: ${{ inputs.target == inputs.environment || inputs.target == 'all' }}
+ environment: ${{ inputs.environment }}
+ steps:
+ - name: Checkout
+ id: checkout
+ # from https://github.com/actions/checkout/commits/main
+ uses: actions/checkout@1f9a0c22da41e6ebfa534300ef656657ea2c6707
+ with:
+ persist-credentials: false
+
+ - name: Setup Terraform
+ # from https://github.com/hashicorp/setup-terraform/commits/main
+ uses: hashicorp/setup-terraform@8feba2b913ea459066180f9cb177f58a881cf146
+ with:
+ terraform_version: "1.3.6"
+
+ - name: Login
+ id: login
+ # from https://github.com/Azure/login/commits/master
+ uses: azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2
+ with:
+ client-id: ${{ secrets.CLIENT_ID }}
+ tenant-id: ${{ secrets.TENANT_ID }}
+ subscription-id: ${{ secrets.SUBSCRIPTION_ID }}
+
+
+ - name: Terraform Apply
+ shell: bash
+ run: |
+ cd ./infra
+ export ARM_CLIENT_ID="${{ secrets.CLIENT_ID }}"
+ export ARM_SUBSCRIPTION_ID=$(az account show --query id --output tsv)
+ export ARM_TENANT_ID=$(az account show --query tenantId --output tsv)
+ export ARM_USE_OIDC=true
+ export ARM_ACCESS_KEY=$(az storage account keys list --resource-group io-infra-rg --account-name pagopainfraterraform${{inputs.environment}} --query '[0].value' -o tsv)
+ bash ./terraform.sh init weu-${{ inputs.environment }}
+ bash ./terraform.sh apply weu-${{ inputs.environment }} -auto-approve
diff --git a/.github/workflows/update_code.yml b/.github/workflows/update_code.yml
index 2d7bba4b..c80030c2 100644
--- a/.github/workflows/update_code.yml
+++ b/.github/workflows/update_code.yml
@@ -30,24 +30,19 @@ jobs:
with:
java-version: 11
-# - name: Run Service on Docker
-# shell: bash
-# run: |
-# cd ./docker
-# chmod +x ./run_docker.sh
-# ./run_docker.sh local
-#
-# - name: Update OpenApi/Swagger file
-# run: |
-# cd ./openapi
-# chmod +x ./generate_openapi.sh
-# ./generate_openapi.sh
+ - name: Update OpenApi/Swagger file
+ run: |
+ cd ./openapi
+ chmod +x ./generate_openapi.sh
+ ./generate_openapi.sh
- name: Formatting
- uses: axel-op/googlejavaformat-action@v3
+ id: format
+ uses: findologic/intellij-format-action@main
with:
- args: "--replace"
- commit-message: "Google Java format"
+ path: .
+ fail-on-changes: false
+
notify:
needs: [ update ]
diff --git a/.github/workflows/update_infra.yml b/.github/workflows/update_infra.yml
deleted file mode 100644
index e4aedbba..00000000
--- a/.github/workflows/update_infra.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: Update Infra
-
-on:
- push:
- branches:
- - main
- paths:
- - 'openapi/openapi.json'
-
- workflow_dispatch:
-
-jobs:
- update_infra:
- name: Update Infra
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v2
-
- # prepare openapi template for infra repo
- - run: |
- mkdir -p "${GITHUB_WORKSPACE}/infra"
- jq '."servers"[0]."url" |= "${host}"' "${GITHUB_WORKSPACE}/openapi/openapi.json" > "${GITHUB_WORKSPACE}/infra/_openapi.json.tpl"
-
- # open a PR on infra repo
- - name: Create pull request
- uses: jacopocarlini/action-pull-request-another-repo@main
- env:
- API_TOKEN_GITHUB: ${{ secrets.BOT_TOKEN_GITHUB }}
- with:
- source_folder: 'infra'
- destination_repo: 'pagopa/pagopa-infra'
- destination_folder: 'src/domains/apiconfig-app/api/apiconfig-selfcare-integration-service/v1'
- destination_base_branch: 'main'
- destination_head_branch: 'apiconfig-selfcare-swagger-update'
- user_email: 'github-bot@pagopa.it'
- user_name: 'pagopa-github-bot'
- allow_force_push: 'true'
diff --git a/.gitignore b/.gitignore
index b7178045..10d198b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,3 +35,5 @@ hs_err_pid*
/helm/charts/*
.identity/.terraform/*
+**/.terraform.lock.hcl
+**/.terraform
diff --git a/.identity/00_data.tf b/.identity/00_data.tf
index 18403da6..85d7d777 100644
--- a/.identity/00_data.tf
+++ b/.identity/00_data.tf
@@ -1,7 +1,16 @@
+data "azurerm_storage_account" "tf_storage_account"{
+ name = "pagopainfraterraform${var.env}"
+ resource_group_name = "io-infra-rg"
+}
+
data "azurerm_resource_group" "dashboards" {
name = "dashboards"
}
+data "azurerm_resource_group" "apim_resource_group" {
+ name = "${local.product}-api-rg"
+}
+
data "azurerm_kubernetes_cluster" "aks" {
name = local.aks_cluster.name
resource_group_name = local.aks_cluster.resource_group_name
@@ -18,6 +27,11 @@ data "azurerm_key_vault" "key_vault" {
resource_group_name = "pagopa-${var.env_short}-sec-rg"
}
+data "azurerm_key_vault" "domain_key_vault" {
+ name = "pagopa-${var.env_short}-${local.domain}-kv"
+ resource_group_name = "pagopa-${var.env_short}-${local.domain}-sec-rg"
+}
+
data "azurerm_key_vault_secret" "key_vault_sonar" {
name = "sonar-token"
diff --git a/.identity/02_application_action.tf b/.identity/02_application_action.tf
index fc40246a..580acb09 100644
--- a/.identity/02_application_action.tf
+++ b/.identity/02_application_action.tf
@@ -47,8 +47,17 @@ resource "azurerm_role_assignment" "environment_terraform_resource_group_dashboa
principal_id = module.github_runner_app.object_id
}
+resource "azurerm_role_assignment" "environment_terraform_storage_account" {
+ scope = data.azurerm_storage_account.tf_storage_account.id
+ role_definition_name = "Contributor"
+ principal_id = module.github_runner_app.object_id
+}
-
+resource "azurerm_role_assignment" "environment_terraform_resource_group_apim" {
+ scope = data.azurerm_resource_group.apim_resource_group.id
+ role_definition_name = "Contributor"
+ principal_id = module.github_runner_app.object_id
+}
resource "azuread_application" "action" {
display_name = "github-${local.github.org}-${local.github.repository}-${var.env}"
@@ -81,3 +90,22 @@ resource "azurerm_key_vault_access_policy" "ad_group_policy" {
storage_permissions = []
certificate_permissions = []
}
+
+resource "azurerm_role_assignment" "environment_key_vault_domain" {
+ scope = data.azurerm_key_vault.domain_key_vault.id
+ role_definition_name = "Reader"
+ principal_id = module.github_runner_app.object_id
+}
+
+
+resource "azurerm_key_vault_access_policy" "ad_kv_domain_group_policy" {
+ key_vault_id = data.azurerm_key_vault.domain_key_vault.id
+
+ tenant_id = data.azurerm_client_config.current.tenant_id
+ object_id = module.github_runner_app.object_id
+
+ key_permissions = []
+ secret_permissions = ["Get", "List"]
+ storage_permissions = []
+ certificate_permissions = []
+}
diff --git a/docker/run_docker.sh b/docker/run_docker.sh
index 196bbf1b..597aac72 100755
--- a/docker/run_docker.sh
+++ b/docker/run_docker.sh
@@ -44,7 +44,7 @@ done
echo $GH_TOKEN > ./secrets
DOCKER_BUILDKIT=1 docker build -t selfcare-integration --secret id=GH_TOKEN,src=./secrets ../
-docker run -d -p8080:8080 --env-file ./.env selfcare-integration
+docker run -p8080:8080 --env-file ./.env selfcare-integration
# waiting the containers
diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml
index 049464fd..2663a31f 100644
--- a/helm/values-dev.yaml
+++ b/helm/values-dev.yaml
@@ -90,6 +90,21 @@ microservice-chart:
values:
- user
canaryDelivery:
+ create: true
+ ingress:
+ create: true
+ canary:
+ type: header
+ headerName: X-Canary
+ headerValue: canary
+ weightPercent: 0
+ service:
+ create: true
deployment:
+ create: true
image:
+ repository: ghcr.io/pagopa/pagopa-api-config-selfcare-integration
tag: 1.3.5
+ pullPolicy: Always
+ envConfig: {}
+ envSecret: {}
diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml
index d404c8a9..31ef22a7 100644
--- a/helm/values-prod.yaml
+++ b/helm/values-prod.yaml
@@ -90,6 +90,21 @@ microservice-chart:
values:
- user
canaryDelivery:
+ create: true
+ ingress:
+ create: true
+ canary:
+ type: header
+ headerName: X-Canary
+ headerValue: canary
+ weightPercent: 0
+ service:
+ create: true
deployment:
+ create: true
image:
+ repository: ghcr.io/pagopa/pagopa-api-config-selfcare-integration
tag: 1.3.5
+ pullPolicy: Always
+ envConfig: {}
+ envSecret: {}
diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml
index b78d1fab..196e39da 100644
--- a/helm/values-uat.yaml
+++ b/helm/values-uat.yaml
@@ -90,6 +90,21 @@ microservice-chart:
values:
- user
canaryDelivery:
+ create: true
+ ingress:
+ create: true
+ canary:
+ type: header
+ headerName: X-Canary
+ headerValue: canary
+ weightPercent: 0
+ service:
+ create: true
deployment:
+ create: true
image:
- tag: 1.3.5
+ repository: ghcr.io/pagopa/pagopa-api-config-selfcare-integration
+ tag: 1.3.3-5
+ pullPolicy: Always
+ envConfig: {}
+ envSecret: {}
diff --git a/infra/04_apim_api.tf b/infra/04_apim_api.tf
new file mode 100644
index 00000000..0eaa967c
--- /dev/null
+++ b/infra/04_apim_api.tf
@@ -0,0 +1,52 @@
+locals {
+ display_name = "API Config Selfcare Integration"
+ description = "Management APIs to configure pagoPA for Selfcare"
+ host = "api.${var.apim_dns_zone_prefix}.${var.external_domain}"
+ hostname = var.env == "prod" ? "weuprod.apiconfig.internal.platform.pagopa.it" : "weu${var.env}.apiconfig.internal.${var.env}.platform.pagopa.it"
+}
+
+resource "azurerm_api_management_group" "api_apiconfig_selfcare_integration_group" {
+ name = local.apim.product_id
+ resource_group_name = local.apim.rg
+ api_management_name = local.apim.name
+ display_name = local.display_name
+ description = local.description
+}
+
+resource "azurerm_api_management_api_version_set" "apiconfig_selfcare_integration_api" {
+ name = format("%s-apiconfig-selfcare-integration-api", var.env_short)
+ resource_group_name = local.apim.rg
+ api_management_name = local.apim.name
+ display_name = local.display_name
+ versioning_scheme = "Segment"
+}
+
+module "apim_apiconfig_selfcare_integration_api_v1" {
+ source = "git::https://github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v6.7.0"
+
+ name = format("%s-apiconfig-selfcare-integration-api", var.env_short)
+ api_management_name = local.apim.name
+ resource_group_name = local.apim.rg
+ product_ids = [local.apim.product_id]
+ subscription_required = true
+
+ version_set_id = azurerm_api_management_api_version_set.apiconfig_selfcare_integration_api.id
+ api_version = "v1"
+
+ description = local.description
+ display_name = local.display_name
+ path = "apiconfig-selfcare-integration"
+ protocols = ["https"]
+
+ service_url = null
+
+ content_format = "openapi"
+ content_value = templatefile("../openapi/openapi.json", {
+ host = local.host
+ })
+
+ xml_content = templatefile("./policy/_base_policy.xml", {
+ hostname = local.hostname
+ })
+}
+
diff --git a/infra/99_locals.tf b/infra/99_locals.tf
new file mode 100644
index 00000000..31b9fcf2
--- /dev/null
+++ b/infra/99_locals.tf
@@ -0,0 +1,10 @@
+locals {
+ product = "${var.prefix}-${var.env_short}"
+
+ apim = {
+ name = "${local.product}-apim"
+ rg = "${local.product}-api-rg"
+ product_id = "apiconfig-selfcare-integration"
+ }
+}
+
diff --git a/infra/99_main.tf b/infra/99_main.tf
new file mode 100644
index 00000000..c62f391c
--- /dev/null
+++ b/infra/99_main.tf
@@ -0,0 +1,28 @@
+terraform {
+ required_providers {
+ azurerm = {
+ source = "hashicorp/azurerm"
+ version = ">= 3.30.0"
+ }
+ azuread = {
+ source = "hashicorp/azuread"
+ version = "2.30.0"
+ }
+ azapi = {
+ source = "Azure/azapi"
+ version = "= 1.3.0"
+ }
+ }
+
+ backend "azurerm" {}
+}
+
+provider "azurerm" {
+ features {}
+}
+
+provider "azapi" {}
+
+data "azurerm_subscription" "current" {}
+
+data "azurerm_client_config" "current" {}
diff --git a/infra/99_variables.tf b/infra/99_variables.tf
new file mode 100644
index 00000000..ec4ea5d9
--- /dev/null
+++ b/infra/99_variables.tf
@@ -0,0 +1,87 @@
+# general
+
+variable "prefix" {
+ type = string
+ validation {
+ condition = (
+ length(var.prefix) <= 6
+ )
+ error_message = "Max length is 6 chars."
+ }
+}
+
+variable "env" {
+ type = string
+}
+
+variable "env_short" {
+ type = string
+ validation {
+ condition = (
+ length(var.env_short) == 1
+ )
+ error_message = "Length must be 1 chars."
+ }
+}
+
+variable "github" {
+ type = object({
+ org = string
+ })
+ default = { org = "pagopa" }
+}
+
+variable "domain" {
+ type = string
+ validation {
+ condition = (
+ length(var.domain) <= 12
+ )
+ error_message = "Max length is 12 chars."
+ }
+}
+
+variable "location" {
+ type = string
+ description = "One of westeurope, northeurope"
+}
+
+variable "location_short" {
+ type = string
+ validation {
+ condition = (
+ length(var.location_short) == 3
+ )
+ error_message = "Length must be 3 chars."
+ }
+ description = "One of wue, neu"
+}
+
+variable "location_string" {
+ type = string
+ description = "One of West Europe, North Europe"
+}
+
+variable "instance" {
+ type = string
+ description = "One of beta, prod01, prod02"
+}
+
+variable "tags" {
+ type = map(any)
+ default = {
+ CreatedBy = "Terraform"
+ }
+}
+
+variable "apim_dns_zone_prefix" {
+ type = string
+ default = null
+ description = "The dns subdomain for apim."
+}
+
+variable "external_domain" {
+ type = string
+ default = null
+ description = "Domain for delegation"
+}
diff --git a/infra/env/weu-dev/backend.ini b/infra/env/weu-dev/backend.ini
new file mode 100644
index 00000000..494204c7
--- /dev/null
+++ b/infra/env/weu-dev/backend.ini
@@ -0,0 +1 @@
+subscription=bbe47ad4-08b3-4925-94c5-1278e5819b86
\ No newline at end of file
diff --git a/infra/env/weu-dev/backend.tfvars b/infra/env/weu-dev/backend.tfvars
new file mode 100644
index 00000000..f23b96d6
--- /dev/null
+++ b/infra/env/weu-dev/backend.tfvars
@@ -0,0 +1,4 @@
+resource_group_name = "io-infra-rg"
+storage_account_name = "pagopainfraterraformdev"
+container_name = "azurermstate"
+key = "apiconfig-selfcare-dev.terraform.tfstate"
diff --git a/infra/env/weu-dev/terraform.tfvars b/infra/env/weu-dev/terraform.tfvars
new file mode 100644
index 00000000..ee26a833
--- /dev/null
+++ b/infra/env/weu-dev/terraform.tfvars
@@ -0,0 +1,19 @@
+prefix = "pagopa"
+env_short = "d"
+env = "dev"
+domain = "apiconfig"
+location = "westeurope"
+location_short = "weu"
+location_string = "West Europe"
+instance = "dev"
+
+tags = {
+ CreatedBy = "Terraform"
+ Environment = "Dev"
+ Owner = "pagoPa"
+ Source = "https://github.com/pagopa/pagopa-infra/tree/main/src/apiconfig"
+ CostCenter = "TS310 - PAGAMENTI & SERVIZI"
+}
+
+apim_dns_zone_prefix = "dev.platform"
+external_domain = "pagopa.it"
diff --git a/infra/env/weu-prod/backend.ini b/infra/env/weu-prod/backend.ini
new file mode 100644
index 00000000..432abea3
--- /dev/null
+++ b/infra/env/weu-prod/backend.ini
@@ -0,0 +1 @@
+subscription=PROD-pagoPA
\ No newline at end of file
diff --git a/infra/env/weu-prod/backend.tfvars b/infra/env/weu-prod/backend.tfvars
new file mode 100644
index 00000000..d136e327
--- /dev/null
+++ b/infra/env/weu-prod/backend.tfvars
@@ -0,0 +1,4 @@
+resource_group_name = "io-infra-rg"
+storage_account_name = "pagopainfraterraformprod"
+container_name = "azurermstate"
+key = "apiconfig-selfcare-prod.terraform.tfstate"
diff --git a/infra/env/weu-prod/terraform.tfvars b/infra/env/weu-prod/terraform.tfvars
new file mode 100644
index 00000000..a134978d
--- /dev/null
+++ b/infra/env/weu-prod/terraform.tfvars
@@ -0,0 +1,19 @@
+prefix = "pagopa"
+env_short = "p"
+env = "prod"
+domain = "apiconfig"
+location = "westeurope"
+location_short = "weu"
+location_string = "West Europe"
+instance = "prod"
+
+tags = {
+ CreatedBy = "Terraform"
+ Environment = "Prod"
+ Owner = "pagoPa"
+ Source = "https://github.com/pagopa/pagopa-infra/tree/main/src/apiconfig"
+ CostCenter = "TS310 - PAGAMENTI & SERVIZI"
+}
+
+apim_dns_zone_prefix = "platform"
+external_domain = "pagopa.it"
diff --git a/infra/env/weu-uat/backend.ini b/infra/env/weu-uat/backend.ini
new file mode 100644
index 00000000..1759a0ca
--- /dev/null
+++ b/infra/env/weu-uat/backend.ini
@@ -0,0 +1 @@
+subscription=UAT-pagoPA
\ No newline at end of file
diff --git a/infra/env/weu-uat/backend.tfvars b/infra/env/weu-uat/backend.tfvars
new file mode 100644
index 00000000..ed14b567
--- /dev/null
+++ b/infra/env/weu-uat/backend.tfvars
@@ -0,0 +1,4 @@
+resource_group_name = "io-infra-rg"
+storage_account_name = "pagopainfraterraformuat"
+container_name = "azurermstate"
+key = "apiconfig-selfcare-uat.terraform.tfstate"
diff --git a/infra/env/weu-uat/terraform.tfvars b/infra/env/weu-uat/terraform.tfvars
new file mode 100644
index 00000000..284cb0aa
--- /dev/null
+++ b/infra/env/weu-uat/terraform.tfvars
@@ -0,0 +1,19 @@
+prefix = "pagopa"
+env_short = "u"
+env = "uat"
+domain = "apiconfig"
+location = "westeurope"
+location_short = "weu"
+location_string = "West Europe"
+instance = "uat"
+
+tags = {
+ CreatedBy = "Terraform"
+ Environment = "Uat"
+ Owner = "pagoPa"
+ Source = "https://github.com/pagopa/pagopa-infra/tree/main/src/apiconfig"
+ CostCenter = "TS310 - PAGAMENTI & SERVIZI"
+}
+
+apim_dns_zone_prefix = "uat.platform"
+external_domain = "pagopa.it"
diff --git a/infra/policy/_base_policy.xml b/infra/policy/_base_policy.xml
new file mode 100644
index 00000000..5302a3d8
--- /dev/null
+++ b/infra/policy/_base_policy.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/infra/terraform.sh b/infra/terraform.sh
new file mode 100755
index 00000000..b4691c81
--- /dev/null
+++ b/infra/terraform.sh
@@ -0,0 +1,191 @@
+#!/bin/bash
+############################################################
+# Terraform script for managing infrastructure on Azure
+# Fingerprint: d2hhdHlvdXdhbnQ/Cg==
+############################################################
+# Global variables
+# Version format x.y accepted
+vers="1.1"
+script_name=$(basename "$0")
+git_repo="https://raw.githubusercontent.com/pagopa/eng-common-scripts/main/azure/${script_name}"
+tmp_file="${script_name}.new"
+
+# Define functions
+function clean_environment() {
+ rm -rf .terraform*
+ rm tfplan 2>/dev/null
+ echo "cleaned!"
+}
+
+function help_usage() {
+ echo "terraform.sh Version ${vers}"
+ echo
+ echo "Usage: ./script.sh [ACTION] [ENV] [OTHER OPTIONS]"
+ echo "es. ACTION: init, apply, plan, etc."
+ echo "es. ENV: dev, uat, prod, etc."
+ echo
+ echo "Available actions:"
+ echo " clean Remove .terraform* folders and tfplan files"
+ echo " help This help"
+ echo " list List every environment available"
+ echo " summ Generate summary of Terraform plan"
+ echo " * any terraform option"
+}
+
+function init_terraform() {
+ if [ -n "$env" ]; then
+ terraform init -reconfigure -backend-config="./env/$env/backend.tfvars"
+ else
+ echo "ERROR: no env configured!"
+ exit 1
+ fi
+}
+
+function list_env() {
+ # Check if env directory exists
+ if [ ! -d "./env" ]; then
+ echo "No environment directory found"
+ exit 1
+ fi
+
+ # List subdirectories under env directory
+ env_list=$(ls -d ./env/*/ 2>/dev/null)
+
+ # Check if there are any subdirectories
+ if [ -z "$env_list" ]; then
+ echo "No environments found"
+ exit 1
+ fi
+
+ # Print the list of environments
+ echo "Available environments:"
+ for env in $env_list; do
+ env_name=$(echo "$env" | sed 's#./env/##;s#/##')
+ echo "- $env_name"
+ done
+}
+
+function other_actions() {
+ if [ -n "$env" ] && [ -n "$action" ]; then
+ terraform "$action" -var-file="./env/$env/terraform.tfvars" -compact-warnings $other
+ else
+ echo "ERROR: no env or action configured!"
+ exit 1
+ fi
+}
+
+function state_output_taint_actions() {
+ terraform $action $other
+}
+
+function tfsummary() {
+ action="plan"
+ other="-out=tfplan"
+ other_actions
+ if [ -n "$(command -v tf-summarize)" ]; then
+ tf-summarize -separate-tree tfplan && rm tfplan 2>/dev/null
+ else
+ echo "tf-summarize is not installed"
+ fi
+}
+
+function update_script() {
+ # Check if the repository was cloned successfully
+ if ! curl -sL "$git_repo" -o "$tmp_file"; then
+ echo "Error cloning the repository"
+ rm "$tmp_file" 2>/dev/null
+ return 1
+ fi
+
+ # Check if a newer version exists
+ remote_vers=$(sed -n '8s/vers="\(.*\)"/\1/p' "$tmp_file")
+ if [ "$(printf '%s\n' "$vers" "$remote_vers" | sort -V | tail -n 1)" == "$vers" ]; then
+ echo "The local script version is equal to or newer than the remote version."
+ rm "$tmp_file" 2>/dev/null
+ return 0
+ fi
+
+ # Check the fingerprint
+ local_fingerprint=$(sed -n '4p' "$0")
+ remote_fingerprint=$(sed -n '4p' "$tmp_file")
+
+ if [ "$local_fingerprint" != "$remote_fingerprint" ]; then
+ echo "The local and remote file fingerprints do not match."
+ rm "$tmp_file" 2>/dev/null
+ return 0
+ fi
+
+ # Show the current and available versions to the user
+ echo "Current script version: $vers"
+ echo "Available script version: $remote_vers"
+
+ # Ask the user if they want to update the script
+ read -rp "Do you want to update the script to version $remote_vers? (y/n): " answer
+
+ if [ "$answer" == "y" ] || [ "$answer" == "Y" ]; then
+ # Replace the local script with the updated version
+ cp "$tmp_file" "$script_name"
+ chmod +x "$script_name"
+ rm "$tmp_file" 2>/dev/null
+
+ echo "Script successfully updated to version $remote_vers"
+ else
+ echo "Update canceled by the user"
+ fi
+
+ rm "$tmp_file" 2>/dev/null
+}
+
+# Check arguments number
+if [ "$#" -lt 1 ]; then
+ help_usage
+ exit 0
+fi
+
+# Parse arguments
+action=$1
+env=$2
+shift 2
+other=$@
+
+if [ -n "$env" ]; then
+ # shellcheck source=/dev/null
+ source "./env/$env/backend.ini"
+ if [ -z "$(command -v az)" ]; then
+ echo "az not found, cannot proceed"
+ exit 1
+ fi
+ az account set -s "${subscription}"
+fi
+
+# Call appropriate function based on action
+case $action in
+ clean)
+ clean_environment
+ ;;
+ ?|help)
+ help_usage
+ ;;
+ init)
+ init_terraform
+ init_terraform "$other"
+ ;;
+ list)
+ list_env
+ ;;
+ output|state|taint)
+ init_terraform
+ state_output_taint_actions $other
+ ;;
+ summ)
+ init_terraform
+ tfsummary "$other"
+ ;;
+ update)
+ update_script
+ ;;
+ *)
+ # [ -z "$TF_INIT" ] && terraform init
+ other_actions "$other"
+ ;;
+esac
diff --git a/intellij-java-google-style.xml b/intellij-java-google-style.xml
deleted file mode 100644
index cf29951c..00000000
--- a/intellij-java-google-style.xml
+++ /dev/null
@@ -1,598 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xmlns:android
-
- ^$
-
-
-
-
-
-
-
-
- xmlns:.*
-
- ^$
-
-
- BY_NAME
-
-
-
-
-
-
- .*:id
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- style
-
- ^$
-
-
-
-
-
-
-
-
- .*
-
- ^$
-
-
- BY_NAME
-
-
-
-
-
-
- .*:.*Style
-
- http://schemas.android.com/apk/res/android
-
-
- BY_NAME
-
-
-
-
-
-
- .*:layout_width
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:layout_height
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:layout_weight
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:layout_margin
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:layout_marginTop
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:layout_marginBottom
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:layout_marginStart
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:layout_marginEnd
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:layout_marginLeft
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:layout_marginRight
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:layout_.*
-
- http://schemas.android.com/apk/res/android
-
-
- BY_NAME
-
-
-
-
-
-
- .*:padding
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:paddingTop
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:paddingBottom
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:paddingStart
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:paddingEnd
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:paddingLeft
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:paddingRight
-
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*
- http://schemas.android.com/apk/res/android
-
-
- BY_NAME
-
-
-
-
-
-
- .*
- http://schemas.android.com/apk/res-auto
-
-
- BY_NAME
-
-
-
-
-
-
- .*
- http://schemas.android.com/tools
-
-
- BY_NAME
-
-
-
-
-
-
- .*
- .*
-
-
- BY_NAME
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/openapi/generate_openapi.sh b/openapi/generate_openapi.sh
index 2b3f13b9..a91fa6f0 100755
--- a/openapi/generate_openapi.sh
+++ b/openapi/generate_openapi.sh
@@ -9,25 +9,5 @@ if [[ "$(pwd)" =~ .*"openapi".* ]]; then
cd ..
fi
-if ! $(curl --output /dev/null --silent --head --fail http://localhost:8080/info); then
- mvn spring-boot:run -Dmaven.test.skip=true -Dspring-boot.run.profiles=h2 &
-fi
-
-# waiting the service
-printf 'Waiting for the service'
-attempt_counter=0
-max_attempts=50
-until $(curl --output /dev/null --silent --head --fail http://localhost:8080/info); do
- if [ ${attempt_counter} -eq ${max_attempts} ];then
- echo "Max attempts reached"
- exit 1
- fi
-
- printf '.'
- attempt_counter=$((attempt_counter+1))
- sleep 5
-done
-echo 'Service Started'
-
+mvn test -Dtest=OpenApiGenerationTest
-curl http://127.0.0.1:8080/v3/api-docs > ./openapi/openapi.json
diff --git a/pom.xml b/pom.xml
index 748e5a30..c4245458 100644
--- a/pom.xml
+++ b/pom.xml
@@ -183,6 +183,12 @@
+
+
+ src/test/resources
+ true
+
+
diff --git a/src/test/java/it/gov/pagopa/apiconfig/OpenApiGenerationTest.java b/src/test/java/it/gov/pagopa/apiconfig/OpenApiGenerationTest.java
new file mode 100644
index 00000000..8a5176ff
--- /dev/null
+++ b/src/test/java/it/gov/pagopa/apiconfig/OpenApiGenerationTest.java
@@ -0,0 +1,47 @@
+package it.gov.pagopa.apiconfig;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.MediaType;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
+
+@SpringBootTest(classes = Application.class)
+@AutoConfigureMockMvc
+class OpenApiGenerationTest {
+
+ @Autowired ObjectMapper objectMapper;
+
+ @Autowired private MockMvc mvc;
+
+ @Test
+ void swaggerSpringPlugin() throws Exception {
+ mvc.perform(MockMvcRequestBuilders.get("/v3/api-docs").accept(MediaType.APPLICATION_JSON))
+ .andExpect(MockMvcResultMatchers.status().is2xxSuccessful())
+ .andDo(
+ (result) -> {
+ assertNotNull(result);
+ assertNotNull(result.getResponse());
+ final String content = result.getResponse().getContentAsString();
+ assertFalse(content.isBlank());
+ assertFalse(content.contains("${"), "Generated swagger contains placeholders");
+ Object swagger =
+ objectMapper.readValue(result.getResponse().getContentAsString(), Object.class);
+ String formatted =
+ objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(swagger);
+ Path basePath = Paths.get("openapi/");
+ Files.createDirectories(basePath);
+ Files.write(basePath.resolve("openapi.json"), formatted.getBytes());
+ });
+ }
+}