From ab81aa410b7757e79deebb06ce928c6c7f780ca4 Mon Sep 17 00:00:00 2001 From: KirillB Date: Thu, 18 Jun 2026 22:12:05 +0300 Subject: [PATCH 1/9] Remove VK and Yandex OAuth2 providers - Delete VkOAuth2UserDataHandler and YandexOAuth2UserDataHandler - Remove OAuth2 client configurations from application.yaml - Remove social login buttons from login.html and register.html - Update README.md and config files - Ignore pgdata directories --- .gitignore | 2701 +++++++++++++++++ README.md | 12 +- config/_application-prod.yaml | 3 +- pom.xml | 2 + resources/view/login.html | 8 - resources/view/unauth/register.html | 8 - .../handler/VkOAuth2UserDataHandler.java | 35 - .../handler/YandexOAuth2UserDataHandler.java | 21 - src/main/resources/application.yaml | 24 - 9 files changed, 2714 insertions(+), 100 deletions(-) delete mode 100644 src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java delete mode 100644 src/main/java/com/javarush/jira/login/internal/sociallogin/handler/YandexOAuth2UserDataHandler.java diff --git a/.gitignore b/.gitignore index cd38e2e7b..caf83ffc3 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,2704 @@ attachments *.patch +/pgdata/pgdata/base/1/112 +/pgdata/pgdata/base/1/113 +/pgdata/pgdata/base/1/174 +/pgdata/pgdata/base/1/175 +/pgdata/pgdata/base/1/548 +/pgdata/pgdata/base/1/549 +/pgdata/pgdata/base/1/826 +/pgdata/pgdata/base/1/827 +/pgdata/pgdata/base/1/828 +/pgdata/pgdata/base/1/1247 +/pgdata/pgdata/base/1/1247_fsm +/pgdata/pgdata/base/1/1247_vm +/pgdata/pgdata/base/1/1249 +/pgdata/pgdata/base/1/1249_fsm +/pgdata/pgdata/base/1/1249_vm +/pgdata/pgdata/base/1/1255 +/pgdata/pgdata/base/1/1255_fsm +/pgdata/pgdata/base/1/1255_vm +/pgdata/pgdata/base/1/1259 +/pgdata/pgdata/base/1/1259_fsm +/pgdata/pgdata/base/1/1259_vm +/pgdata/pgdata/base/1/1417 +/pgdata/pgdata/base/1/1418 +/pgdata/pgdata/base/1/2187 +/pgdata/pgdata/base/1/2224 +/pgdata/pgdata/base/1/2228 +/pgdata/pgdata/base/1/2328 +/pgdata/pgdata/base/1/2336 +/pgdata/pgdata/base/1/2337 +/pgdata/pgdata/base/1/2579 +/pgdata/pgdata/base/1/2600 +/pgdata/pgdata/base/1/2600_fsm +/pgdata/pgdata/base/1/2600_vm +/pgdata/pgdata/base/1/2601 +/pgdata/pgdata/base/1/2601_fsm +/pgdata/pgdata/base/1/2601_vm +/pgdata/pgdata/base/1/2602 +/pgdata/pgdata/base/1/2602_fsm +/pgdata/pgdata/base/1/2602_vm +/pgdata/pgdata/base/1/2603 +/pgdata/pgdata/base/1/2603_fsm +/pgdata/pgdata/base/1/2603_vm +/pgdata/pgdata/base/1/2604 +/pgdata/pgdata/base/1/2605 +/pgdata/pgdata/base/1/2605_fsm +/pgdata/pgdata/base/1/2605_vm +/pgdata/pgdata/base/1/2606 +/pgdata/pgdata/base/1/2606_fsm +/pgdata/pgdata/base/1/2606_vm +/pgdata/pgdata/base/1/2607 +/pgdata/pgdata/base/1/2607_fsm +/pgdata/pgdata/base/1/2607_vm +/pgdata/pgdata/base/1/2608 +/pgdata/pgdata/base/1/2608_fsm +/pgdata/pgdata/base/1/2608_vm +/pgdata/pgdata/base/1/2609 +/pgdata/pgdata/base/1/2609_fsm +/pgdata/pgdata/base/1/2609_vm +/pgdata/pgdata/base/1/2610 +/pgdata/pgdata/base/1/2610_fsm +/pgdata/pgdata/base/1/2610_vm +/pgdata/pgdata/base/1/2611 +/pgdata/pgdata/base/1/2612 +/pgdata/pgdata/base/1/2612_fsm +/pgdata/pgdata/base/1/2612_vm +/pgdata/pgdata/base/1/2613 +/pgdata/pgdata/base/1/2615 +/pgdata/pgdata/base/1/2615_fsm +/pgdata/pgdata/base/1/2615_vm +/pgdata/pgdata/base/1/2616 +/pgdata/pgdata/base/1/2616_fsm +/pgdata/pgdata/base/1/2616_vm +/pgdata/pgdata/base/1/2617 +/pgdata/pgdata/base/1/2617_fsm +/pgdata/pgdata/base/1/2617_vm +/pgdata/pgdata/base/1/2618 +/pgdata/pgdata/base/1/2618_fsm +/pgdata/pgdata/base/1/2618_vm +/pgdata/pgdata/base/1/2619 +/pgdata/pgdata/base/1/2619_fsm +/pgdata/pgdata/base/1/2619_vm +/pgdata/pgdata/base/1/2620 +/pgdata/pgdata/base/1/2650 +/pgdata/pgdata/base/1/2651 +/pgdata/pgdata/base/1/2652 +/pgdata/pgdata/base/1/2653 +/pgdata/pgdata/base/1/2654 +/pgdata/pgdata/base/1/2655 +/pgdata/pgdata/base/1/2656 +/pgdata/pgdata/base/1/2657 +/pgdata/pgdata/base/1/2658 +/pgdata/pgdata/base/1/2659 +/pgdata/pgdata/base/1/2660 +/pgdata/pgdata/base/1/2661 +/pgdata/pgdata/base/1/2662 +/pgdata/pgdata/base/1/2663 +/pgdata/pgdata/base/1/2664 +/pgdata/pgdata/base/1/2665 +/pgdata/pgdata/base/1/2666 +/pgdata/pgdata/base/1/2667 +/pgdata/pgdata/base/1/2668 +/pgdata/pgdata/base/1/2669 +/pgdata/pgdata/base/1/2670 +/pgdata/pgdata/base/1/2673 +/pgdata/pgdata/base/1/2674 +/pgdata/pgdata/base/1/2675 +/pgdata/pgdata/base/1/2678 +/pgdata/pgdata/base/1/2679 +/pgdata/pgdata/base/1/2680 +/pgdata/pgdata/base/1/2681 +/pgdata/pgdata/base/1/2682 +/pgdata/pgdata/base/1/2683 +/pgdata/pgdata/base/1/2684 +/pgdata/pgdata/base/1/2685 +/pgdata/pgdata/base/1/2686 +/pgdata/pgdata/base/1/2687 +/pgdata/pgdata/base/1/2688 +/pgdata/pgdata/base/1/2689 +/pgdata/pgdata/base/1/2690 +/pgdata/pgdata/base/1/2691 +/pgdata/pgdata/base/1/2692 +/pgdata/pgdata/base/1/2693 +/pgdata/pgdata/base/1/2696 +/pgdata/pgdata/base/1/2699 +/pgdata/pgdata/base/1/2701 +/pgdata/pgdata/base/1/2702 +/pgdata/pgdata/base/1/2703 +/pgdata/pgdata/base/1/2704 +/pgdata/pgdata/base/1/2753 +/pgdata/pgdata/base/1/2753_fsm +/pgdata/pgdata/base/1/2753_vm +/pgdata/pgdata/base/1/2754 +/pgdata/pgdata/base/1/2755 +/pgdata/pgdata/base/1/2756 +/pgdata/pgdata/base/1/2757 +/pgdata/pgdata/base/1/2830 +/pgdata/pgdata/base/1/2831 +/pgdata/pgdata/base/1/2832 +/pgdata/pgdata/base/1/2833 +/pgdata/pgdata/base/1/2834 +/pgdata/pgdata/base/1/2835 +/pgdata/pgdata/base/1/2836 +/pgdata/pgdata/base/1/2836_fsm +/pgdata/pgdata/base/1/2836_vm +/pgdata/pgdata/base/1/2837 +/pgdata/pgdata/base/1/2838 +/pgdata/pgdata/base/1/2838_fsm +/pgdata/pgdata/base/1/2838_vm +/pgdata/pgdata/base/1/2839 +/pgdata/pgdata/base/1/2840 +/pgdata/pgdata/base/1/2840_fsm +/pgdata/pgdata/base/1/2840_vm +/pgdata/pgdata/base/1/2841 +/pgdata/pgdata/base/1/2995 +/pgdata/pgdata/base/1/2996 +/pgdata/pgdata/base/1/3079 +/pgdata/pgdata/base/1/3079_fsm +/pgdata/pgdata/base/1/3079_vm +/pgdata/pgdata/base/1/3080 +/pgdata/pgdata/base/1/3081 +/pgdata/pgdata/base/1/3085 +/pgdata/pgdata/base/1/3118 +/pgdata/pgdata/base/1/3119 +/pgdata/pgdata/base/1/3164 +/pgdata/pgdata/base/1/3256 +/pgdata/pgdata/base/1/3257 +/pgdata/pgdata/base/1/3258 +/pgdata/pgdata/base/1/3350 +/pgdata/pgdata/base/1/3351 +/pgdata/pgdata/base/1/3379 +/pgdata/pgdata/base/1/3380 +/pgdata/pgdata/base/1/3381 +/pgdata/pgdata/base/1/3394 +/pgdata/pgdata/base/1/3394_fsm +/pgdata/pgdata/base/1/3394_vm +/pgdata/pgdata/base/1/3395 +/pgdata/pgdata/base/1/3429 +/pgdata/pgdata/base/1/3430 +/pgdata/pgdata/base/1/3431 +/pgdata/pgdata/base/1/3433 +/pgdata/pgdata/base/1/3439 +/pgdata/pgdata/base/1/3440 +/pgdata/pgdata/base/1/3455 +/pgdata/pgdata/base/1/3456 +/pgdata/pgdata/base/1/3456_fsm +/pgdata/pgdata/base/1/3456_vm +/pgdata/pgdata/base/1/3466 +/pgdata/pgdata/base/1/3467 +/pgdata/pgdata/base/1/3468 +/pgdata/pgdata/base/1/3501 +/pgdata/pgdata/base/1/3502 +/pgdata/pgdata/base/1/3503 +/pgdata/pgdata/base/1/3534 +/pgdata/pgdata/base/1/3541 +/pgdata/pgdata/base/1/3541_fsm +/pgdata/pgdata/base/1/3541_vm +/pgdata/pgdata/base/1/3542 +/pgdata/pgdata/base/1/3574 +/pgdata/pgdata/base/1/3575 +/pgdata/pgdata/base/1/3576 +/pgdata/pgdata/base/1/3596 +/pgdata/pgdata/base/1/3597 +/pgdata/pgdata/base/1/3598 +/pgdata/pgdata/base/1/3599 +/pgdata/pgdata/base/1/3600 +/pgdata/pgdata/base/1/3600_fsm +/pgdata/pgdata/base/1/3600_vm +/pgdata/pgdata/base/1/3601 +/pgdata/pgdata/base/1/3601_fsm +/pgdata/pgdata/base/1/3601_vm +/pgdata/pgdata/base/1/3602 +/pgdata/pgdata/base/1/3602_fsm +/pgdata/pgdata/base/1/3602_vm +/pgdata/pgdata/base/1/3603 +/pgdata/pgdata/base/1/3603_fsm +/pgdata/pgdata/base/1/3603_vm +/pgdata/pgdata/base/1/3604 +/pgdata/pgdata/base/1/3605 +/pgdata/pgdata/base/1/3606 +/pgdata/pgdata/base/1/3607 +/pgdata/pgdata/base/1/3608 +/pgdata/pgdata/base/1/3609 +/pgdata/pgdata/base/1/3712 +/pgdata/pgdata/base/1/3764 +/pgdata/pgdata/base/1/3764_fsm +/pgdata/pgdata/base/1/3764_vm +/pgdata/pgdata/base/1/3766 +/pgdata/pgdata/base/1/3767 +/pgdata/pgdata/base/1/3997 +/pgdata/pgdata/base/1/4143 +/pgdata/pgdata/base/1/4144 +/pgdata/pgdata/base/1/4145 +/pgdata/pgdata/base/1/4146 +/pgdata/pgdata/base/1/4147 +/pgdata/pgdata/base/1/4148 +/pgdata/pgdata/base/1/4149 +/pgdata/pgdata/base/1/4150 +/pgdata/pgdata/base/1/4151 +/pgdata/pgdata/base/1/4152 +/pgdata/pgdata/base/1/4153 +/pgdata/pgdata/base/1/4154 +/pgdata/pgdata/base/1/4155 +/pgdata/pgdata/base/1/4156 +/pgdata/pgdata/base/1/4157 +/pgdata/pgdata/base/1/4158 +/pgdata/pgdata/base/1/4159 +/pgdata/pgdata/base/1/4160 +/pgdata/pgdata/base/1/4163 +/pgdata/pgdata/base/1/4164 +/pgdata/pgdata/base/1/4165 +/pgdata/pgdata/base/1/4166 +/pgdata/pgdata/base/1/4167 +/pgdata/pgdata/base/1/4168 +/pgdata/pgdata/base/1/4169 +/pgdata/pgdata/base/1/4170 +/pgdata/pgdata/base/1/4171 +/pgdata/pgdata/base/1/4172 +/pgdata/pgdata/base/1/4173 +/pgdata/pgdata/base/1/4174 +/pgdata/pgdata/base/1/5002 +/pgdata/pgdata/base/1/6102 +/pgdata/pgdata/base/1/6104 +/pgdata/pgdata/base/1/6106 +/pgdata/pgdata/base/1/6110 +/pgdata/pgdata/base/1/6111 +/pgdata/pgdata/base/1/6112 +/pgdata/pgdata/base/1/6113 +/pgdata/pgdata/base/1/6116 +/pgdata/pgdata/base/1/6117 +/pgdata/pgdata/base/1/6175 +/pgdata/pgdata/base/1/6176 +/pgdata/pgdata/base/1/6228 +/pgdata/pgdata/base/1/6229 +/pgdata/pgdata/base/1/6237 +/pgdata/pgdata/base/1/6238 +/pgdata/pgdata/base/1/6239 +/pgdata/pgdata/base/1/6351 +/pgdata/pgdata/base/1/6352 +/pgdata/pgdata/base/1/13476 +/pgdata/pgdata/base/1/13476_fsm +/pgdata/pgdata/base/1/13476_vm +/pgdata/pgdata/base/1/13479 +/pgdata/pgdata/base/1/13480 +/pgdata/pgdata/base/1/13481 +/pgdata/pgdata/base/1/13481_fsm +/pgdata/pgdata/base/1/13481_vm +/pgdata/pgdata/base/1/13484 +/pgdata/pgdata/base/1/13485 +/pgdata/pgdata/base/1/13486 +/pgdata/pgdata/base/1/13486_fsm +/pgdata/pgdata/base/1/13486_vm +/pgdata/pgdata/base/1/13489 +/pgdata/pgdata/base/1/13490 +/pgdata/pgdata/base/1/13491 +/pgdata/pgdata/base/1/13491_fsm +/pgdata/pgdata/base/1/13491_vm +/pgdata/pgdata/base/1/13494 +/pgdata/pgdata/base/1/13495 +/pgdata/pgdata/base/1/pg_filenode.map +/pgdata/pgdata/base/1/PG_VERSION +/pgdata/pgdata/base/4/112 +/pgdata/pgdata/base/4/113 +/pgdata/pgdata/base/4/174 +/pgdata/pgdata/base/4/175 +/pgdata/pgdata/base/4/548 +/pgdata/pgdata/base/4/549 +/pgdata/pgdata/base/4/826 +/pgdata/pgdata/base/4/827 +/pgdata/pgdata/base/4/828 +/pgdata/pgdata/base/4/1247 +/pgdata/pgdata/base/4/1247_fsm +/pgdata/pgdata/base/4/1247_vm +/pgdata/pgdata/base/4/1249 +/pgdata/pgdata/base/4/1249_fsm +/pgdata/pgdata/base/4/1249_vm +/pgdata/pgdata/base/4/1255 +/pgdata/pgdata/base/4/1255_fsm +/pgdata/pgdata/base/4/1255_vm +/pgdata/pgdata/base/4/1259 +/pgdata/pgdata/base/4/1259_fsm +/pgdata/pgdata/base/4/1259_vm +/pgdata/pgdata/base/4/1417 +/pgdata/pgdata/base/4/1418 +/pgdata/pgdata/base/4/2187 +/pgdata/pgdata/base/4/2224 +/pgdata/pgdata/base/4/2228 +/pgdata/pgdata/base/4/2328 +/pgdata/pgdata/base/4/2336 +/pgdata/pgdata/base/4/2337 +/pgdata/pgdata/base/4/2579 +/pgdata/pgdata/base/4/2600 +/pgdata/pgdata/base/4/2600_fsm +/pgdata/pgdata/base/4/2600_vm +/pgdata/pgdata/base/4/2601 +/pgdata/pgdata/base/4/2601_fsm +/pgdata/pgdata/base/4/2601_vm +/pgdata/pgdata/base/4/2602 +/pgdata/pgdata/base/4/2602_fsm +/pgdata/pgdata/base/4/2602_vm +/pgdata/pgdata/base/4/2603 +/pgdata/pgdata/base/4/2603_fsm +/pgdata/pgdata/base/4/2603_vm +/pgdata/pgdata/base/4/2604 +/pgdata/pgdata/base/4/2605 +/pgdata/pgdata/base/4/2605_fsm +/pgdata/pgdata/base/4/2605_vm +/pgdata/pgdata/base/4/2606 +/pgdata/pgdata/base/4/2606_fsm +/pgdata/pgdata/base/4/2606_vm +/pgdata/pgdata/base/4/2607 +/pgdata/pgdata/base/4/2607_fsm +/pgdata/pgdata/base/4/2607_vm +/pgdata/pgdata/base/4/2608 +/pgdata/pgdata/base/4/2608_fsm +/pgdata/pgdata/base/4/2608_vm +/pgdata/pgdata/base/4/2609 +/pgdata/pgdata/base/4/2609_fsm +/pgdata/pgdata/base/4/2609_vm +/pgdata/pgdata/base/4/2610 +/pgdata/pgdata/base/4/2610_fsm +/pgdata/pgdata/base/4/2610_vm +/pgdata/pgdata/base/4/2611 +/pgdata/pgdata/base/4/2612 +/pgdata/pgdata/base/4/2612_fsm +/pgdata/pgdata/base/4/2612_vm +/pgdata/pgdata/base/4/2613 +/pgdata/pgdata/base/4/2615 +/pgdata/pgdata/base/4/2615_fsm +/pgdata/pgdata/base/4/2615_vm +/pgdata/pgdata/base/4/2616 +/pgdata/pgdata/base/4/2616_fsm +/pgdata/pgdata/base/4/2616_vm +/pgdata/pgdata/base/4/2617 +/pgdata/pgdata/base/4/2617_fsm +/pgdata/pgdata/base/4/2617_vm +/pgdata/pgdata/base/4/2618 +/pgdata/pgdata/base/4/2618_fsm +/pgdata/pgdata/base/4/2618_vm +/pgdata/pgdata/base/4/2619 +/pgdata/pgdata/base/4/2619_fsm +/pgdata/pgdata/base/4/2619_vm +/pgdata/pgdata/base/4/2620 +/pgdata/pgdata/base/4/2650 +/pgdata/pgdata/base/4/2651 +/pgdata/pgdata/base/4/2652 +/pgdata/pgdata/base/4/2653 +/pgdata/pgdata/base/4/2654 +/pgdata/pgdata/base/4/2655 +/pgdata/pgdata/base/4/2656 +/pgdata/pgdata/base/4/2657 +/pgdata/pgdata/base/4/2658 +/pgdata/pgdata/base/4/2659 +/pgdata/pgdata/base/4/2660 +/pgdata/pgdata/base/4/2661 +/pgdata/pgdata/base/4/2662 +/pgdata/pgdata/base/4/2663 +/pgdata/pgdata/base/4/2664 +/pgdata/pgdata/base/4/2665 +/pgdata/pgdata/base/4/2666 +/pgdata/pgdata/base/4/2667 +/pgdata/pgdata/base/4/2668 +/pgdata/pgdata/base/4/2669 +/pgdata/pgdata/base/4/2670 +/pgdata/pgdata/base/4/2673 +/pgdata/pgdata/base/4/2674 +/pgdata/pgdata/base/4/2675 +/pgdata/pgdata/base/4/2678 +/pgdata/pgdata/base/4/2679 +/pgdata/pgdata/base/4/2680 +/pgdata/pgdata/base/4/2681 +/pgdata/pgdata/base/4/2682 +/pgdata/pgdata/base/4/2683 +/pgdata/pgdata/base/4/2684 +/pgdata/pgdata/base/4/2685 +/pgdata/pgdata/base/4/2686 +/pgdata/pgdata/base/4/2687 +/pgdata/pgdata/base/4/2688 +/pgdata/pgdata/base/4/2689 +/pgdata/pgdata/base/4/2690 +/pgdata/pgdata/base/4/2691 +/pgdata/pgdata/base/4/2692 +/pgdata/pgdata/base/4/2693 +/pgdata/pgdata/base/4/2696 +/pgdata/pgdata/base/4/2699 +/pgdata/pgdata/base/4/2701 +/pgdata/pgdata/base/4/2702 +/pgdata/pgdata/base/4/2703 +/pgdata/pgdata/base/4/2704 +/pgdata/pgdata/base/4/2753 +/pgdata/pgdata/base/4/2753_fsm +/pgdata/pgdata/base/4/2753_vm +/pgdata/pgdata/base/4/2754 +/pgdata/pgdata/base/4/2755 +/pgdata/pgdata/base/4/2756 +/pgdata/pgdata/base/4/2757 +/pgdata/pgdata/base/4/2830 +/pgdata/pgdata/base/4/2831 +/pgdata/pgdata/base/4/2832 +/pgdata/pgdata/base/4/2833 +/pgdata/pgdata/base/4/2834 +/pgdata/pgdata/base/4/2835 +/pgdata/pgdata/base/4/2836 +/pgdata/pgdata/base/4/2836_fsm +/pgdata/pgdata/base/4/2836_vm +/pgdata/pgdata/base/4/2837 +/pgdata/pgdata/base/4/2838 +/pgdata/pgdata/base/4/2838_fsm +/pgdata/pgdata/base/4/2838_vm +/pgdata/pgdata/base/4/2839 +/pgdata/pgdata/base/4/2840 +/pgdata/pgdata/base/4/2840_fsm +/pgdata/pgdata/base/4/2840_vm +/pgdata/pgdata/base/4/2841 +/pgdata/pgdata/base/4/2995 +/pgdata/pgdata/base/4/2996 +/pgdata/pgdata/base/4/3079 +/pgdata/pgdata/base/4/3079_fsm +/pgdata/pgdata/base/4/3079_vm +/pgdata/pgdata/base/4/3080 +/pgdata/pgdata/base/4/3081 +/pgdata/pgdata/base/4/3085 +/pgdata/pgdata/base/4/3118 +/pgdata/pgdata/base/4/3119 +/pgdata/pgdata/base/4/3164 +/pgdata/pgdata/base/4/3256 +/pgdata/pgdata/base/4/3257 +/pgdata/pgdata/base/4/3258 +/pgdata/pgdata/base/4/3350 +/pgdata/pgdata/base/4/3351 +/pgdata/pgdata/base/4/3379 +/pgdata/pgdata/base/4/3380 +/pgdata/pgdata/base/4/3381 +/pgdata/pgdata/base/4/3394 +/pgdata/pgdata/base/4/3394_fsm +/pgdata/pgdata/base/4/3394_vm +/pgdata/pgdata/base/4/3395 +/pgdata/pgdata/base/4/3429 +/pgdata/pgdata/base/4/3430 +/pgdata/pgdata/base/4/3431 +/pgdata/pgdata/base/4/3433 +/pgdata/pgdata/base/4/3439 +/pgdata/pgdata/base/4/3440 +/pgdata/pgdata/base/4/3455 +/pgdata/pgdata/base/4/3456 +/pgdata/pgdata/base/4/3456_fsm +/pgdata/pgdata/base/4/3456_vm +/pgdata/pgdata/base/4/3466 +/pgdata/pgdata/base/4/3467 +/pgdata/pgdata/base/4/3468 +/pgdata/pgdata/base/4/3501 +/pgdata/pgdata/base/4/3502 +/pgdata/pgdata/base/4/3503 +/pgdata/pgdata/base/4/3534 +/pgdata/pgdata/base/4/3541 +/pgdata/pgdata/base/4/3541_fsm +/pgdata/pgdata/base/4/3541_vm +/pgdata/pgdata/base/4/3542 +/pgdata/pgdata/base/4/3574 +/pgdata/pgdata/base/4/3575 +/pgdata/pgdata/base/4/3576 +/pgdata/pgdata/base/4/3596 +/pgdata/pgdata/base/4/3597 +/pgdata/pgdata/base/4/3598 +/pgdata/pgdata/base/4/3599 +/pgdata/pgdata/base/4/3600 +/pgdata/pgdata/base/4/3600_fsm +/pgdata/pgdata/base/4/3600_vm +/pgdata/pgdata/base/4/3601 +/pgdata/pgdata/base/4/3601_fsm +/pgdata/pgdata/base/4/3601_vm +/pgdata/pgdata/base/4/3602 +/pgdata/pgdata/base/4/3602_fsm +/pgdata/pgdata/base/4/3602_vm +/pgdata/pgdata/base/4/3603 +/pgdata/pgdata/base/4/3603_fsm +/pgdata/pgdata/base/4/3603_vm +/pgdata/pgdata/base/4/3604 +/pgdata/pgdata/base/4/3605 +/pgdata/pgdata/base/4/3606 +/pgdata/pgdata/base/4/3607 +/pgdata/pgdata/base/4/3608 +/pgdata/pgdata/base/4/3609 +/pgdata/pgdata/base/4/3712 +/pgdata/pgdata/base/4/3764 +/pgdata/pgdata/base/4/3764_fsm +/pgdata/pgdata/base/4/3764_vm +/pgdata/pgdata/base/4/3766 +/pgdata/pgdata/base/4/3767 +/pgdata/pgdata/base/4/3997 +/pgdata/pgdata/base/4/4143 +/pgdata/pgdata/base/4/4144 +/pgdata/pgdata/base/4/4145 +/pgdata/pgdata/base/4/4146 +/pgdata/pgdata/base/4/4147 +/pgdata/pgdata/base/4/4148 +/pgdata/pgdata/base/4/4149 +/pgdata/pgdata/base/4/4150 +/pgdata/pgdata/base/4/4151 +/pgdata/pgdata/base/4/4152 +/pgdata/pgdata/base/4/4153 +/pgdata/pgdata/base/4/4154 +/pgdata/pgdata/base/4/4155 +/pgdata/pgdata/base/4/4156 +/pgdata/pgdata/base/4/4157 +/pgdata/pgdata/base/4/4158 +/pgdata/pgdata/base/4/4159 +/pgdata/pgdata/base/4/4160 +/pgdata/pgdata/base/4/4163 +/pgdata/pgdata/base/4/4164 +/pgdata/pgdata/base/4/4165 +/pgdata/pgdata/base/4/4166 +/pgdata/pgdata/base/4/4167 +/pgdata/pgdata/base/4/4168 +/pgdata/pgdata/base/4/4169 +/pgdata/pgdata/base/4/4170 +/pgdata/pgdata/base/4/4171 +/pgdata/pgdata/base/4/4172 +/pgdata/pgdata/base/4/4173 +/pgdata/pgdata/base/4/4174 +/pgdata/pgdata/base/4/5002 +/pgdata/pgdata/base/4/6102 +/pgdata/pgdata/base/4/6104 +/pgdata/pgdata/base/4/6106 +/pgdata/pgdata/base/4/6110 +/pgdata/pgdata/base/4/6111 +/pgdata/pgdata/base/4/6112 +/pgdata/pgdata/base/4/6113 +/pgdata/pgdata/base/4/6116 +/pgdata/pgdata/base/4/6117 +/pgdata/pgdata/base/4/6175 +/pgdata/pgdata/base/4/6176 +/pgdata/pgdata/base/4/6228 +/pgdata/pgdata/base/4/6229 +/pgdata/pgdata/base/4/6237 +/pgdata/pgdata/base/4/6238 +/pgdata/pgdata/base/4/6239 +/pgdata/pgdata/base/4/6351 +/pgdata/pgdata/base/4/6352 +/pgdata/pgdata/base/4/13476 +/pgdata/pgdata/base/4/13476_fsm +/pgdata/pgdata/base/4/13476_vm +/pgdata/pgdata/base/4/13479 +/pgdata/pgdata/base/4/13480 +/pgdata/pgdata/base/4/13481 +/pgdata/pgdata/base/4/13481_fsm +/pgdata/pgdata/base/4/13481_vm +/pgdata/pgdata/base/4/13484 +/pgdata/pgdata/base/4/13485 +/pgdata/pgdata/base/4/13486 +/pgdata/pgdata/base/4/13486_fsm +/pgdata/pgdata/base/4/13486_vm +/pgdata/pgdata/base/4/13489 +/pgdata/pgdata/base/4/13490 +/pgdata/pgdata/base/4/13491 +/pgdata/pgdata/base/4/13491_fsm +/pgdata/pgdata/base/4/13491_vm +/pgdata/pgdata/base/4/13494 +/pgdata/pgdata/base/4/13495 +/pgdata/pgdata/base/4/pg_filenode.map +/pgdata/pgdata/base/4/PG_VERSION +/pgdata/pgdata/base/5/112 +/pgdata/pgdata/base/5/113 +/pgdata/pgdata/base/5/174 +/pgdata/pgdata/base/5/175 +/pgdata/pgdata/base/5/548 +/pgdata/pgdata/base/5/549 +/pgdata/pgdata/base/5/826 +/pgdata/pgdata/base/5/827 +/pgdata/pgdata/base/5/828 +/pgdata/pgdata/base/5/1247 +/pgdata/pgdata/base/5/1247_fsm +/pgdata/pgdata/base/5/1247_vm +/pgdata/pgdata/base/5/1249 +/pgdata/pgdata/base/5/1249_fsm +/pgdata/pgdata/base/5/1249_vm +/pgdata/pgdata/base/5/1255 +/pgdata/pgdata/base/5/1255_fsm +/pgdata/pgdata/base/5/1255_vm +/pgdata/pgdata/base/5/1259 +/pgdata/pgdata/base/5/1259_fsm +/pgdata/pgdata/base/5/1259_vm +/pgdata/pgdata/base/5/1417 +/pgdata/pgdata/base/5/1418 +/pgdata/pgdata/base/5/2187 +/pgdata/pgdata/base/5/2224 +/pgdata/pgdata/base/5/2228 +/pgdata/pgdata/base/5/2328 +/pgdata/pgdata/base/5/2336 +/pgdata/pgdata/base/5/2337 +/pgdata/pgdata/base/5/2579 +/pgdata/pgdata/base/5/2600 +/pgdata/pgdata/base/5/2600_fsm +/pgdata/pgdata/base/5/2600_vm +/pgdata/pgdata/base/5/2601 +/pgdata/pgdata/base/5/2601_fsm +/pgdata/pgdata/base/5/2601_vm +/pgdata/pgdata/base/5/2602 +/pgdata/pgdata/base/5/2602_fsm +/pgdata/pgdata/base/5/2602_vm +/pgdata/pgdata/base/5/2603 +/pgdata/pgdata/base/5/2603_fsm +/pgdata/pgdata/base/5/2603_vm +/pgdata/pgdata/base/5/2604 +/pgdata/pgdata/base/5/2605 +/pgdata/pgdata/base/5/2605_fsm +/pgdata/pgdata/base/5/2605_vm +/pgdata/pgdata/base/5/2606 +/pgdata/pgdata/base/5/2606_fsm +/pgdata/pgdata/base/5/2606_vm +/pgdata/pgdata/base/5/2607 +/pgdata/pgdata/base/5/2607_fsm +/pgdata/pgdata/base/5/2607_vm +/pgdata/pgdata/base/5/2608 +/pgdata/pgdata/base/5/2608_fsm +/pgdata/pgdata/base/5/2608_vm +/pgdata/pgdata/base/5/2609 +/pgdata/pgdata/base/5/2609_fsm +/pgdata/pgdata/base/5/2609_vm +/pgdata/pgdata/base/5/2610 +/pgdata/pgdata/base/5/2610_fsm +/pgdata/pgdata/base/5/2610_vm +/pgdata/pgdata/base/5/2611 +/pgdata/pgdata/base/5/2612 +/pgdata/pgdata/base/5/2612_fsm +/pgdata/pgdata/base/5/2612_vm +/pgdata/pgdata/base/5/2613 +/pgdata/pgdata/base/5/2615 +/pgdata/pgdata/base/5/2615_fsm +/pgdata/pgdata/base/5/2615_vm +/pgdata/pgdata/base/5/2616 +/pgdata/pgdata/base/5/2616_fsm +/pgdata/pgdata/base/5/2616_vm +/pgdata/pgdata/base/5/2617 +/pgdata/pgdata/base/5/2617_fsm +/pgdata/pgdata/base/5/2617_vm +/pgdata/pgdata/base/5/2618 +/pgdata/pgdata/base/5/2618_fsm +/pgdata/pgdata/base/5/2618_vm +/pgdata/pgdata/base/5/2619 +/pgdata/pgdata/base/5/2619_fsm +/pgdata/pgdata/base/5/2619_vm +/pgdata/pgdata/base/5/2620 +/pgdata/pgdata/base/5/2650 +/pgdata/pgdata/base/5/2651 +/pgdata/pgdata/base/5/2652 +/pgdata/pgdata/base/5/2653 +/pgdata/pgdata/base/5/2654 +/pgdata/pgdata/base/5/2655 +/pgdata/pgdata/base/5/2656 +/pgdata/pgdata/base/5/2657 +/pgdata/pgdata/base/5/2658 +/pgdata/pgdata/base/5/2659 +/pgdata/pgdata/base/5/2660 +/pgdata/pgdata/base/5/2661 +/pgdata/pgdata/base/5/2662 +/pgdata/pgdata/base/5/2663 +/pgdata/pgdata/base/5/2664 +/pgdata/pgdata/base/5/2665 +/pgdata/pgdata/base/5/2666 +/pgdata/pgdata/base/5/2667 +/pgdata/pgdata/base/5/2668 +/pgdata/pgdata/base/5/2669 +/pgdata/pgdata/base/5/2670 +/pgdata/pgdata/base/5/2673 +/pgdata/pgdata/base/5/2674 +/pgdata/pgdata/base/5/2675 +/pgdata/pgdata/base/5/2678 +/pgdata/pgdata/base/5/2679 +/pgdata/pgdata/base/5/2680 +/pgdata/pgdata/base/5/2681 +/pgdata/pgdata/base/5/2682 +/pgdata/pgdata/base/5/2683 +/pgdata/pgdata/base/5/2684 +/pgdata/pgdata/base/5/2685 +/pgdata/pgdata/base/5/2686 +/pgdata/pgdata/base/5/2687 +/pgdata/pgdata/base/5/2688 +/pgdata/pgdata/base/5/2689 +/pgdata/pgdata/base/5/2690 +/pgdata/pgdata/base/5/2691 +/pgdata/pgdata/base/5/2692 +/pgdata/pgdata/base/5/2693 +/pgdata/pgdata/base/5/2696 +/pgdata/pgdata/base/5/2699 +/pgdata/pgdata/base/5/2701 +/pgdata/pgdata/base/5/2702 +/pgdata/pgdata/base/5/2703 +/pgdata/pgdata/base/5/2704 +/pgdata/pgdata/base/5/2753 +/pgdata/pgdata/base/5/2753_fsm +/pgdata/pgdata/base/5/2753_vm +/pgdata/pgdata/base/5/2754 +/pgdata/pgdata/base/5/2755 +/pgdata/pgdata/base/5/2756 +/pgdata/pgdata/base/5/2757 +/pgdata/pgdata/base/5/2830 +/pgdata/pgdata/base/5/2831 +/pgdata/pgdata/base/5/2832 +/pgdata/pgdata/base/5/2833 +/pgdata/pgdata/base/5/2834 +/pgdata/pgdata/base/5/2835 +/pgdata/pgdata/base/5/2836 +/pgdata/pgdata/base/5/2836_fsm +/pgdata/pgdata/base/5/2836_vm +/pgdata/pgdata/base/5/2837 +/pgdata/pgdata/base/5/2838 +/pgdata/pgdata/base/5/2838_fsm +/pgdata/pgdata/base/5/2838_vm +/pgdata/pgdata/base/5/2839 +/pgdata/pgdata/base/5/2840 +/pgdata/pgdata/base/5/2840_fsm +/pgdata/pgdata/base/5/2840_vm +/pgdata/pgdata/base/5/2841 +/pgdata/pgdata/base/5/2995 +/pgdata/pgdata/base/5/2996 +/pgdata/pgdata/base/5/3079 +/pgdata/pgdata/base/5/3079_fsm +/pgdata/pgdata/base/5/3079_vm +/pgdata/pgdata/base/5/3080 +/pgdata/pgdata/base/5/3081 +/pgdata/pgdata/base/5/3085 +/pgdata/pgdata/base/5/3118 +/pgdata/pgdata/base/5/3119 +/pgdata/pgdata/base/5/3164 +/pgdata/pgdata/base/5/3256 +/pgdata/pgdata/base/5/3257 +/pgdata/pgdata/base/5/3258 +/pgdata/pgdata/base/5/3350 +/pgdata/pgdata/base/5/3351 +/pgdata/pgdata/base/5/3379 +/pgdata/pgdata/base/5/3380 +/pgdata/pgdata/base/5/3381 +/pgdata/pgdata/base/5/3394 +/pgdata/pgdata/base/5/3394_fsm +/pgdata/pgdata/base/5/3394_vm +/pgdata/pgdata/base/5/3395 +/pgdata/pgdata/base/5/3429 +/pgdata/pgdata/base/5/3430 +/pgdata/pgdata/base/5/3431 +/pgdata/pgdata/base/5/3433 +/pgdata/pgdata/base/5/3439 +/pgdata/pgdata/base/5/3440 +/pgdata/pgdata/base/5/3455 +/pgdata/pgdata/base/5/3456 +/pgdata/pgdata/base/5/3456_fsm +/pgdata/pgdata/base/5/3456_vm +/pgdata/pgdata/base/5/3466 +/pgdata/pgdata/base/5/3467 +/pgdata/pgdata/base/5/3468 +/pgdata/pgdata/base/5/3501 +/pgdata/pgdata/base/5/3502 +/pgdata/pgdata/base/5/3503 +/pgdata/pgdata/base/5/3534 +/pgdata/pgdata/base/5/3541 +/pgdata/pgdata/base/5/3541_fsm +/pgdata/pgdata/base/5/3541_vm +/pgdata/pgdata/base/5/3542 +/pgdata/pgdata/base/5/3574 +/pgdata/pgdata/base/5/3575 +/pgdata/pgdata/base/5/3576 +/pgdata/pgdata/base/5/3596 +/pgdata/pgdata/base/5/3597 +/pgdata/pgdata/base/5/3598 +/pgdata/pgdata/base/5/3599 +/pgdata/pgdata/base/5/3600 +/pgdata/pgdata/base/5/3600_fsm +/pgdata/pgdata/base/5/3600_vm +/pgdata/pgdata/base/5/3601 +/pgdata/pgdata/base/5/3601_fsm +/pgdata/pgdata/base/5/3601_vm +/pgdata/pgdata/base/5/3602 +/pgdata/pgdata/base/5/3602_fsm +/pgdata/pgdata/base/5/3602_vm +/pgdata/pgdata/base/5/3603 +/pgdata/pgdata/base/5/3603_fsm +/pgdata/pgdata/base/5/3603_vm +/pgdata/pgdata/base/5/3604 +/pgdata/pgdata/base/5/3605 +/pgdata/pgdata/base/5/3606 +/pgdata/pgdata/base/5/3607 +/pgdata/pgdata/base/5/3608 +/pgdata/pgdata/base/5/3609 +/pgdata/pgdata/base/5/3712 +/pgdata/pgdata/base/5/3764 +/pgdata/pgdata/base/5/3764_fsm +/pgdata/pgdata/base/5/3764_vm +/pgdata/pgdata/base/5/3766 +/pgdata/pgdata/base/5/3767 +/pgdata/pgdata/base/5/3997 +/pgdata/pgdata/base/5/4143 +/pgdata/pgdata/base/5/4144 +/pgdata/pgdata/base/5/4145 +/pgdata/pgdata/base/5/4146 +/pgdata/pgdata/base/5/4147 +/pgdata/pgdata/base/5/4148 +/pgdata/pgdata/base/5/4149 +/pgdata/pgdata/base/5/4150 +/pgdata/pgdata/base/5/4151 +/pgdata/pgdata/base/5/4152 +/pgdata/pgdata/base/5/4153 +/pgdata/pgdata/base/5/4154 +/pgdata/pgdata/base/5/4155 +/pgdata/pgdata/base/5/4156 +/pgdata/pgdata/base/5/4157 +/pgdata/pgdata/base/5/4158 +/pgdata/pgdata/base/5/4159 +/pgdata/pgdata/base/5/4160 +/pgdata/pgdata/base/5/4163 +/pgdata/pgdata/base/5/4164 +/pgdata/pgdata/base/5/4165 +/pgdata/pgdata/base/5/4166 +/pgdata/pgdata/base/5/4167 +/pgdata/pgdata/base/5/4168 +/pgdata/pgdata/base/5/4169 +/pgdata/pgdata/base/5/4170 +/pgdata/pgdata/base/5/4171 +/pgdata/pgdata/base/5/4172 +/pgdata/pgdata/base/5/4173 +/pgdata/pgdata/base/5/4174 +/pgdata/pgdata/base/5/5002 +/pgdata/pgdata/base/5/6102 +/pgdata/pgdata/base/5/6104 +/pgdata/pgdata/base/5/6106 +/pgdata/pgdata/base/5/6110 +/pgdata/pgdata/base/5/6111 +/pgdata/pgdata/base/5/6112 +/pgdata/pgdata/base/5/6113 +/pgdata/pgdata/base/5/6116 +/pgdata/pgdata/base/5/6117 +/pgdata/pgdata/base/5/6175 +/pgdata/pgdata/base/5/6176 +/pgdata/pgdata/base/5/6228 +/pgdata/pgdata/base/5/6229 +/pgdata/pgdata/base/5/6237 +/pgdata/pgdata/base/5/6238 +/pgdata/pgdata/base/5/6239 +/pgdata/pgdata/base/5/6351 +/pgdata/pgdata/base/5/6352 +/pgdata/pgdata/base/5/13476 +/pgdata/pgdata/base/5/13476_fsm +/pgdata/pgdata/base/5/13476_vm +/pgdata/pgdata/base/5/13479 +/pgdata/pgdata/base/5/13480 +/pgdata/pgdata/base/5/13481 +/pgdata/pgdata/base/5/13481_fsm +/pgdata/pgdata/base/5/13481_vm +/pgdata/pgdata/base/5/13484 +/pgdata/pgdata/base/5/13485 +/pgdata/pgdata/base/5/13486 +/pgdata/pgdata/base/5/13486_fsm +/pgdata/pgdata/base/5/13486_vm +/pgdata/pgdata/base/5/13489 +/pgdata/pgdata/base/5/13490 +/pgdata/pgdata/base/5/13491 +/pgdata/pgdata/base/5/13491_fsm +/pgdata/pgdata/base/5/13491_vm +/pgdata/pgdata/base/5/13494 +/pgdata/pgdata/base/5/13495 +/pgdata/pgdata/base/5/pg_filenode.map +/pgdata/pgdata/base/5/pg_internal.init +/pgdata/pgdata/base/5/PG_VERSION +/pgdata/pgdata/base/16384/112 +/pgdata/pgdata/base/16384/113 +/pgdata/pgdata/base/16384/174 +/pgdata/pgdata/base/16384/175 +/pgdata/pgdata/base/16384/548 +/pgdata/pgdata/base/16384/549 +/pgdata/pgdata/base/16384/826 +/pgdata/pgdata/base/16384/827 +/pgdata/pgdata/base/16384/828 +/pgdata/pgdata/base/16384/1247 +/pgdata/pgdata/base/16384/1247_fsm +/pgdata/pgdata/base/16384/1247_vm +/pgdata/pgdata/base/16384/1249 +/pgdata/pgdata/base/16384/1249_fsm +/pgdata/pgdata/base/16384/1249_vm +/pgdata/pgdata/base/16384/1255 +/pgdata/pgdata/base/16384/1255_fsm +/pgdata/pgdata/base/16384/1255_vm +/pgdata/pgdata/base/16384/1259 +/pgdata/pgdata/base/16384/1259_fsm +/pgdata/pgdata/base/16384/1259_vm +/pgdata/pgdata/base/16384/1417 +/pgdata/pgdata/base/16384/1418 +/pgdata/pgdata/base/16384/2187 +/pgdata/pgdata/base/16384/2224 +/pgdata/pgdata/base/16384/2228 +/pgdata/pgdata/base/16384/2328 +/pgdata/pgdata/base/16384/2336 +/pgdata/pgdata/base/16384/2337 +/pgdata/pgdata/base/16384/2579 +/pgdata/pgdata/base/16384/2600 +/pgdata/pgdata/base/16384/2600_fsm +/pgdata/pgdata/base/16384/2600_vm +/pgdata/pgdata/base/16384/2601 +/pgdata/pgdata/base/16384/2601_fsm +/pgdata/pgdata/base/16384/2601_vm +/pgdata/pgdata/base/16384/2602 +/pgdata/pgdata/base/16384/2602_fsm +/pgdata/pgdata/base/16384/2602_vm +/pgdata/pgdata/base/16384/2603 +/pgdata/pgdata/base/16384/2603_fsm +/pgdata/pgdata/base/16384/2603_vm +/pgdata/pgdata/base/16384/2604 +/pgdata/pgdata/base/16384/2605 +/pgdata/pgdata/base/16384/2605_fsm +/pgdata/pgdata/base/16384/2605_vm +/pgdata/pgdata/base/16384/2606 +/pgdata/pgdata/base/16384/2606_fsm +/pgdata/pgdata/base/16384/2606_vm +/pgdata/pgdata/base/16384/2607 +/pgdata/pgdata/base/16384/2607_fsm +/pgdata/pgdata/base/16384/2607_vm +/pgdata/pgdata/base/16384/2608 +/pgdata/pgdata/base/16384/2608_fsm +/pgdata/pgdata/base/16384/2608_vm +/pgdata/pgdata/base/16384/2609 +/pgdata/pgdata/base/16384/2609_fsm +/pgdata/pgdata/base/16384/2609_vm +/pgdata/pgdata/base/16384/2610 +/pgdata/pgdata/base/16384/2610_fsm +/pgdata/pgdata/base/16384/2610_vm +/pgdata/pgdata/base/16384/2611 +/pgdata/pgdata/base/16384/2612 +/pgdata/pgdata/base/16384/2612_fsm +/pgdata/pgdata/base/16384/2612_vm +/pgdata/pgdata/base/16384/2613 +/pgdata/pgdata/base/16384/2615 +/pgdata/pgdata/base/16384/2615_fsm +/pgdata/pgdata/base/16384/2615_vm +/pgdata/pgdata/base/16384/2616 +/pgdata/pgdata/base/16384/2616_fsm +/pgdata/pgdata/base/16384/2616_vm +/pgdata/pgdata/base/16384/2617 +/pgdata/pgdata/base/16384/2617_fsm +/pgdata/pgdata/base/16384/2617_vm +/pgdata/pgdata/base/16384/2618 +/pgdata/pgdata/base/16384/2618_fsm +/pgdata/pgdata/base/16384/2618_vm +/pgdata/pgdata/base/16384/2619 +/pgdata/pgdata/base/16384/2619_fsm +/pgdata/pgdata/base/16384/2619_vm +/pgdata/pgdata/base/16384/2620 +/pgdata/pgdata/base/16384/2620_fsm +/pgdata/pgdata/base/16384/2650 +/pgdata/pgdata/base/16384/2651 +/pgdata/pgdata/base/16384/2652 +/pgdata/pgdata/base/16384/2653 +/pgdata/pgdata/base/16384/2654 +/pgdata/pgdata/base/16384/2655 +/pgdata/pgdata/base/16384/2656 +/pgdata/pgdata/base/16384/2657 +/pgdata/pgdata/base/16384/2658 +/pgdata/pgdata/base/16384/2659 +/pgdata/pgdata/base/16384/2660 +/pgdata/pgdata/base/16384/2661 +/pgdata/pgdata/base/16384/2662 +/pgdata/pgdata/base/16384/2663 +/pgdata/pgdata/base/16384/2664 +/pgdata/pgdata/base/16384/2665 +/pgdata/pgdata/base/16384/2666 +/pgdata/pgdata/base/16384/2667 +/pgdata/pgdata/base/16384/2668 +/pgdata/pgdata/base/16384/2669 +/pgdata/pgdata/base/16384/2670 +/pgdata/pgdata/base/16384/2673 +/pgdata/pgdata/base/16384/2674 +/pgdata/pgdata/base/16384/2675 +/pgdata/pgdata/base/16384/2678 +/pgdata/pgdata/base/16384/2679 +/pgdata/pgdata/base/16384/2680 +/pgdata/pgdata/base/16384/2681 +/pgdata/pgdata/base/16384/2682 +/pgdata/pgdata/base/16384/2683 +/pgdata/pgdata/base/16384/2684 +/pgdata/pgdata/base/16384/2685 +/pgdata/pgdata/base/16384/2686 +/pgdata/pgdata/base/16384/2687 +/pgdata/pgdata/base/16384/2688 +/pgdata/pgdata/base/16384/2689 +/pgdata/pgdata/base/16384/2690 +/pgdata/pgdata/base/16384/2691 +/pgdata/pgdata/base/16384/2692 +/pgdata/pgdata/base/16384/2693 +/pgdata/pgdata/base/16384/2696 +/pgdata/pgdata/base/16384/2699 +/pgdata/pgdata/base/16384/2701 +/pgdata/pgdata/base/16384/2702 +/pgdata/pgdata/base/16384/2703 +/pgdata/pgdata/base/16384/2704 +/pgdata/pgdata/base/16384/2753 +/pgdata/pgdata/base/16384/2753_fsm +/pgdata/pgdata/base/16384/2753_vm +/pgdata/pgdata/base/16384/2754 +/pgdata/pgdata/base/16384/2755 +/pgdata/pgdata/base/16384/2756 +/pgdata/pgdata/base/16384/2757 +/pgdata/pgdata/base/16384/2830 +/pgdata/pgdata/base/16384/2831 +/pgdata/pgdata/base/16384/2832 +/pgdata/pgdata/base/16384/2833 +/pgdata/pgdata/base/16384/2834 +/pgdata/pgdata/base/16384/2835 +/pgdata/pgdata/base/16384/2836 +/pgdata/pgdata/base/16384/2836_fsm +/pgdata/pgdata/base/16384/2836_vm +/pgdata/pgdata/base/16384/2837 +/pgdata/pgdata/base/16384/2838 +/pgdata/pgdata/base/16384/2838_fsm +/pgdata/pgdata/base/16384/2838_vm +/pgdata/pgdata/base/16384/2839 +/pgdata/pgdata/base/16384/2840 +/pgdata/pgdata/base/16384/2840_fsm +/pgdata/pgdata/base/16384/2840_vm +/pgdata/pgdata/base/16384/2841 +/pgdata/pgdata/base/16384/2995 +/pgdata/pgdata/base/16384/2996 +/pgdata/pgdata/base/16384/3079 +/pgdata/pgdata/base/16384/3079_fsm +/pgdata/pgdata/base/16384/3079_vm +/pgdata/pgdata/base/16384/3080 +/pgdata/pgdata/base/16384/3081 +/pgdata/pgdata/base/16384/3085 +/pgdata/pgdata/base/16384/3118 +/pgdata/pgdata/base/16384/3119 +/pgdata/pgdata/base/16384/3164 +/pgdata/pgdata/base/16384/3256 +/pgdata/pgdata/base/16384/3257 +/pgdata/pgdata/base/16384/3258 +/pgdata/pgdata/base/16384/3350 +/pgdata/pgdata/base/16384/3351 +/pgdata/pgdata/base/16384/3379 +/pgdata/pgdata/base/16384/3380 +/pgdata/pgdata/base/16384/3381 +/pgdata/pgdata/base/16384/3394 +/pgdata/pgdata/base/16384/3394_fsm +/pgdata/pgdata/base/16384/3394_vm +/pgdata/pgdata/base/16384/3395 +/pgdata/pgdata/base/16384/3429 +/pgdata/pgdata/base/16384/3430 +/pgdata/pgdata/base/16384/3431 +/pgdata/pgdata/base/16384/3433 +/pgdata/pgdata/base/16384/3439 +/pgdata/pgdata/base/16384/3440 +/pgdata/pgdata/base/16384/3455 +/pgdata/pgdata/base/16384/3456 +/pgdata/pgdata/base/16384/3456_fsm +/pgdata/pgdata/base/16384/3456_vm +/pgdata/pgdata/base/16384/3466 +/pgdata/pgdata/base/16384/3467 +/pgdata/pgdata/base/16384/3468 +/pgdata/pgdata/base/16384/3501 +/pgdata/pgdata/base/16384/3502 +/pgdata/pgdata/base/16384/3503 +/pgdata/pgdata/base/16384/3534 +/pgdata/pgdata/base/16384/3541 +/pgdata/pgdata/base/16384/3541_fsm +/pgdata/pgdata/base/16384/3541_vm +/pgdata/pgdata/base/16384/3542 +/pgdata/pgdata/base/16384/3574 +/pgdata/pgdata/base/16384/3575 +/pgdata/pgdata/base/16384/3576 +/pgdata/pgdata/base/16384/3596 +/pgdata/pgdata/base/16384/3597 +/pgdata/pgdata/base/16384/3598 +/pgdata/pgdata/base/16384/3599 +/pgdata/pgdata/base/16384/3600 +/pgdata/pgdata/base/16384/3600_fsm +/pgdata/pgdata/base/16384/3600_vm +/pgdata/pgdata/base/16384/3601 +/pgdata/pgdata/base/16384/3601_fsm +/pgdata/pgdata/base/16384/3601_vm +/pgdata/pgdata/base/16384/3602 +/pgdata/pgdata/base/16384/3602_fsm +/pgdata/pgdata/base/16384/3602_vm +/pgdata/pgdata/base/16384/3603 +/pgdata/pgdata/base/16384/3603_fsm +/pgdata/pgdata/base/16384/3603_vm +/pgdata/pgdata/base/16384/3604 +/pgdata/pgdata/base/16384/3605 +/pgdata/pgdata/base/16384/3606 +/pgdata/pgdata/base/16384/3607 +/pgdata/pgdata/base/16384/3608 +/pgdata/pgdata/base/16384/3609 +/pgdata/pgdata/base/16384/3712 +/pgdata/pgdata/base/16384/3764 +/pgdata/pgdata/base/16384/3764_fsm +/pgdata/pgdata/base/16384/3764_vm +/pgdata/pgdata/base/16384/3766 +/pgdata/pgdata/base/16384/3767 +/pgdata/pgdata/base/16384/3997 +/pgdata/pgdata/base/16384/4143 +/pgdata/pgdata/base/16384/4144 +/pgdata/pgdata/base/16384/4145 +/pgdata/pgdata/base/16384/4146 +/pgdata/pgdata/base/16384/4147 +/pgdata/pgdata/base/16384/4148 +/pgdata/pgdata/base/16384/4149 +/pgdata/pgdata/base/16384/4150 +/pgdata/pgdata/base/16384/4151 +/pgdata/pgdata/base/16384/4152 +/pgdata/pgdata/base/16384/4153 +/pgdata/pgdata/base/16384/4154 +/pgdata/pgdata/base/16384/4155 +/pgdata/pgdata/base/16384/4156 +/pgdata/pgdata/base/16384/4157 +/pgdata/pgdata/base/16384/4158 +/pgdata/pgdata/base/16384/4159 +/pgdata/pgdata/base/16384/4160 +/pgdata/pgdata/base/16384/4163 +/pgdata/pgdata/base/16384/4164 +/pgdata/pgdata/base/16384/4165 +/pgdata/pgdata/base/16384/4166 +/pgdata/pgdata/base/16384/4167 +/pgdata/pgdata/base/16384/4168 +/pgdata/pgdata/base/16384/4169 +/pgdata/pgdata/base/16384/4170 +/pgdata/pgdata/base/16384/4171 +/pgdata/pgdata/base/16384/4172 +/pgdata/pgdata/base/16384/4173 +/pgdata/pgdata/base/16384/4174 +/pgdata/pgdata/base/16384/5002 +/pgdata/pgdata/base/16384/6102 +/pgdata/pgdata/base/16384/6104 +/pgdata/pgdata/base/16384/6106 +/pgdata/pgdata/base/16384/6110 +/pgdata/pgdata/base/16384/6111 +/pgdata/pgdata/base/16384/6112 +/pgdata/pgdata/base/16384/6113 +/pgdata/pgdata/base/16384/6116 +/pgdata/pgdata/base/16384/6117 +/pgdata/pgdata/base/16384/6175 +/pgdata/pgdata/base/16384/6176 +/pgdata/pgdata/base/16384/6228 +/pgdata/pgdata/base/16384/6229 +/pgdata/pgdata/base/16384/6237 +/pgdata/pgdata/base/16384/6238 +/pgdata/pgdata/base/16384/6239 +/pgdata/pgdata/base/16384/6351 +/pgdata/pgdata/base/16384/6352 +/pgdata/pgdata/base/16384/13476 +/pgdata/pgdata/base/16384/13476_fsm +/pgdata/pgdata/base/16384/13476_vm +/pgdata/pgdata/base/16384/13479 +/pgdata/pgdata/base/16384/13480 +/pgdata/pgdata/base/16384/13481 +/pgdata/pgdata/base/16384/13481_fsm +/pgdata/pgdata/base/16384/13481_vm +/pgdata/pgdata/base/16384/13484 +/pgdata/pgdata/base/16384/13485 +/pgdata/pgdata/base/16384/13486 +/pgdata/pgdata/base/16384/13486_fsm +/pgdata/pgdata/base/16384/13486_vm +/pgdata/pgdata/base/16384/13489 +/pgdata/pgdata/base/16384/13490 +/pgdata/pgdata/base/16384/13491 +/pgdata/pgdata/base/16384/13491_fsm +/pgdata/pgdata/base/16384/13491_vm +/pgdata/pgdata/base/16384/13494 +/pgdata/pgdata/base/16384/13495 +/pgdata/pgdata/base/16384/16389 +/pgdata/pgdata/base/16384/16394 +/pgdata/pgdata/base/16384/16396 +/pgdata/pgdata/base/16384/16405 +/pgdata/pgdata/base/16384/16406 +/pgdata/pgdata/base/16384/16408 +/pgdata/pgdata/base/16384/16417 +/pgdata/pgdata/base/16384/16418 +/pgdata/pgdata/base/16384/16419 +/pgdata/pgdata/base/16384/16421 +/pgdata/pgdata/base/16384/16428 +/pgdata/pgdata/base/16384/16429 +/pgdata/pgdata/base/16384/16439 +/pgdata/pgdata/base/16384/16440 +/pgdata/pgdata/base/16384/16441 +/pgdata/pgdata/base/16384/16461 +/pgdata/pgdata/base/16384/16462 +/pgdata/pgdata/base/16384/16470 +/pgdata/pgdata/base/16384/16471 +/pgdata/pgdata/base/16384/16472 +/pgdata/pgdata/base/16384/16474 +/pgdata/pgdata/base/16384/16477 +/pgdata/pgdata/base/16384/16486 +/pgdata/pgdata/base/16384/16488 +/pgdata/pgdata/base/16384/16490 +/pgdata/pgdata/base/16384/16492 +/pgdata/pgdata/base/16384/16496 +/pgdata/pgdata/base/16384/16503 +/pgdata/pgdata/base/16384/16509 +/pgdata/pgdata/base/16384/16517 +/pgdata/pgdata/base/16384/16517_fsm +/pgdata/pgdata/base/16384/16528 +/pgdata/pgdata/base/16384/16529 +/pgdata/pgdata/base/16384/16530 +/pgdata/pgdata/base/16384/16548 +/pgdata/pgdata/base/16384/16555 +/pgdata/pgdata/base/16384/16556 +/pgdata/pgdata/base/16384/16557 +/pgdata/pgdata/base/16384/16569 +/pgdata/pgdata/base/16384/16574 +/pgdata/pgdata/base/16384/16581 +/pgdata/pgdata/base/16384/16582 +/pgdata/pgdata/base/16384/16591 +/pgdata/pgdata/base/16384/16599 +/pgdata/pgdata/base/16384/16601 +/pgdata/pgdata/base/16384/16611 +/pgdata/pgdata/base/16384/16612 +/pgdata/pgdata/base/16384/16613 +/pgdata/pgdata/base/16384/16620 +/pgdata/pgdata/base/16384/16625 +/pgdata/pgdata/base/16384/16633 +/pgdata/pgdata/base/16384/16636 +/pgdata/pgdata/base/16384/16637 +/pgdata/pgdata/base/16384/16653 +/pgdata/pgdata/base/16384/16655 +/pgdata/pgdata/base/16384/16657 +/pgdata/pgdata/base/16384/16661 +/pgdata/pgdata/base/16384/16662 +/pgdata/pgdata/base/16384/16663 +/pgdata/pgdata/base/16384/16664 +/pgdata/pgdata/base/16384/pg_filenode.map +/pgdata/pgdata/base/16384/pg_internal.init +/pgdata/pgdata/base/16384/PG_VERSION +/pgdata/pgdata/global/1213 +/pgdata/pgdata/global/1213_fsm +/pgdata/pgdata/global/1213_vm +/pgdata/pgdata/global/1214 +/pgdata/pgdata/global/1232 +/pgdata/pgdata/global/1233 +/pgdata/pgdata/global/1260 +/pgdata/pgdata/global/1260_fsm +/pgdata/pgdata/global/1260_vm +/pgdata/pgdata/global/1261 +/pgdata/pgdata/global/1261_fsm +/pgdata/pgdata/global/1261_vm +/pgdata/pgdata/global/1262 +/pgdata/pgdata/global/1262_fsm +/pgdata/pgdata/global/1262_vm +/pgdata/pgdata/global/2396 +/pgdata/pgdata/global/2396_fsm +/pgdata/pgdata/global/2396_vm +/pgdata/pgdata/global/2397 +/pgdata/pgdata/global/2671 +/pgdata/pgdata/global/2672 +/pgdata/pgdata/global/2676 +/pgdata/pgdata/global/2677 +/pgdata/pgdata/global/2694 +/pgdata/pgdata/global/2695 +/pgdata/pgdata/global/2697 +/pgdata/pgdata/global/2698 +/pgdata/pgdata/global/2846 +/pgdata/pgdata/global/2847 +/pgdata/pgdata/global/2964 +/pgdata/pgdata/global/2965 +/pgdata/pgdata/global/2966 +/pgdata/pgdata/global/2967 +/pgdata/pgdata/global/3592 +/pgdata/pgdata/global/3593 +/pgdata/pgdata/global/4060 +/pgdata/pgdata/global/4061 +/pgdata/pgdata/global/4177 +/pgdata/pgdata/global/4178 +/pgdata/pgdata/global/4183 +/pgdata/pgdata/global/4184 +/pgdata/pgdata/global/4185 +/pgdata/pgdata/global/4186 +/pgdata/pgdata/global/6000 +/pgdata/pgdata/global/6001 +/pgdata/pgdata/global/6002 +/pgdata/pgdata/global/6100 +/pgdata/pgdata/global/6114 +/pgdata/pgdata/global/6115 +/pgdata/pgdata/global/6243 +/pgdata/pgdata/global/6244 +/pgdata/pgdata/global/6245 +/pgdata/pgdata/global/6246 +/pgdata/pgdata/global/6247 +/pgdata/pgdata/global/6302 +/pgdata/pgdata/global/6303 +/pgdata/pgdata/global/pg_control +/pgdata/pgdata/global/pg_filenode.map +/pgdata/pgdata/global/pg_internal.init +/pgdata/pgdata/pg_logical/replorigin_checkpoint +/pgdata/pgdata/pg_multixact/members/0000 +/pgdata/pgdata/pg_multixact/offsets/0000 +/pgdata/pgdata/pg_subtrans/0000 +/pgdata/pgdata/pg_wal/000000010000000000000001 +/pgdata/pgdata/pg_wal/000000010000000000000002 +/pgdata/pgdata/pg_xact/0000 +/pgdata/pgdata/pg_hba.conf +/pgdata/pgdata/pg_ident.conf +/pgdata/pgdata/PG_VERSION +/pgdata/pgdata/postgresql.auto.conf +/pgdata/pgdata/postgresql.conf +/pgdata/pgdata/postmaster.opts +/pgdata/pgdata/postmaster.pid +/pgdata-test/pgdata/base/1/112 +/pgdata-test/pgdata/base/1/113 +/pgdata-test/pgdata/base/1/174 +/pgdata-test/pgdata/base/1/175 +/pgdata-test/pgdata/base/1/548 +/pgdata-test/pgdata/base/1/549 +/pgdata-test/pgdata/base/1/826 +/pgdata-test/pgdata/base/1/827 +/pgdata-test/pgdata/base/1/828 +/pgdata-test/pgdata/base/1/1247 +/pgdata-test/pgdata/base/1/1247_fsm +/pgdata-test/pgdata/base/1/1247_vm +/pgdata-test/pgdata/base/1/1249 +/pgdata-test/pgdata/base/1/1249_fsm +/pgdata-test/pgdata/base/1/1249_vm +/pgdata-test/pgdata/base/1/1255 +/pgdata-test/pgdata/base/1/1255_fsm +/pgdata-test/pgdata/base/1/1255_vm +/pgdata-test/pgdata/base/1/1259 +/pgdata-test/pgdata/base/1/1259_fsm +/pgdata-test/pgdata/base/1/1259_vm +/pgdata-test/pgdata/base/1/1417 +/pgdata-test/pgdata/base/1/1418 +/pgdata-test/pgdata/base/1/2187 +/pgdata-test/pgdata/base/1/2224 +/pgdata-test/pgdata/base/1/2228 +/pgdata-test/pgdata/base/1/2328 +/pgdata-test/pgdata/base/1/2336 +/pgdata-test/pgdata/base/1/2337 +/pgdata-test/pgdata/base/1/2579 +/pgdata-test/pgdata/base/1/2600 +/pgdata-test/pgdata/base/1/2600_fsm +/pgdata-test/pgdata/base/1/2600_vm +/pgdata-test/pgdata/base/1/2601 +/pgdata-test/pgdata/base/1/2601_fsm +/pgdata-test/pgdata/base/1/2601_vm +/pgdata-test/pgdata/base/1/2602 +/pgdata-test/pgdata/base/1/2602_fsm +/pgdata-test/pgdata/base/1/2602_vm +/pgdata-test/pgdata/base/1/2603 +/pgdata-test/pgdata/base/1/2603_fsm +/pgdata-test/pgdata/base/1/2603_vm +/pgdata-test/pgdata/base/1/2604 +/pgdata-test/pgdata/base/1/2605 +/pgdata-test/pgdata/base/1/2605_fsm +/pgdata-test/pgdata/base/1/2605_vm +/pgdata-test/pgdata/base/1/2606 +/pgdata-test/pgdata/base/1/2606_fsm +/pgdata-test/pgdata/base/1/2606_vm +/pgdata-test/pgdata/base/1/2607 +/pgdata-test/pgdata/base/1/2607_fsm +/pgdata-test/pgdata/base/1/2607_vm +/pgdata-test/pgdata/base/1/2608 +/pgdata-test/pgdata/base/1/2608_fsm +/pgdata-test/pgdata/base/1/2608_vm +/pgdata-test/pgdata/base/1/2609 +/pgdata-test/pgdata/base/1/2609_fsm +/pgdata-test/pgdata/base/1/2609_vm +/pgdata-test/pgdata/base/1/2610 +/pgdata-test/pgdata/base/1/2610_fsm +/pgdata-test/pgdata/base/1/2610_vm +/pgdata-test/pgdata/base/1/2611 +/pgdata-test/pgdata/base/1/2612 +/pgdata-test/pgdata/base/1/2612_fsm +/pgdata-test/pgdata/base/1/2612_vm +/pgdata-test/pgdata/base/1/2613 +/pgdata-test/pgdata/base/1/2615 +/pgdata-test/pgdata/base/1/2615_fsm +/pgdata-test/pgdata/base/1/2615_vm +/pgdata-test/pgdata/base/1/2616 +/pgdata-test/pgdata/base/1/2616_fsm +/pgdata-test/pgdata/base/1/2616_vm +/pgdata-test/pgdata/base/1/2617 +/pgdata-test/pgdata/base/1/2617_fsm +/pgdata-test/pgdata/base/1/2617_vm +/pgdata-test/pgdata/base/1/2618 +/pgdata-test/pgdata/base/1/2618_fsm +/pgdata-test/pgdata/base/1/2618_vm +/pgdata-test/pgdata/base/1/2619 +/pgdata-test/pgdata/base/1/2619_fsm +/pgdata-test/pgdata/base/1/2619_vm +/pgdata-test/pgdata/base/1/2620 +/pgdata-test/pgdata/base/1/2650 +/pgdata-test/pgdata/base/1/2651 +/pgdata-test/pgdata/base/1/2652 +/pgdata-test/pgdata/base/1/2653 +/pgdata-test/pgdata/base/1/2654 +/pgdata-test/pgdata/base/1/2655 +/pgdata-test/pgdata/base/1/2656 +/pgdata-test/pgdata/base/1/2657 +/pgdata-test/pgdata/base/1/2658 +/pgdata-test/pgdata/base/1/2659 +/pgdata-test/pgdata/base/1/2660 +/pgdata-test/pgdata/base/1/2661 +/pgdata-test/pgdata/base/1/2662 +/pgdata-test/pgdata/base/1/2663 +/pgdata-test/pgdata/base/1/2664 +/pgdata-test/pgdata/base/1/2665 +/pgdata-test/pgdata/base/1/2666 +/pgdata-test/pgdata/base/1/2667 +/pgdata-test/pgdata/base/1/2668 +/pgdata-test/pgdata/base/1/2669 +/pgdata-test/pgdata/base/1/2670 +/pgdata-test/pgdata/base/1/2673 +/pgdata-test/pgdata/base/1/2674 +/pgdata-test/pgdata/base/1/2675 +/pgdata-test/pgdata/base/1/2678 +/pgdata-test/pgdata/base/1/2679 +/pgdata-test/pgdata/base/1/2680 +/pgdata-test/pgdata/base/1/2681 +/pgdata-test/pgdata/base/1/2682 +/pgdata-test/pgdata/base/1/2683 +/pgdata-test/pgdata/base/1/2684 +/pgdata-test/pgdata/base/1/2685 +/pgdata-test/pgdata/base/1/2686 +/pgdata-test/pgdata/base/1/2687 +/pgdata-test/pgdata/base/1/2688 +/pgdata-test/pgdata/base/1/2689 +/pgdata-test/pgdata/base/1/2690 +/pgdata-test/pgdata/base/1/2691 +/pgdata-test/pgdata/base/1/2692 +/pgdata-test/pgdata/base/1/2693 +/pgdata-test/pgdata/base/1/2696 +/pgdata-test/pgdata/base/1/2699 +/pgdata-test/pgdata/base/1/2701 +/pgdata-test/pgdata/base/1/2702 +/pgdata-test/pgdata/base/1/2703 +/pgdata-test/pgdata/base/1/2704 +/pgdata-test/pgdata/base/1/2753 +/pgdata-test/pgdata/base/1/2753_fsm +/pgdata-test/pgdata/base/1/2753_vm +/pgdata-test/pgdata/base/1/2754 +/pgdata-test/pgdata/base/1/2755 +/pgdata-test/pgdata/base/1/2756 +/pgdata-test/pgdata/base/1/2757 +/pgdata-test/pgdata/base/1/2830 +/pgdata-test/pgdata/base/1/2831 +/pgdata-test/pgdata/base/1/2832 +/pgdata-test/pgdata/base/1/2833 +/pgdata-test/pgdata/base/1/2834 +/pgdata-test/pgdata/base/1/2835 +/pgdata-test/pgdata/base/1/2836 +/pgdata-test/pgdata/base/1/2836_fsm +/pgdata-test/pgdata/base/1/2836_vm +/pgdata-test/pgdata/base/1/2837 +/pgdata-test/pgdata/base/1/2838 +/pgdata-test/pgdata/base/1/2838_fsm +/pgdata-test/pgdata/base/1/2838_vm +/pgdata-test/pgdata/base/1/2839 +/pgdata-test/pgdata/base/1/2840 +/pgdata-test/pgdata/base/1/2840_fsm +/pgdata-test/pgdata/base/1/2840_vm +/pgdata-test/pgdata/base/1/2841 +/pgdata-test/pgdata/base/1/2995 +/pgdata-test/pgdata/base/1/2996 +/pgdata-test/pgdata/base/1/3079 +/pgdata-test/pgdata/base/1/3079_fsm +/pgdata-test/pgdata/base/1/3079_vm +/pgdata-test/pgdata/base/1/3080 +/pgdata-test/pgdata/base/1/3081 +/pgdata-test/pgdata/base/1/3085 +/pgdata-test/pgdata/base/1/3118 +/pgdata-test/pgdata/base/1/3119 +/pgdata-test/pgdata/base/1/3164 +/pgdata-test/pgdata/base/1/3256 +/pgdata-test/pgdata/base/1/3257 +/pgdata-test/pgdata/base/1/3258 +/pgdata-test/pgdata/base/1/3350 +/pgdata-test/pgdata/base/1/3351 +/pgdata-test/pgdata/base/1/3379 +/pgdata-test/pgdata/base/1/3380 +/pgdata-test/pgdata/base/1/3381 +/pgdata-test/pgdata/base/1/3394 +/pgdata-test/pgdata/base/1/3394_fsm +/pgdata-test/pgdata/base/1/3394_vm +/pgdata-test/pgdata/base/1/3395 +/pgdata-test/pgdata/base/1/3429 +/pgdata-test/pgdata/base/1/3430 +/pgdata-test/pgdata/base/1/3431 +/pgdata-test/pgdata/base/1/3433 +/pgdata-test/pgdata/base/1/3439 +/pgdata-test/pgdata/base/1/3440 +/pgdata-test/pgdata/base/1/3455 +/pgdata-test/pgdata/base/1/3456 +/pgdata-test/pgdata/base/1/3456_fsm +/pgdata-test/pgdata/base/1/3456_vm +/pgdata-test/pgdata/base/1/3466 +/pgdata-test/pgdata/base/1/3467 +/pgdata-test/pgdata/base/1/3468 +/pgdata-test/pgdata/base/1/3501 +/pgdata-test/pgdata/base/1/3502 +/pgdata-test/pgdata/base/1/3503 +/pgdata-test/pgdata/base/1/3534 +/pgdata-test/pgdata/base/1/3541 +/pgdata-test/pgdata/base/1/3541_fsm +/pgdata-test/pgdata/base/1/3541_vm +/pgdata-test/pgdata/base/1/3542 +/pgdata-test/pgdata/base/1/3574 +/pgdata-test/pgdata/base/1/3575 +/pgdata-test/pgdata/base/1/3576 +/pgdata-test/pgdata/base/1/3596 +/pgdata-test/pgdata/base/1/3597 +/pgdata-test/pgdata/base/1/3598 +/pgdata-test/pgdata/base/1/3599 +/pgdata-test/pgdata/base/1/3600 +/pgdata-test/pgdata/base/1/3600_fsm +/pgdata-test/pgdata/base/1/3600_vm +/pgdata-test/pgdata/base/1/3601 +/pgdata-test/pgdata/base/1/3601_fsm +/pgdata-test/pgdata/base/1/3601_vm +/pgdata-test/pgdata/base/1/3602 +/pgdata-test/pgdata/base/1/3602_fsm +/pgdata-test/pgdata/base/1/3602_vm +/pgdata-test/pgdata/base/1/3603 +/pgdata-test/pgdata/base/1/3603_fsm +/pgdata-test/pgdata/base/1/3603_vm +/pgdata-test/pgdata/base/1/3604 +/pgdata-test/pgdata/base/1/3605 +/pgdata-test/pgdata/base/1/3606 +/pgdata-test/pgdata/base/1/3607 +/pgdata-test/pgdata/base/1/3608 +/pgdata-test/pgdata/base/1/3609 +/pgdata-test/pgdata/base/1/3712 +/pgdata-test/pgdata/base/1/3764 +/pgdata-test/pgdata/base/1/3764_fsm +/pgdata-test/pgdata/base/1/3764_vm +/pgdata-test/pgdata/base/1/3766 +/pgdata-test/pgdata/base/1/3767 +/pgdata-test/pgdata/base/1/3997 +/pgdata-test/pgdata/base/1/4143 +/pgdata-test/pgdata/base/1/4144 +/pgdata-test/pgdata/base/1/4145 +/pgdata-test/pgdata/base/1/4146 +/pgdata-test/pgdata/base/1/4147 +/pgdata-test/pgdata/base/1/4148 +/pgdata-test/pgdata/base/1/4149 +/pgdata-test/pgdata/base/1/4150 +/pgdata-test/pgdata/base/1/4151 +/pgdata-test/pgdata/base/1/4152 +/pgdata-test/pgdata/base/1/4153 +/pgdata-test/pgdata/base/1/4154 +/pgdata-test/pgdata/base/1/4155 +/pgdata-test/pgdata/base/1/4156 +/pgdata-test/pgdata/base/1/4157 +/pgdata-test/pgdata/base/1/4158 +/pgdata-test/pgdata/base/1/4159 +/pgdata-test/pgdata/base/1/4160 +/pgdata-test/pgdata/base/1/4163 +/pgdata-test/pgdata/base/1/4164 +/pgdata-test/pgdata/base/1/4165 +/pgdata-test/pgdata/base/1/4166 +/pgdata-test/pgdata/base/1/4167 +/pgdata-test/pgdata/base/1/4168 +/pgdata-test/pgdata/base/1/4169 +/pgdata-test/pgdata/base/1/4170 +/pgdata-test/pgdata/base/1/4171 +/pgdata-test/pgdata/base/1/4172 +/pgdata-test/pgdata/base/1/4173 +/pgdata-test/pgdata/base/1/4174 +/pgdata-test/pgdata/base/1/5002 +/pgdata-test/pgdata/base/1/6102 +/pgdata-test/pgdata/base/1/6104 +/pgdata-test/pgdata/base/1/6106 +/pgdata-test/pgdata/base/1/6110 +/pgdata-test/pgdata/base/1/6111 +/pgdata-test/pgdata/base/1/6112 +/pgdata-test/pgdata/base/1/6113 +/pgdata-test/pgdata/base/1/6116 +/pgdata-test/pgdata/base/1/6117 +/pgdata-test/pgdata/base/1/6175 +/pgdata-test/pgdata/base/1/6176 +/pgdata-test/pgdata/base/1/6228 +/pgdata-test/pgdata/base/1/6229 +/pgdata-test/pgdata/base/1/6237 +/pgdata-test/pgdata/base/1/6238 +/pgdata-test/pgdata/base/1/6239 +/pgdata-test/pgdata/base/1/6351 +/pgdata-test/pgdata/base/1/6352 +/pgdata-test/pgdata/base/1/13476 +/pgdata-test/pgdata/base/1/13476_fsm +/pgdata-test/pgdata/base/1/13476_vm +/pgdata-test/pgdata/base/1/13479 +/pgdata-test/pgdata/base/1/13480 +/pgdata-test/pgdata/base/1/13481 +/pgdata-test/pgdata/base/1/13481_fsm +/pgdata-test/pgdata/base/1/13481_vm +/pgdata-test/pgdata/base/1/13484 +/pgdata-test/pgdata/base/1/13485 +/pgdata-test/pgdata/base/1/13486 +/pgdata-test/pgdata/base/1/13486_fsm +/pgdata-test/pgdata/base/1/13486_vm +/pgdata-test/pgdata/base/1/13489 +/pgdata-test/pgdata/base/1/13490 +/pgdata-test/pgdata/base/1/13491 +/pgdata-test/pgdata/base/1/13491_fsm +/pgdata-test/pgdata/base/1/13491_vm +/pgdata-test/pgdata/base/1/13494 +/pgdata-test/pgdata/base/1/13495 +/pgdata-test/pgdata/base/1/pg_filenode.map +/pgdata-test/pgdata/base/1/PG_VERSION +/pgdata-test/pgdata/base/4/112 +/pgdata-test/pgdata/base/4/113 +/pgdata-test/pgdata/base/4/174 +/pgdata-test/pgdata/base/4/175 +/pgdata-test/pgdata/base/4/548 +/pgdata-test/pgdata/base/4/549 +/pgdata-test/pgdata/base/4/826 +/pgdata-test/pgdata/base/4/827 +/pgdata-test/pgdata/base/4/828 +/pgdata-test/pgdata/base/4/1247 +/pgdata-test/pgdata/base/4/1247_fsm +/pgdata-test/pgdata/base/4/1247_vm +/pgdata-test/pgdata/base/4/1249 +/pgdata-test/pgdata/base/4/1249_fsm +/pgdata-test/pgdata/base/4/1249_vm +/pgdata-test/pgdata/base/4/1255 +/pgdata-test/pgdata/base/4/1255_fsm +/pgdata-test/pgdata/base/4/1255_vm +/pgdata-test/pgdata/base/4/1259 +/pgdata-test/pgdata/base/4/1259_fsm +/pgdata-test/pgdata/base/4/1259_vm +/pgdata-test/pgdata/base/4/1417 +/pgdata-test/pgdata/base/4/1418 +/pgdata-test/pgdata/base/4/2187 +/pgdata-test/pgdata/base/4/2224 +/pgdata-test/pgdata/base/4/2228 +/pgdata-test/pgdata/base/4/2328 +/pgdata-test/pgdata/base/4/2336 +/pgdata-test/pgdata/base/4/2337 +/pgdata-test/pgdata/base/4/2579 +/pgdata-test/pgdata/base/4/2600 +/pgdata-test/pgdata/base/4/2600_fsm +/pgdata-test/pgdata/base/4/2600_vm +/pgdata-test/pgdata/base/4/2601 +/pgdata-test/pgdata/base/4/2601_fsm +/pgdata-test/pgdata/base/4/2601_vm +/pgdata-test/pgdata/base/4/2602 +/pgdata-test/pgdata/base/4/2602_fsm +/pgdata-test/pgdata/base/4/2602_vm +/pgdata-test/pgdata/base/4/2603 +/pgdata-test/pgdata/base/4/2603_fsm +/pgdata-test/pgdata/base/4/2603_vm +/pgdata-test/pgdata/base/4/2604 +/pgdata-test/pgdata/base/4/2605 +/pgdata-test/pgdata/base/4/2605_fsm +/pgdata-test/pgdata/base/4/2605_vm +/pgdata-test/pgdata/base/4/2606 +/pgdata-test/pgdata/base/4/2606_fsm +/pgdata-test/pgdata/base/4/2606_vm +/pgdata-test/pgdata/base/4/2607 +/pgdata-test/pgdata/base/4/2607_fsm +/pgdata-test/pgdata/base/4/2607_vm +/pgdata-test/pgdata/base/4/2608 +/pgdata-test/pgdata/base/4/2608_fsm +/pgdata-test/pgdata/base/4/2608_vm +/pgdata-test/pgdata/base/4/2609 +/pgdata-test/pgdata/base/4/2609_fsm +/pgdata-test/pgdata/base/4/2609_vm +/pgdata-test/pgdata/base/4/2610 +/pgdata-test/pgdata/base/4/2610_fsm +/pgdata-test/pgdata/base/4/2610_vm +/pgdata-test/pgdata/base/4/2611 +/pgdata-test/pgdata/base/4/2612 +/pgdata-test/pgdata/base/4/2612_fsm +/pgdata-test/pgdata/base/4/2612_vm +/pgdata-test/pgdata/base/4/2613 +/pgdata-test/pgdata/base/4/2615 +/pgdata-test/pgdata/base/4/2615_fsm +/pgdata-test/pgdata/base/4/2615_vm +/pgdata-test/pgdata/base/4/2616 +/pgdata-test/pgdata/base/4/2616_fsm +/pgdata-test/pgdata/base/4/2616_vm +/pgdata-test/pgdata/base/4/2617 +/pgdata-test/pgdata/base/4/2617_fsm +/pgdata-test/pgdata/base/4/2617_vm +/pgdata-test/pgdata/base/4/2618 +/pgdata-test/pgdata/base/4/2618_fsm +/pgdata-test/pgdata/base/4/2618_vm +/pgdata-test/pgdata/base/4/2619 +/pgdata-test/pgdata/base/4/2619_fsm +/pgdata-test/pgdata/base/4/2619_vm +/pgdata-test/pgdata/base/4/2620 +/pgdata-test/pgdata/base/4/2650 +/pgdata-test/pgdata/base/4/2651 +/pgdata-test/pgdata/base/4/2652 +/pgdata-test/pgdata/base/4/2653 +/pgdata-test/pgdata/base/4/2654 +/pgdata-test/pgdata/base/4/2655 +/pgdata-test/pgdata/base/4/2656 +/pgdata-test/pgdata/base/4/2657 +/pgdata-test/pgdata/base/4/2658 +/pgdata-test/pgdata/base/4/2659 +/pgdata-test/pgdata/base/4/2660 +/pgdata-test/pgdata/base/4/2661 +/pgdata-test/pgdata/base/4/2662 +/pgdata-test/pgdata/base/4/2663 +/pgdata-test/pgdata/base/4/2664 +/pgdata-test/pgdata/base/4/2665 +/pgdata-test/pgdata/base/4/2666 +/pgdata-test/pgdata/base/4/2667 +/pgdata-test/pgdata/base/4/2668 +/pgdata-test/pgdata/base/4/2669 +/pgdata-test/pgdata/base/4/2670 +/pgdata-test/pgdata/base/4/2673 +/pgdata-test/pgdata/base/4/2674 +/pgdata-test/pgdata/base/4/2675 +/pgdata-test/pgdata/base/4/2678 +/pgdata-test/pgdata/base/4/2679 +/pgdata-test/pgdata/base/4/2680 +/pgdata-test/pgdata/base/4/2681 +/pgdata-test/pgdata/base/4/2682 +/pgdata-test/pgdata/base/4/2683 +/pgdata-test/pgdata/base/4/2684 +/pgdata-test/pgdata/base/4/2685 +/pgdata-test/pgdata/base/4/2686 +/pgdata-test/pgdata/base/4/2687 +/pgdata-test/pgdata/base/4/2688 +/pgdata-test/pgdata/base/4/2689 +/pgdata-test/pgdata/base/4/2690 +/pgdata-test/pgdata/base/4/2691 +/pgdata-test/pgdata/base/4/2692 +/pgdata-test/pgdata/base/4/2693 +/pgdata-test/pgdata/base/4/2696 +/pgdata-test/pgdata/base/4/2699 +/pgdata-test/pgdata/base/4/2701 +/pgdata-test/pgdata/base/4/2702 +/pgdata-test/pgdata/base/4/2703 +/pgdata-test/pgdata/base/4/2704 +/pgdata-test/pgdata/base/4/2753 +/pgdata-test/pgdata/base/4/2753_fsm +/pgdata-test/pgdata/base/4/2753_vm +/pgdata-test/pgdata/base/4/2754 +/pgdata-test/pgdata/base/4/2755 +/pgdata-test/pgdata/base/4/2756 +/pgdata-test/pgdata/base/4/2757 +/pgdata-test/pgdata/base/4/2830 +/pgdata-test/pgdata/base/4/2831 +/pgdata-test/pgdata/base/4/2832 +/pgdata-test/pgdata/base/4/2833 +/pgdata-test/pgdata/base/4/2834 +/pgdata-test/pgdata/base/4/2835 +/pgdata-test/pgdata/base/4/2836 +/pgdata-test/pgdata/base/4/2836_fsm +/pgdata-test/pgdata/base/4/2836_vm +/pgdata-test/pgdata/base/4/2837 +/pgdata-test/pgdata/base/4/2838 +/pgdata-test/pgdata/base/4/2838_fsm +/pgdata-test/pgdata/base/4/2838_vm +/pgdata-test/pgdata/base/4/2839 +/pgdata-test/pgdata/base/4/2840 +/pgdata-test/pgdata/base/4/2840_fsm +/pgdata-test/pgdata/base/4/2840_vm +/pgdata-test/pgdata/base/4/2841 +/pgdata-test/pgdata/base/4/2995 +/pgdata-test/pgdata/base/4/2996 +/pgdata-test/pgdata/base/4/3079 +/pgdata-test/pgdata/base/4/3079_fsm +/pgdata-test/pgdata/base/4/3079_vm +/pgdata-test/pgdata/base/4/3080 +/pgdata-test/pgdata/base/4/3081 +/pgdata-test/pgdata/base/4/3085 +/pgdata-test/pgdata/base/4/3118 +/pgdata-test/pgdata/base/4/3119 +/pgdata-test/pgdata/base/4/3164 +/pgdata-test/pgdata/base/4/3256 +/pgdata-test/pgdata/base/4/3257 +/pgdata-test/pgdata/base/4/3258 +/pgdata-test/pgdata/base/4/3350 +/pgdata-test/pgdata/base/4/3351 +/pgdata-test/pgdata/base/4/3379 +/pgdata-test/pgdata/base/4/3380 +/pgdata-test/pgdata/base/4/3381 +/pgdata-test/pgdata/base/4/3394 +/pgdata-test/pgdata/base/4/3394_fsm +/pgdata-test/pgdata/base/4/3394_vm +/pgdata-test/pgdata/base/4/3395 +/pgdata-test/pgdata/base/4/3429 +/pgdata-test/pgdata/base/4/3430 +/pgdata-test/pgdata/base/4/3431 +/pgdata-test/pgdata/base/4/3433 +/pgdata-test/pgdata/base/4/3439 +/pgdata-test/pgdata/base/4/3440 +/pgdata-test/pgdata/base/4/3455 +/pgdata-test/pgdata/base/4/3456 +/pgdata-test/pgdata/base/4/3456_fsm +/pgdata-test/pgdata/base/4/3456_vm +/pgdata-test/pgdata/base/4/3466 +/pgdata-test/pgdata/base/4/3467 +/pgdata-test/pgdata/base/4/3468 +/pgdata-test/pgdata/base/4/3501 +/pgdata-test/pgdata/base/4/3502 +/pgdata-test/pgdata/base/4/3503 +/pgdata-test/pgdata/base/4/3534 +/pgdata-test/pgdata/base/4/3541 +/pgdata-test/pgdata/base/4/3541_fsm +/pgdata-test/pgdata/base/4/3541_vm +/pgdata-test/pgdata/base/4/3542 +/pgdata-test/pgdata/base/4/3574 +/pgdata-test/pgdata/base/4/3575 +/pgdata-test/pgdata/base/4/3576 +/pgdata-test/pgdata/base/4/3596 +/pgdata-test/pgdata/base/4/3597 +/pgdata-test/pgdata/base/4/3598 +/pgdata-test/pgdata/base/4/3599 +/pgdata-test/pgdata/base/4/3600 +/pgdata-test/pgdata/base/4/3600_fsm +/pgdata-test/pgdata/base/4/3600_vm +/pgdata-test/pgdata/base/4/3601 +/pgdata-test/pgdata/base/4/3601_fsm +/pgdata-test/pgdata/base/4/3601_vm +/pgdata-test/pgdata/base/4/3602 +/pgdata-test/pgdata/base/4/3602_fsm +/pgdata-test/pgdata/base/4/3602_vm +/pgdata-test/pgdata/base/4/3603 +/pgdata-test/pgdata/base/4/3603_fsm +/pgdata-test/pgdata/base/4/3603_vm +/pgdata-test/pgdata/base/4/3604 +/pgdata-test/pgdata/base/4/3605 +/pgdata-test/pgdata/base/4/3606 +/pgdata-test/pgdata/base/4/3607 +/pgdata-test/pgdata/base/4/3608 +/pgdata-test/pgdata/base/4/3609 +/pgdata-test/pgdata/base/4/3712 +/pgdata-test/pgdata/base/4/3764 +/pgdata-test/pgdata/base/4/3764_fsm +/pgdata-test/pgdata/base/4/3764_vm +/pgdata-test/pgdata/base/4/3766 +/pgdata-test/pgdata/base/4/3767 +/pgdata-test/pgdata/base/4/3997 +/pgdata-test/pgdata/base/4/4143 +/pgdata-test/pgdata/base/4/4144 +/pgdata-test/pgdata/base/4/4145 +/pgdata-test/pgdata/base/4/4146 +/pgdata-test/pgdata/base/4/4147 +/pgdata-test/pgdata/base/4/4148 +/pgdata-test/pgdata/base/4/4149 +/pgdata-test/pgdata/base/4/4150 +/pgdata-test/pgdata/base/4/4151 +/pgdata-test/pgdata/base/4/4152 +/pgdata-test/pgdata/base/4/4153 +/pgdata-test/pgdata/base/4/4154 +/pgdata-test/pgdata/base/4/4155 +/pgdata-test/pgdata/base/4/4156 +/pgdata-test/pgdata/base/4/4157 +/pgdata-test/pgdata/base/4/4158 +/pgdata-test/pgdata/base/4/4159 +/pgdata-test/pgdata/base/4/4160 +/pgdata-test/pgdata/base/4/4163 +/pgdata-test/pgdata/base/4/4164 +/pgdata-test/pgdata/base/4/4165 +/pgdata-test/pgdata/base/4/4166 +/pgdata-test/pgdata/base/4/4167 +/pgdata-test/pgdata/base/4/4168 +/pgdata-test/pgdata/base/4/4169 +/pgdata-test/pgdata/base/4/4170 +/pgdata-test/pgdata/base/4/4171 +/pgdata-test/pgdata/base/4/4172 +/pgdata-test/pgdata/base/4/4173 +/pgdata-test/pgdata/base/4/4174 +/pgdata-test/pgdata/base/4/5002 +/pgdata-test/pgdata/base/4/6102 +/pgdata-test/pgdata/base/4/6104 +/pgdata-test/pgdata/base/4/6106 +/pgdata-test/pgdata/base/4/6110 +/pgdata-test/pgdata/base/4/6111 +/pgdata-test/pgdata/base/4/6112 +/pgdata-test/pgdata/base/4/6113 +/pgdata-test/pgdata/base/4/6116 +/pgdata-test/pgdata/base/4/6117 +/pgdata-test/pgdata/base/4/6175 +/pgdata-test/pgdata/base/4/6176 +/pgdata-test/pgdata/base/4/6228 +/pgdata-test/pgdata/base/4/6229 +/pgdata-test/pgdata/base/4/6237 +/pgdata-test/pgdata/base/4/6238 +/pgdata-test/pgdata/base/4/6239 +/pgdata-test/pgdata/base/4/6351 +/pgdata-test/pgdata/base/4/6352 +/pgdata-test/pgdata/base/4/13476 +/pgdata-test/pgdata/base/4/13476_fsm +/pgdata-test/pgdata/base/4/13476_vm +/pgdata-test/pgdata/base/4/13479 +/pgdata-test/pgdata/base/4/13480 +/pgdata-test/pgdata/base/4/13481 +/pgdata-test/pgdata/base/4/13481_fsm +/pgdata-test/pgdata/base/4/13481_vm +/pgdata-test/pgdata/base/4/13484 +/pgdata-test/pgdata/base/4/13485 +/pgdata-test/pgdata/base/4/13486 +/pgdata-test/pgdata/base/4/13486_fsm +/pgdata-test/pgdata/base/4/13486_vm +/pgdata-test/pgdata/base/4/13489 +/pgdata-test/pgdata/base/4/13490 +/pgdata-test/pgdata/base/4/13491 +/pgdata-test/pgdata/base/4/13491_fsm +/pgdata-test/pgdata/base/4/13491_vm +/pgdata-test/pgdata/base/4/13494 +/pgdata-test/pgdata/base/4/13495 +/pgdata-test/pgdata/base/4/pg_filenode.map +/pgdata-test/pgdata/base/4/PG_VERSION +/pgdata-test/pgdata/base/5/112 +/pgdata-test/pgdata/base/5/113 +/pgdata-test/pgdata/base/5/174 +/pgdata-test/pgdata/base/5/175 +/pgdata-test/pgdata/base/5/548 +/pgdata-test/pgdata/base/5/549 +/pgdata-test/pgdata/base/5/826 +/pgdata-test/pgdata/base/5/827 +/pgdata-test/pgdata/base/5/828 +/pgdata-test/pgdata/base/5/1247 +/pgdata-test/pgdata/base/5/1247_fsm +/pgdata-test/pgdata/base/5/1247_vm +/pgdata-test/pgdata/base/5/1249 +/pgdata-test/pgdata/base/5/1249_fsm +/pgdata-test/pgdata/base/5/1249_vm +/pgdata-test/pgdata/base/5/1255 +/pgdata-test/pgdata/base/5/1255_fsm +/pgdata-test/pgdata/base/5/1255_vm +/pgdata-test/pgdata/base/5/1259 +/pgdata-test/pgdata/base/5/1259_fsm +/pgdata-test/pgdata/base/5/1259_vm +/pgdata-test/pgdata/base/5/1417 +/pgdata-test/pgdata/base/5/1418 +/pgdata-test/pgdata/base/5/2187 +/pgdata-test/pgdata/base/5/2224 +/pgdata-test/pgdata/base/5/2228 +/pgdata-test/pgdata/base/5/2328 +/pgdata-test/pgdata/base/5/2336 +/pgdata-test/pgdata/base/5/2337 +/pgdata-test/pgdata/base/5/2579 +/pgdata-test/pgdata/base/5/2600 +/pgdata-test/pgdata/base/5/2600_fsm +/pgdata-test/pgdata/base/5/2600_vm +/pgdata-test/pgdata/base/5/2601 +/pgdata-test/pgdata/base/5/2601_fsm +/pgdata-test/pgdata/base/5/2601_vm +/pgdata-test/pgdata/base/5/2602 +/pgdata-test/pgdata/base/5/2602_fsm +/pgdata-test/pgdata/base/5/2602_vm +/pgdata-test/pgdata/base/5/2603 +/pgdata-test/pgdata/base/5/2603_fsm +/pgdata-test/pgdata/base/5/2603_vm +/pgdata-test/pgdata/base/5/2604 +/pgdata-test/pgdata/base/5/2605 +/pgdata-test/pgdata/base/5/2605_fsm +/pgdata-test/pgdata/base/5/2605_vm +/pgdata-test/pgdata/base/5/2606 +/pgdata-test/pgdata/base/5/2606_fsm +/pgdata-test/pgdata/base/5/2606_vm +/pgdata-test/pgdata/base/5/2607 +/pgdata-test/pgdata/base/5/2607_fsm +/pgdata-test/pgdata/base/5/2607_vm +/pgdata-test/pgdata/base/5/2608 +/pgdata-test/pgdata/base/5/2608_fsm +/pgdata-test/pgdata/base/5/2608_vm +/pgdata-test/pgdata/base/5/2609 +/pgdata-test/pgdata/base/5/2609_fsm +/pgdata-test/pgdata/base/5/2609_vm +/pgdata-test/pgdata/base/5/2610 +/pgdata-test/pgdata/base/5/2610_fsm +/pgdata-test/pgdata/base/5/2610_vm +/pgdata-test/pgdata/base/5/2611 +/pgdata-test/pgdata/base/5/2612 +/pgdata-test/pgdata/base/5/2612_fsm +/pgdata-test/pgdata/base/5/2612_vm +/pgdata-test/pgdata/base/5/2613 +/pgdata-test/pgdata/base/5/2615 +/pgdata-test/pgdata/base/5/2615_fsm +/pgdata-test/pgdata/base/5/2615_vm +/pgdata-test/pgdata/base/5/2616 +/pgdata-test/pgdata/base/5/2616_fsm +/pgdata-test/pgdata/base/5/2616_vm +/pgdata-test/pgdata/base/5/2617 +/pgdata-test/pgdata/base/5/2617_fsm +/pgdata-test/pgdata/base/5/2617_vm +/pgdata-test/pgdata/base/5/2618 +/pgdata-test/pgdata/base/5/2618_fsm +/pgdata-test/pgdata/base/5/2618_vm +/pgdata-test/pgdata/base/5/2619 +/pgdata-test/pgdata/base/5/2619_fsm +/pgdata-test/pgdata/base/5/2619_vm +/pgdata-test/pgdata/base/5/2620 +/pgdata-test/pgdata/base/5/2650 +/pgdata-test/pgdata/base/5/2651 +/pgdata-test/pgdata/base/5/2652 +/pgdata-test/pgdata/base/5/2653 +/pgdata-test/pgdata/base/5/2654 +/pgdata-test/pgdata/base/5/2655 +/pgdata-test/pgdata/base/5/2656 +/pgdata-test/pgdata/base/5/2657 +/pgdata-test/pgdata/base/5/2658 +/pgdata-test/pgdata/base/5/2659 +/pgdata-test/pgdata/base/5/2660 +/pgdata-test/pgdata/base/5/2661 +/pgdata-test/pgdata/base/5/2662 +/pgdata-test/pgdata/base/5/2663 +/pgdata-test/pgdata/base/5/2664 +/pgdata-test/pgdata/base/5/2665 +/pgdata-test/pgdata/base/5/2666 +/pgdata-test/pgdata/base/5/2667 +/pgdata-test/pgdata/base/5/2668 +/pgdata-test/pgdata/base/5/2669 +/pgdata-test/pgdata/base/5/2670 +/pgdata-test/pgdata/base/5/2673 +/pgdata-test/pgdata/base/5/2674 +/pgdata-test/pgdata/base/5/2675 +/pgdata-test/pgdata/base/5/2678 +/pgdata-test/pgdata/base/5/2679 +/pgdata-test/pgdata/base/5/2680 +/pgdata-test/pgdata/base/5/2681 +/pgdata-test/pgdata/base/5/2682 +/pgdata-test/pgdata/base/5/2683 +/pgdata-test/pgdata/base/5/2684 +/pgdata-test/pgdata/base/5/2685 +/pgdata-test/pgdata/base/5/2686 +/pgdata-test/pgdata/base/5/2687 +/pgdata-test/pgdata/base/5/2688 +/pgdata-test/pgdata/base/5/2689 +/pgdata-test/pgdata/base/5/2690 +/pgdata-test/pgdata/base/5/2691 +/pgdata-test/pgdata/base/5/2692 +/pgdata-test/pgdata/base/5/2693 +/pgdata-test/pgdata/base/5/2696 +/pgdata-test/pgdata/base/5/2699 +/pgdata-test/pgdata/base/5/2701 +/pgdata-test/pgdata/base/5/2702 +/pgdata-test/pgdata/base/5/2703 +/pgdata-test/pgdata/base/5/2704 +/pgdata-test/pgdata/base/5/2753 +/pgdata-test/pgdata/base/5/2753_fsm +/pgdata-test/pgdata/base/5/2753_vm +/pgdata-test/pgdata/base/5/2754 +/pgdata-test/pgdata/base/5/2755 +/pgdata-test/pgdata/base/5/2756 +/pgdata-test/pgdata/base/5/2757 +/pgdata-test/pgdata/base/5/2830 +/pgdata-test/pgdata/base/5/2831 +/pgdata-test/pgdata/base/5/2832 +/pgdata-test/pgdata/base/5/2833 +/pgdata-test/pgdata/base/5/2834 +/pgdata-test/pgdata/base/5/2835 +/pgdata-test/pgdata/base/5/2836 +/pgdata-test/pgdata/base/5/2836_fsm +/pgdata-test/pgdata/base/5/2836_vm +/pgdata-test/pgdata/base/5/2837 +/pgdata-test/pgdata/base/5/2838 +/pgdata-test/pgdata/base/5/2838_fsm +/pgdata-test/pgdata/base/5/2838_vm +/pgdata-test/pgdata/base/5/2839 +/pgdata-test/pgdata/base/5/2840 +/pgdata-test/pgdata/base/5/2840_fsm +/pgdata-test/pgdata/base/5/2840_vm +/pgdata-test/pgdata/base/5/2841 +/pgdata-test/pgdata/base/5/2995 +/pgdata-test/pgdata/base/5/2996 +/pgdata-test/pgdata/base/5/3079 +/pgdata-test/pgdata/base/5/3079_fsm +/pgdata-test/pgdata/base/5/3079_vm +/pgdata-test/pgdata/base/5/3080 +/pgdata-test/pgdata/base/5/3081 +/pgdata-test/pgdata/base/5/3085 +/pgdata-test/pgdata/base/5/3118 +/pgdata-test/pgdata/base/5/3119 +/pgdata-test/pgdata/base/5/3164 +/pgdata-test/pgdata/base/5/3256 +/pgdata-test/pgdata/base/5/3257 +/pgdata-test/pgdata/base/5/3258 +/pgdata-test/pgdata/base/5/3350 +/pgdata-test/pgdata/base/5/3351 +/pgdata-test/pgdata/base/5/3379 +/pgdata-test/pgdata/base/5/3380 +/pgdata-test/pgdata/base/5/3381 +/pgdata-test/pgdata/base/5/3394 +/pgdata-test/pgdata/base/5/3394_fsm +/pgdata-test/pgdata/base/5/3394_vm +/pgdata-test/pgdata/base/5/3395 +/pgdata-test/pgdata/base/5/3429 +/pgdata-test/pgdata/base/5/3430 +/pgdata-test/pgdata/base/5/3431 +/pgdata-test/pgdata/base/5/3433 +/pgdata-test/pgdata/base/5/3439 +/pgdata-test/pgdata/base/5/3440 +/pgdata-test/pgdata/base/5/3455 +/pgdata-test/pgdata/base/5/3456 +/pgdata-test/pgdata/base/5/3456_fsm +/pgdata-test/pgdata/base/5/3456_vm +/pgdata-test/pgdata/base/5/3466 +/pgdata-test/pgdata/base/5/3467 +/pgdata-test/pgdata/base/5/3468 +/pgdata-test/pgdata/base/5/3501 +/pgdata-test/pgdata/base/5/3502 +/pgdata-test/pgdata/base/5/3503 +/pgdata-test/pgdata/base/5/3534 +/pgdata-test/pgdata/base/5/3541 +/pgdata-test/pgdata/base/5/3541_fsm +/pgdata-test/pgdata/base/5/3541_vm +/pgdata-test/pgdata/base/5/3542 +/pgdata-test/pgdata/base/5/3574 +/pgdata-test/pgdata/base/5/3575 +/pgdata-test/pgdata/base/5/3576 +/pgdata-test/pgdata/base/5/3596 +/pgdata-test/pgdata/base/5/3597 +/pgdata-test/pgdata/base/5/3598 +/pgdata-test/pgdata/base/5/3599 +/pgdata-test/pgdata/base/5/3600 +/pgdata-test/pgdata/base/5/3600_fsm +/pgdata-test/pgdata/base/5/3600_vm +/pgdata-test/pgdata/base/5/3601 +/pgdata-test/pgdata/base/5/3601_fsm +/pgdata-test/pgdata/base/5/3601_vm +/pgdata-test/pgdata/base/5/3602 +/pgdata-test/pgdata/base/5/3602_fsm +/pgdata-test/pgdata/base/5/3602_vm +/pgdata-test/pgdata/base/5/3603 +/pgdata-test/pgdata/base/5/3603_fsm +/pgdata-test/pgdata/base/5/3603_vm +/pgdata-test/pgdata/base/5/3604 +/pgdata-test/pgdata/base/5/3605 +/pgdata-test/pgdata/base/5/3606 +/pgdata-test/pgdata/base/5/3607 +/pgdata-test/pgdata/base/5/3608 +/pgdata-test/pgdata/base/5/3609 +/pgdata-test/pgdata/base/5/3712 +/pgdata-test/pgdata/base/5/3764 +/pgdata-test/pgdata/base/5/3764_fsm +/pgdata-test/pgdata/base/5/3764_vm +/pgdata-test/pgdata/base/5/3766 +/pgdata-test/pgdata/base/5/3767 +/pgdata-test/pgdata/base/5/3997 +/pgdata-test/pgdata/base/5/4143 +/pgdata-test/pgdata/base/5/4144 +/pgdata-test/pgdata/base/5/4145 +/pgdata-test/pgdata/base/5/4146 +/pgdata-test/pgdata/base/5/4147 +/pgdata-test/pgdata/base/5/4148 +/pgdata-test/pgdata/base/5/4149 +/pgdata-test/pgdata/base/5/4150 +/pgdata-test/pgdata/base/5/4151 +/pgdata-test/pgdata/base/5/4152 +/pgdata-test/pgdata/base/5/4153 +/pgdata-test/pgdata/base/5/4154 +/pgdata-test/pgdata/base/5/4155 +/pgdata-test/pgdata/base/5/4156 +/pgdata-test/pgdata/base/5/4157 +/pgdata-test/pgdata/base/5/4158 +/pgdata-test/pgdata/base/5/4159 +/pgdata-test/pgdata/base/5/4160 +/pgdata-test/pgdata/base/5/4163 +/pgdata-test/pgdata/base/5/4164 +/pgdata-test/pgdata/base/5/4165 +/pgdata-test/pgdata/base/5/4166 +/pgdata-test/pgdata/base/5/4167 +/pgdata-test/pgdata/base/5/4168 +/pgdata-test/pgdata/base/5/4169 +/pgdata-test/pgdata/base/5/4170 +/pgdata-test/pgdata/base/5/4171 +/pgdata-test/pgdata/base/5/4172 +/pgdata-test/pgdata/base/5/4173 +/pgdata-test/pgdata/base/5/4174 +/pgdata-test/pgdata/base/5/5002 +/pgdata-test/pgdata/base/5/6102 +/pgdata-test/pgdata/base/5/6104 +/pgdata-test/pgdata/base/5/6106 +/pgdata-test/pgdata/base/5/6110 +/pgdata-test/pgdata/base/5/6111 +/pgdata-test/pgdata/base/5/6112 +/pgdata-test/pgdata/base/5/6113 +/pgdata-test/pgdata/base/5/6116 +/pgdata-test/pgdata/base/5/6117 +/pgdata-test/pgdata/base/5/6175 +/pgdata-test/pgdata/base/5/6176 +/pgdata-test/pgdata/base/5/6228 +/pgdata-test/pgdata/base/5/6229 +/pgdata-test/pgdata/base/5/6237 +/pgdata-test/pgdata/base/5/6238 +/pgdata-test/pgdata/base/5/6239 +/pgdata-test/pgdata/base/5/6351 +/pgdata-test/pgdata/base/5/6352 +/pgdata-test/pgdata/base/5/13476 +/pgdata-test/pgdata/base/5/13476_fsm +/pgdata-test/pgdata/base/5/13476_vm +/pgdata-test/pgdata/base/5/13479 +/pgdata-test/pgdata/base/5/13480 +/pgdata-test/pgdata/base/5/13481 +/pgdata-test/pgdata/base/5/13481_fsm +/pgdata-test/pgdata/base/5/13481_vm +/pgdata-test/pgdata/base/5/13484 +/pgdata-test/pgdata/base/5/13485 +/pgdata-test/pgdata/base/5/13486 +/pgdata-test/pgdata/base/5/13486_fsm +/pgdata-test/pgdata/base/5/13486_vm +/pgdata-test/pgdata/base/5/13489 +/pgdata-test/pgdata/base/5/13490 +/pgdata-test/pgdata/base/5/13491 +/pgdata-test/pgdata/base/5/13491_fsm +/pgdata-test/pgdata/base/5/13491_vm +/pgdata-test/pgdata/base/5/13494 +/pgdata-test/pgdata/base/5/13495 +/pgdata-test/pgdata/base/5/pg_filenode.map +/pgdata-test/pgdata/base/5/pg_internal.init +/pgdata-test/pgdata/base/5/PG_VERSION +/pgdata-test/pgdata/base/16384/112 +/pgdata-test/pgdata/base/16384/113 +/pgdata-test/pgdata/base/16384/174 +/pgdata-test/pgdata/base/16384/175 +/pgdata-test/pgdata/base/16384/548 +/pgdata-test/pgdata/base/16384/549 +/pgdata-test/pgdata/base/16384/826 +/pgdata-test/pgdata/base/16384/827 +/pgdata-test/pgdata/base/16384/828 +/pgdata-test/pgdata/base/16384/1247 +/pgdata-test/pgdata/base/16384/1247_fsm +/pgdata-test/pgdata/base/16384/1247_vm +/pgdata-test/pgdata/base/16384/1249 +/pgdata-test/pgdata/base/16384/1249_fsm +/pgdata-test/pgdata/base/16384/1249_vm +/pgdata-test/pgdata/base/16384/1255 +/pgdata-test/pgdata/base/16384/1255_fsm +/pgdata-test/pgdata/base/16384/1255_vm +/pgdata-test/pgdata/base/16384/1259 +/pgdata-test/pgdata/base/16384/1259_fsm +/pgdata-test/pgdata/base/16384/1259_vm +/pgdata-test/pgdata/base/16384/1417 +/pgdata-test/pgdata/base/16384/1418 +/pgdata-test/pgdata/base/16384/2187 +/pgdata-test/pgdata/base/16384/2224 +/pgdata-test/pgdata/base/16384/2224_fsm +/pgdata-test/pgdata/base/16384/2224_vm +/pgdata-test/pgdata/base/16384/2228 +/pgdata-test/pgdata/base/16384/2328 +/pgdata-test/pgdata/base/16384/2336 +/pgdata-test/pgdata/base/16384/2337 +/pgdata-test/pgdata/base/16384/2579 +/pgdata-test/pgdata/base/16384/2579_fsm +/pgdata-test/pgdata/base/16384/2600 +/pgdata-test/pgdata/base/16384/2600_fsm +/pgdata-test/pgdata/base/16384/2600_vm +/pgdata-test/pgdata/base/16384/2601 +/pgdata-test/pgdata/base/16384/2601_fsm +/pgdata-test/pgdata/base/16384/2601_vm +/pgdata-test/pgdata/base/16384/2602 +/pgdata-test/pgdata/base/16384/2602_fsm +/pgdata-test/pgdata/base/16384/2602_vm +/pgdata-test/pgdata/base/16384/2603 +/pgdata-test/pgdata/base/16384/2603_fsm +/pgdata-test/pgdata/base/16384/2603_vm +/pgdata-test/pgdata/base/16384/2604 +/pgdata-test/pgdata/base/16384/2604_fsm +/pgdata-test/pgdata/base/16384/2604_vm +/pgdata-test/pgdata/base/16384/2605 +/pgdata-test/pgdata/base/16384/2605_fsm +/pgdata-test/pgdata/base/16384/2605_vm +/pgdata-test/pgdata/base/16384/2606 +/pgdata-test/pgdata/base/16384/2606_fsm +/pgdata-test/pgdata/base/16384/2606_vm +/pgdata-test/pgdata/base/16384/2607 +/pgdata-test/pgdata/base/16384/2607_fsm +/pgdata-test/pgdata/base/16384/2607_vm +/pgdata-test/pgdata/base/16384/2608 +/pgdata-test/pgdata/base/16384/2608_fsm +/pgdata-test/pgdata/base/16384/2608_vm +/pgdata-test/pgdata/base/16384/2609 +/pgdata-test/pgdata/base/16384/2609_fsm +/pgdata-test/pgdata/base/16384/2609_vm +/pgdata-test/pgdata/base/16384/2610 +/pgdata-test/pgdata/base/16384/2610_fsm +/pgdata-test/pgdata/base/16384/2610_vm +/pgdata-test/pgdata/base/16384/2611 +/pgdata-test/pgdata/base/16384/2612 +/pgdata-test/pgdata/base/16384/2612_fsm +/pgdata-test/pgdata/base/16384/2612_vm +/pgdata-test/pgdata/base/16384/2613 +/pgdata-test/pgdata/base/16384/2615 +/pgdata-test/pgdata/base/16384/2615_fsm +/pgdata-test/pgdata/base/16384/2615_vm +/pgdata-test/pgdata/base/16384/2616 +/pgdata-test/pgdata/base/16384/2616_fsm +/pgdata-test/pgdata/base/16384/2616_vm +/pgdata-test/pgdata/base/16384/2617 +/pgdata-test/pgdata/base/16384/2617_fsm +/pgdata-test/pgdata/base/16384/2617_vm +/pgdata-test/pgdata/base/16384/2618 +/pgdata-test/pgdata/base/16384/2618_fsm +/pgdata-test/pgdata/base/16384/2618_vm +/pgdata-test/pgdata/base/16384/2619 +/pgdata-test/pgdata/base/16384/2619_fsm +/pgdata-test/pgdata/base/16384/2619_vm +/pgdata-test/pgdata/base/16384/2620 +/pgdata-test/pgdata/base/16384/2620_fsm +/pgdata-test/pgdata/base/16384/2620_vm +/pgdata-test/pgdata/base/16384/2650 +/pgdata-test/pgdata/base/16384/2651 +/pgdata-test/pgdata/base/16384/2652 +/pgdata-test/pgdata/base/16384/2653 +/pgdata-test/pgdata/base/16384/2654 +/pgdata-test/pgdata/base/16384/2655 +/pgdata-test/pgdata/base/16384/2656 +/pgdata-test/pgdata/base/16384/2656_fsm +/pgdata-test/pgdata/base/16384/2657 +/pgdata-test/pgdata/base/16384/2657_fsm +/pgdata-test/pgdata/base/16384/2658 +/pgdata-test/pgdata/base/16384/2658_fsm +/pgdata-test/pgdata/base/16384/2659 +/pgdata-test/pgdata/base/16384/2659_fsm +/pgdata-test/pgdata/base/16384/2660 +/pgdata-test/pgdata/base/16384/2661 +/pgdata-test/pgdata/base/16384/2662 +/pgdata-test/pgdata/base/16384/2662_fsm +/pgdata-test/pgdata/base/16384/2663 +/pgdata-test/pgdata/base/16384/2663_fsm +/pgdata-test/pgdata/base/16384/2664 +/pgdata-test/pgdata/base/16384/2665 +/pgdata-test/pgdata/base/16384/2665_fsm +/pgdata-test/pgdata/base/16384/2666 +/pgdata-test/pgdata/base/16384/2666_fsm +/pgdata-test/pgdata/base/16384/2667 +/pgdata-test/pgdata/base/16384/2667_fsm +/pgdata-test/pgdata/base/16384/2668 +/pgdata-test/pgdata/base/16384/2669 +/pgdata-test/pgdata/base/16384/2670 +/pgdata-test/pgdata/base/16384/2673 +/pgdata-test/pgdata/base/16384/2673_fsm +/pgdata-test/pgdata/base/16384/2674 +/pgdata-test/pgdata/base/16384/2674_fsm +/pgdata-test/pgdata/base/16384/2675 +/pgdata-test/pgdata/base/16384/2678 +/pgdata-test/pgdata/base/16384/2678_fsm +/pgdata-test/pgdata/base/16384/2679 +/pgdata-test/pgdata/base/16384/2679_fsm +/pgdata-test/pgdata/base/16384/2680 +/pgdata-test/pgdata/base/16384/2681 +/pgdata-test/pgdata/base/16384/2682 +/pgdata-test/pgdata/base/16384/2683 +/pgdata-test/pgdata/base/16384/2684 +/pgdata-test/pgdata/base/16384/2685 +/pgdata-test/pgdata/base/16384/2686 +/pgdata-test/pgdata/base/16384/2687 +/pgdata-test/pgdata/base/16384/2688 +/pgdata-test/pgdata/base/16384/2689 +/pgdata-test/pgdata/base/16384/2690 +/pgdata-test/pgdata/base/16384/2691 +/pgdata-test/pgdata/base/16384/2692 +/pgdata-test/pgdata/base/16384/2693 +/pgdata-test/pgdata/base/16384/2696 +/pgdata-test/pgdata/base/16384/2699 +/pgdata-test/pgdata/base/16384/2699_fsm +/pgdata-test/pgdata/base/16384/2701 +/pgdata-test/pgdata/base/16384/2701_fsm +/pgdata-test/pgdata/base/16384/2702 +/pgdata-test/pgdata/base/16384/2702_fsm +/pgdata-test/pgdata/base/16384/2703 +/pgdata-test/pgdata/base/16384/2703_fsm +/pgdata-test/pgdata/base/16384/2704 +/pgdata-test/pgdata/base/16384/2753 +/pgdata-test/pgdata/base/16384/2753_fsm +/pgdata-test/pgdata/base/16384/2753_vm +/pgdata-test/pgdata/base/16384/2754 +/pgdata-test/pgdata/base/16384/2755 +/pgdata-test/pgdata/base/16384/2756 +/pgdata-test/pgdata/base/16384/2757 +/pgdata-test/pgdata/base/16384/2830 +/pgdata-test/pgdata/base/16384/2831 +/pgdata-test/pgdata/base/16384/2832 +/pgdata-test/pgdata/base/16384/2833 +/pgdata-test/pgdata/base/16384/2834 +/pgdata-test/pgdata/base/16384/2835 +/pgdata-test/pgdata/base/16384/2836 +/pgdata-test/pgdata/base/16384/2836_fsm +/pgdata-test/pgdata/base/16384/2836_vm +/pgdata-test/pgdata/base/16384/2837 +/pgdata-test/pgdata/base/16384/2838 +/pgdata-test/pgdata/base/16384/2838_fsm +/pgdata-test/pgdata/base/16384/2838_vm +/pgdata-test/pgdata/base/16384/2839 +/pgdata-test/pgdata/base/16384/2840 +/pgdata-test/pgdata/base/16384/2840_fsm +/pgdata-test/pgdata/base/16384/2840_vm +/pgdata-test/pgdata/base/16384/2841 +/pgdata-test/pgdata/base/16384/2995 +/pgdata-test/pgdata/base/16384/2996 +/pgdata-test/pgdata/base/16384/3079 +/pgdata-test/pgdata/base/16384/3079_fsm +/pgdata-test/pgdata/base/16384/3079_vm +/pgdata-test/pgdata/base/16384/3080 +/pgdata-test/pgdata/base/16384/3081 +/pgdata-test/pgdata/base/16384/3085 +/pgdata-test/pgdata/base/16384/3118 +/pgdata-test/pgdata/base/16384/3119 +/pgdata-test/pgdata/base/16384/3164 +/pgdata-test/pgdata/base/16384/3256 +/pgdata-test/pgdata/base/16384/3257 +/pgdata-test/pgdata/base/16384/3258 +/pgdata-test/pgdata/base/16384/3350 +/pgdata-test/pgdata/base/16384/3351 +/pgdata-test/pgdata/base/16384/3379 +/pgdata-test/pgdata/base/16384/3380 +/pgdata-test/pgdata/base/16384/3381 +/pgdata-test/pgdata/base/16384/3394 +/pgdata-test/pgdata/base/16384/3394_fsm +/pgdata-test/pgdata/base/16384/3394_vm +/pgdata-test/pgdata/base/16384/3395 +/pgdata-test/pgdata/base/16384/3429 +/pgdata-test/pgdata/base/16384/3430 +/pgdata-test/pgdata/base/16384/3431 +/pgdata-test/pgdata/base/16384/3433 +/pgdata-test/pgdata/base/16384/3439 +/pgdata-test/pgdata/base/16384/3440 +/pgdata-test/pgdata/base/16384/3455 +/pgdata-test/pgdata/base/16384/3455_fsm +/pgdata-test/pgdata/base/16384/3456 +/pgdata-test/pgdata/base/16384/3456_fsm +/pgdata-test/pgdata/base/16384/3456_vm +/pgdata-test/pgdata/base/16384/3466 +/pgdata-test/pgdata/base/16384/3467 +/pgdata-test/pgdata/base/16384/3468 +/pgdata-test/pgdata/base/16384/3501 +/pgdata-test/pgdata/base/16384/3502 +/pgdata-test/pgdata/base/16384/3503 +/pgdata-test/pgdata/base/16384/3534 +/pgdata-test/pgdata/base/16384/3541 +/pgdata-test/pgdata/base/16384/3541_fsm +/pgdata-test/pgdata/base/16384/3541_vm +/pgdata-test/pgdata/base/16384/3542 +/pgdata-test/pgdata/base/16384/3574 +/pgdata-test/pgdata/base/16384/3575 +/pgdata-test/pgdata/base/16384/3576 +/pgdata-test/pgdata/base/16384/3596 +/pgdata-test/pgdata/base/16384/3597 +/pgdata-test/pgdata/base/16384/3598 +/pgdata-test/pgdata/base/16384/3599 +/pgdata-test/pgdata/base/16384/3600 +/pgdata-test/pgdata/base/16384/3600_fsm +/pgdata-test/pgdata/base/16384/3600_vm +/pgdata-test/pgdata/base/16384/3601 +/pgdata-test/pgdata/base/16384/3601_fsm +/pgdata-test/pgdata/base/16384/3601_vm +/pgdata-test/pgdata/base/16384/3602 +/pgdata-test/pgdata/base/16384/3602_fsm +/pgdata-test/pgdata/base/16384/3602_vm +/pgdata-test/pgdata/base/16384/3603 +/pgdata-test/pgdata/base/16384/3603_fsm +/pgdata-test/pgdata/base/16384/3603_vm +/pgdata-test/pgdata/base/16384/3604 +/pgdata-test/pgdata/base/16384/3605 +/pgdata-test/pgdata/base/16384/3606 +/pgdata-test/pgdata/base/16384/3607 +/pgdata-test/pgdata/base/16384/3608 +/pgdata-test/pgdata/base/16384/3609 +/pgdata-test/pgdata/base/16384/3712 +/pgdata-test/pgdata/base/16384/3764 +/pgdata-test/pgdata/base/16384/3764_fsm +/pgdata-test/pgdata/base/16384/3764_vm +/pgdata-test/pgdata/base/16384/3766 +/pgdata-test/pgdata/base/16384/3767 +/pgdata-test/pgdata/base/16384/3997 +/pgdata-test/pgdata/base/16384/4143 +/pgdata-test/pgdata/base/16384/4144 +/pgdata-test/pgdata/base/16384/4145 +/pgdata-test/pgdata/base/16384/4146 +/pgdata-test/pgdata/base/16384/4147 +/pgdata-test/pgdata/base/16384/4148 +/pgdata-test/pgdata/base/16384/4149 +/pgdata-test/pgdata/base/16384/4150 +/pgdata-test/pgdata/base/16384/4151 +/pgdata-test/pgdata/base/16384/4152 +/pgdata-test/pgdata/base/16384/4153 +/pgdata-test/pgdata/base/16384/4154 +/pgdata-test/pgdata/base/16384/4155 +/pgdata-test/pgdata/base/16384/4156 +/pgdata-test/pgdata/base/16384/4157 +/pgdata-test/pgdata/base/16384/4158 +/pgdata-test/pgdata/base/16384/4159 +/pgdata-test/pgdata/base/16384/4160 +/pgdata-test/pgdata/base/16384/4163 +/pgdata-test/pgdata/base/16384/4164 +/pgdata-test/pgdata/base/16384/4165 +/pgdata-test/pgdata/base/16384/4166 +/pgdata-test/pgdata/base/16384/4167 +/pgdata-test/pgdata/base/16384/4168 +/pgdata-test/pgdata/base/16384/4169 +/pgdata-test/pgdata/base/16384/4170 +/pgdata-test/pgdata/base/16384/4171 +/pgdata-test/pgdata/base/16384/4172 +/pgdata-test/pgdata/base/16384/4173 +/pgdata-test/pgdata/base/16384/4174 +/pgdata-test/pgdata/base/16384/5002 +/pgdata-test/pgdata/base/16384/5002_fsm +/pgdata-test/pgdata/base/16384/6102 +/pgdata-test/pgdata/base/16384/6104 +/pgdata-test/pgdata/base/16384/6106 +/pgdata-test/pgdata/base/16384/6110 +/pgdata-test/pgdata/base/16384/6111 +/pgdata-test/pgdata/base/16384/6112 +/pgdata-test/pgdata/base/16384/6113 +/pgdata-test/pgdata/base/16384/6116 +/pgdata-test/pgdata/base/16384/6117 +/pgdata-test/pgdata/base/16384/6175 +/pgdata-test/pgdata/base/16384/6176 +/pgdata-test/pgdata/base/16384/6228 +/pgdata-test/pgdata/base/16384/6229 +/pgdata-test/pgdata/base/16384/6237 +/pgdata-test/pgdata/base/16384/6238 +/pgdata-test/pgdata/base/16384/6239 +/pgdata-test/pgdata/base/16384/6351 +/pgdata-test/pgdata/base/16384/6352 +/pgdata-test/pgdata/base/16384/13476 +/pgdata-test/pgdata/base/16384/13476_fsm +/pgdata-test/pgdata/base/16384/13476_vm +/pgdata-test/pgdata/base/16384/13479 +/pgdata-test/pgdata/base/16384/13480 +/pgdata-test/pgdata/base/16384/13481 +/pgdata-test/pgdata/base/16384/13481_fsm +/pgdata-test/pgdata/base/16384/13481_vm +/pgdata-test/pgdata/base/16384/13484 +/pgdata-test/pgdata/base/16384/13485 +/pgdata-test/pgdata/base/16384/13486 +/pgdata-test/pgdata/base/16384/13486_fsm +/pgdata-test/pgdata/base/16384/13486_vm +/pgdata-test/pgdata/base/16384/13489 +/pgdata-test/pgdata/base/16384/13490 +/pgdata-test/pgdata/base/16384/13491 +/pgdata-test/pgdata/base/16384/13491_fsm +/pgdata-test/pgdata/base/16384/13491_vm +/pgdata-test/pgdata/base/16384/13494 +/pgdata-test/pgdata/base/16384/13495 +/pgdata-test/pgdata/base/16384/16389 +/pgdata-test/pgdata/base/16384/16394 +/pgdata-test/pgdata/base/16384/16396 +/pgdata-test/pgdata/base/16384/16405 +/pgdata-test/pgdata/base/16384/16406 +/pgdata-test/pgdata/base/16384/92389 +/pgdata-test/pgdata/base/16384/92398 +/pgdata-test/pgdata/base/16384/92399 +/pgdata-test/pgdata/base/16384/92400 +/pgdata-test/pgdata/base/16384/92402 +/pgdata-test/pgdata/base/16384/92409 +/pgdata-test/pgdata/base/16384/92410 +/pgdata-test/pgdata/base/16384/92420 +/pgdata-test/pgdata/base/16384/92421 +/pgdata-test/pgdata/base/16384/92422 +/pgdata-test/pgdata/base/16384/92442 +/pgdata-test/pgdata/base/16384/92443 +/pgdata-test/pgdata/base/16384/92451 +/pgdata-test/pgdata/base/16384/92452 +/pgdata-test/pgdata/base/16384/92453 +/pgdata-test/pgdata/base/16384/92455 +/pgdata-test/pgdata/base/16384/92458 +/pgdata-test/pgdata/base/16384/92467 +/pgdata-test/pgdata/base/16384/92469 +/pgdata-test/pgdata/base/16384/92471 +/pgdata-test/pgdata/base/16384/92473 +/pgdata-test/pgdata/base/16384/92477 +/pgdata-test/pgdata/base/16384/92484 +/pgdata-test/pgdata/base/16384/92490 +/pgdata-test/pgdata/base/16384/92498 +/pgdata-test/pgdata/base/16384/92498_fsm +/pgdata-test/pgdata/base/16384/92509 +/pgdata-test/pgdata/base/16384/92510 +/pgdata-test/pgdata/base/16384/92511 +/pgdata-test/pgdata/base/16384/92529 +/pgdata-test/pgdata/base/16384/92536 +/pgdata-test/pgdata/base/16384/92537 +/pgdata-test/pgdata/base/16384/92538 +/pgdata-test/pgdata/base/16384/92550 +/pgdata-test/pgdata/base/16384/92555 +/pgdata-test/pgdata/base/16384/92562 +/pgdata-test/pgdata/base/16384/92563 +/pgdata-test/pgdata/base/16384/92572 +/pgdata-test/pgdata/base/16384/92580 +/pgdata-test/pgdata/base/16384/92582 +/pgdata-test/pgdata/base/16384/92592 +/pgdata-test/pgdata/base/16384/92593 +/pgdata-test/pgdata/base/16384/92594 +/pgdata-test/pgdata/base/16384/92601 +/pgdata-test/pgdata/base/16384/92606 +/pgdata-test/pgdata/base/16384/92614 +/pgdata-test/pgdata/base/16384/92617 +/pgdata-test/pgdata/base/16384/92618 +/pgdata-test/pgdata/base/16384/92634 +/pgdata-test/pgdata/base/16384/92641 +/pgdata-test/pgdata/base/16384/92643 +/pgdata-test/pgdata/base/16384/92647 +/pgdata-test/pgdata/base/16384/92648 +/pgdata-test/pgdata/base/16384/92649 +/pgdata-test/pgdata/base/16384/92650 +/pgdata-test/pgdata/base/16384/pg_filenode.map +/pgdata-test/pgdata/base/16384/pg_internal.init +/pgdata-test/pgdata/base/16384/PG_VERSION +/pgdata-test/pgdata/global/1213 +/pgdata-test/pgdata/global/1213_fsm +/pgdata-test/pgdata/global/1213_vm +/pgdata-test/pgdata/global/1214 +/pgdata-test/pgdata/global/1232 +/pgdata-test/pgdata/global/1233 +/pgdata-test/pgdata/global/1260 +/pgdata-test/pgdata/global/1260_fsm +/pgdata-test/pgdata/global/1260_vm +/pgdata-test/pgdata/global/1261 +/pgdata-test/pgdata/global/1261_fsm +/pgdata-test/pgdata/global/1261_vm +/pgdata-test/pgdata/global/1262 +/pgdata-test/pgdata/global/1262_fsm +/pgdata-test/pgdata/global/1262_vm +/pgdata-test/pgdata/global/2396 +/pgdata-test/pgdata/global/2396_fsm +/pgdata-test/pgdata/global/2396_vm +/pgdata-test/pgdata/global/2397 +/pgdata-test/pgdata/global/2671 +/pgdata-test/pgdata/global/2672 +/pgdata-test/pgdata/global/2676 +/pgdata-test/pgdata/global/2677 +/pgdata-test/pgdata/global/2694 +/pgdata-test/pgdata/global/2695 +/pgdata-test/pgdata/global/2697 +/pgdata-test/pgdata/global/2698 +/pgdata-test/pgdata/global/2846 +/pgdata-test/pgdata/global/2847 +/pgdata-test/pgdata/global/2964 +/pgdata-test/pgdata/global/2965 +/pgdata-test/pgdata/global/2966 +/pgdata-test/pgdata/global/2967 +/pgdata-test/pgdata/global/3592 +/pgdata-test/pgdata/global/3593 +/pgdata-test/pgdata/global/4060 +/pgdata-test/pgdata/global/4061 +/pgdata-test/pgdata/global/4177 +/pgdata-test/pgdata/global/4178 +/pgdata-test/pgdata/global/4183 +/pgdata-test/pgdata/global/4184 +/pgdata-test/pgdata/global/4185 +/pgdata-test/pgdata/global/4186 +/pgdata-test/pgdata/global/6000 +/pgdata-test/pgdata/global/6001 +/pgdata-test/pgdata/global/6002 +/pgdata-test/pgdata/global/6100 +/pgdata-test/pgdata/global/6114 +/pgdata-test/pgdata/global/6115 +/pgdata-test/pgdata/global/6243 +/pgdata-test/pgdata/global/6244 +/pgdata-test/pgdata/global/6245 +/pgdata-test/pgdata/global/6246 +/pgdata-test/pgdata/global/6247 +/pgdata-test/pgdata/global/6302 +/pgdata-test/pgdata/global/6303 +/pgdata-test/pgdata/global/pg_control +/pgdata-test/pgdata/global/pg_filenode.map +/pgdata-test/pgdata/global/pg_internal.init +/pgdata-test/pgdata/pg_logical/replorigin_checkpoint +/pgdata-test/pgdata/pg_multixact/members/0000 +/pgdata-test/pgdata/pg_multixact/offsets/0000 +/pgdata-test/pgdata/pg_stat/pgstat.stat +/pgdata-test/pgdata/pg_subtrans/0000 +/pgdata-test/pgdata/pg_wal/00000001000000000000000A +/pgdata-test/pgdata/pg_wal/00000001000000000000000B +/pgdata-test/pgdata/pg_wal/00000001000000000000000C +/pgdata-test/pgdata/pg_wal/00000001000000000000000D +/pgdata-test/pgdata/pg_wal/00000001000000000000000E +/pgdata-test/pgdata/pg_wal/00000001000000000000000F +/pgdata-test/pgdata/pg_xact/0000 +/pgdata-test/pgdata/pg_hba.conf +/pgdata-test/pgdata/pg_ident.conf +/pgdata-test/pgdata/PG_VERSION +/pgdata-test/pgdata/postgresql.auto.conf +/pgdata-test/pgdata/postgresql.conf +/pgdata-test/pgdata/postmaster.opts diff --git a/README.md b/README.md index 719b268f5..1416a7a13 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,15 @@ username: jira password: JiraRush ``` - +## Запуск БД +### Prod +```bash +docker run -p 5432:5432 --name postgres-db -e POSTGRES_USER=jira -e POSTGRES_PASSWORD=JiraRush -e POSTGRES_DB=jira -e PGDATA=/var/lib/postgresql/data/pgdata -v ./pgdata:/var/lib/postgresql/data -d postgres +``` +### test +```bash +docker run -p 5433:5432 --name postgres-db-test -e POSTGRES_USER=jira -e POSTGRES_PASSWORD=JiraRush -e POSTGRES_DB=jira-test -e PGDATA=/var/lib/postgresql/data/pgdata -v ./pgdata-test:/var/lib/postgresql/data -d postgres +``` - Есть 2 общие таблицы, на которых не fk - _Reference_ - справочник. Связь делаем по _code_ (по id нельзя, тк id привязано к окружению-конкретной базе) - _UserBelong_ - привязка юзеров с типом (owner, lead, ...) к объекту (таска, проект, спринт, ...). FK вручную будем @@ -27,4 +35,4 @@ - https://habr.com/ru/articles/259055/ Список выполненных задач: -... \ No newline at end of file +1. Удалить социальные сети: vk, yandex. 18.06.2026 \ No newline at end of file diff --git a/config/_application-prod.yaml b/config/_application-prod.yaml index 67fd8b7c2..9a862db9e 100644 --- a/config/_application-prod.yaml +++ b/config/_application-prod.yaml @@ -5,5 +5,4 @@ spring: datasource: url: jdbc:postgresql://localhost:5432/jira username: jira - password: JiraRush - + password: JiraRush \ No newline at end of file diff --git a/pom.xml b/pom.xml index f6c152c68..30fa3c1d1 100644 --- a/pom.xml +++ b/pom.xml @@ -17,6 +17,8 @@ 17 + 17 + 17 2.0.2 1.5.3.Final UTF-8 diff --git a/resources/view/login.html b/resources/view/login.html index 8765ca8ff..d49ce5691 100644 --- a/resources/view/login.html +++ b/resources/view/login.html @@ -48,14 +48,6 @@

Sign in

type="button"> - - - - - - diff --git a/resources/view/unauth/register.html b/resources/view/unauth/register.html index 2ba955045..52a892bd3 100644 --- a/resources/view/unauth/register.html +++ b/resources/view/unauth/register.html @@ -77,14 +77,6 @@

Registration

type="button"> - - - - - - diff --git a/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java b/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java deleted file mode 100644 index e8e05be05..000000000 --- a/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.javarush.jira.login.internal.sociallogin.handler; - -import org.springframework.stereotype.Component; - -import java.util.List; -import java.util.Map; - -@Component("vk") -public class VkOAuth2UserDataHandler implements OAuth2UserDataHandler { - @Override - public String getFirstName(OAuth2UserData oAuth2UserData) { - return getAttribute(oAuth2UserData, "first_name"); - } - - @Override - public String getLastName(OAuth2UserData oAuth2UserData) { - return getAttribute(oAuth2UserData, "last_name"); - } - - @Override - public String getEmail(OAuth2UserData oAuth2UserData) { - return oAuth2UserData.getData("email"); - } - - private String getAttribute(OAuth2UserData oAuth2UserData, String name) { - List> attributesResponse = oAuth2UserData.getData("response"); - if (attributesResponse != null) { - Map attributes = attributesResponse.get(0); - if (attributes != null) { - return (String) attributes.get(name); - } - } - return null; - } -} diff --git a/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/YandexOAuth2UserDataHandler.java b/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/YandexOAuth2UserDataHandler.java deleted file mode 100644 index e8ea1ac1d..000000000 --- a/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/YandexOAuth2UserDataHandler.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.javarush.jira.login.internal.sociallogin.handler; - -import org.springframework.stereotype.Component; - -@Component("yandex") -public class YandexOAuth2UserDataHandler implements OAuth2UserDataHandler { - @Override - public String getFirstName(OAuth2UserData oAuth2UserData) { - return oAuth2UserData.getData("first_name"); - } - - @Override - public String getLastName(OAuth2UserData oAuth2UserData) { - return oAuth2UserData.getData("last_name"); - } - - @Override - public String getEmail(OAuth2UserData oAuth2UserData) { - return oAuth2UserData.getData("default_email"); - } -} diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 7fcba1570..d9660eb05 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -61,20 +61,6 @@ spring: scope: - email - profile - vk: - client-id: 51562377 - client-secret: jNM1YHQy1362Mqs49wUN - client-name: Vkontakte - redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}" - client-authentication-method: client_secret_post - authorization-grant-type: authorization_code - scope: email - yandex: - client-id: 2f3395214ba84075956b76a34b231985 - client-secret: ed236c501e444a609b0f419e5e88f1e1 - client-name: Yandex - redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}" - authorization-grant-type: authorization_code gitlab: client-id: b8520a3266089063c0d8261cce36971defa513f5ffd9f9b7a3d16728fc83a494 client-secret: e72c65320cf9d6495984a37b0f9cc03ec46be0bb6f071feaebbfe75168117004 @@ -83,16 +69,6 @@ spring: authorization-grant-type: authorization_code scope: read_user provider: - vk: - authorization-uri: https://oauth.vk.com/authorize - token-uri: https://oauth.vk.com/access_token - user-info-uri: https://api.vk.com/method/users.get?v=8.1 - user-name-attribute: response - yandex: - authorization-uri: https://oauth.yandex.ru/authorize - token-uri: https://oauth.yandex.ru/token - user-info-uri: https://login.yandex.ru/info - user-name-attribute: login gitlab: authorization-uri: https://gitlab.com/oauth/authorize token-uri: https://gitlab.com/oauth/token From d06172a7ce826c34b5df73617315eb8b7497a6ed Mon Sep 17 00:00:00 2001 From: KirillB Date: Sun, 21 Jun 2026 15:47:03 +0300 Subject: [PATCH 2/9] Add external secrets configuration --- application-secrets.yaml | 12 ++++++++++++ src/main/resources/application.yaml | 22 ++++++++++++---------- src/test/resources/application-test.yaml | 4 ++-- 3 files changed, 26 insertions(+), 12 deletions(-) create mode 100644 application-secrets.yaml diff --git a/application-secrets.yaml b/application-secrets.yaml new file mode 100644 index 000000000..a95d6623d --- /dev/null +++ b/application-secrets.yaml @@ -0,0 +1,12 @@ +DB_USERNAME: jira +DB_PASSWORD: JiraRush +GITHUB_CLIENT_ID: 3d0d8738e65881fff266 +GITHUB_CLIENT_SECRET: 0f97031ce6178b7dfb67a6af587f37e222a16120 +GOOGLE_CLIENT_ID: 329113642700-f8if6pu68j2repq3ef6umd5jgiliup60.apps.googleusercontent.com +GOOGLE_CLIENT_SECRET: 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 +GITLAB_CLIENT_ID: b8520a3266089063c0d8261cce36971defa513f5ffd9f9b7a3d16728fc83a494 +GITLAB_CLIENT_SECRET: e72c65320cf9d6495984a37b0f9cc03ec46be0bb6f071feaebbfe75168117004 +MAIL_USERNAME: jira4jr@gmail.com +MAIL_PASSWORD: zdfzsrqvgimldzyj +TEST_DB_USERNAME: jira +TEST_DB_PASSWORD: JiraRush \ No newline at end of file diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index d9660eb05..bb82df892 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -8,6 +8,8 @@ app: max-pool-size: 100 spring: + config: + import: optional:file:./application-secrets.yaml init: mode: never jpa: @@ -27,8 +29,8 @@ spring: jdbc.batch_size: 20 datasource: url: jdbc:postgresql://localhost:5432/jira - username: jira - password: JiraRush + username: ${DB_USERNAME} + password: ${DB_PASSWORD} liquibase: changeLog: "classpath:db/changelog.sql" @@ -51,19 +53,19 @@ spring: client: registration: github: - client-id: 3d0d8738e65881fff266 - client-secret: 0f97031ce6178b7dfb67a6af587f37e222a16120 + client-id: ${GITHUB_CLIENT_ID} + client-secret: ${GITHUB_CLIENT_SECRET} scope: - email google: - client-id: 329113642700-f8if6pu68j2repq3ef6umd5jgiliup60.apps.googleusercontent.com - client-secret: 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 + client-id: ${GOOGLE_CLIENT_ID} + client-secret: ${GOOGLE_CLIENT_SECRET} scope: - email - profile gitlab: - client-id: b8520a3266089063c0d8261cce36971defa513f5ffd9f9b7a3d16728fc83a494 - client-secret: e72c65320cf9d6495984a37b0f9cc03ec46be0bb6f071feaebbfe75168117004 + client-id: ${GITLAB_CLIENT_ID} + client-secret: ${GITLAB_CLIENT_SECRET} client-name: GitLab redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}" authorization-grant-type: authorization_code @@ -87,8 +89,8 @@ spring: enable: true auth: true host: smtp.gmail.com - username: jira4jr@gmail.com - password: zdfzsrqvgimldzyj + username: ${MAIL_USERNAME} + password: ${MAIL_PASSWORD} port: 587 thymeleaf.check-template-location: false diff --git a/src/test/resources/application-test.yaml b/src/test/resources/application-test.yaml index 51137fd06..17512a28e 100644 --- a/src/test/resources/application-test.yaml +++ b/src/test/resources/application-test.yaml @@ -4,5 +4,5 @@ spring: mode: always datasource: url: jdbc:postgresql://localhost:5433/jira-test - username: jira - password: JiraRush \ No newline at end of file + username: ${TEST_DB_USERNAME} + password: ${TEST_DB_PASSWORD} \ No newline at end of file From dc9cd9f6fe22fa93dae1de1ee558b65d0a8283a8 Mon Sep 17 00:00:00 2001 From: KirillB Date: Sun, 21 Jun 2026 17:28:49 +0300 Subject: [PATCH 3/9] Complete H2 and Liquibase configuration for tests --- README.md | 4 +- pom.xml | 7 +++ .../jira/config/DataSourceConfig.java | 45 +++++++++++++++++++ src/main/resources/db/changelog.sql | 17 ++++--- .../javarush/jira/AbstractControllerTest.java | 2 +- src/test/resources/application-test.yaml | 21 ++++++--- src/test/resources/{data.sql => data-h2.sql} | 41 ++++++----------- 7 files changed, 94 insertions(+), 43 deletions(-) create mode 100644 src/main/java/com/javarush/jira/config/DataSourceConfig.java rename src/test/resources/{data.sql => data-h2.sql} (89%) diff --git a/README.md b/README.md index 1416a7a13..cdfb3565e 100644 --- a/README.md +++ b/README.md @@ -35,4 +35,6 @@ docker run -p 5433:5432 --name postgres-db-test -e POSTGRES_USER=jira -e POSTGRE - https://habr.com/ru/articles/259055/ Список выполненных задач: -1. Удалить социальные сети: vk, yandex. 18.06.2026 \ No newline at end of file +1. Удалить социальные сети: vk, yandex. 18.06.2026 +2. Вынести чувствительную информацию в отдельный проперти файл. 21.06.2026 +3. Переделать тесты так, чтоб во время тестов использовалась in memory БД (H2), а не PostgreSQL. 21.06.2026 \ No newline at end of file diff --git a/pom.xml b/pom.xml index 30fa3c1d1..1e906578e 100644 --- a/pom.xml +++ b/pom.xml @@ -138,6 +138,13 @@ spring-security-test test + + + com.h2database + h2 + test + + org.junit.platform diff --git a/src/main/java/com/javarush/jira/config/DataSourceConfig.java b/src/main/java/com/javarush/jira/config/DataSourceConfig.java new file mode 100644 index 000000000..ee3611356 --- /dev/null +++ b/src/main/java/com/javarush/jira/config/DataSourceConfig.java @@ -0,0 +1,45 @@ +package com.javarush.jira.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.context.annotation.Profile; +import org.springframework.jdbc.datasource.DriverManagerDataSource; +import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; +import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; +import javax.sql.DataSource; + +@Configuration +public class DataSourceConfig { + + @Value("${spring.datasource.url}") + private String url; + + @Value("${spring.datasource.username}") + private String username; + + @Value("${spring.datasource.password}") + private String password; + + @Bean + @Profile("test") + public DataSource testDataSource() { + return new EmbeddedDatabaseBuilder() + .setType(EmbeddedDatabaseType.H2) + .setName("testdb") + .build(); + } + + @Bean + @Primary + @Profile("!test") + public DataSource prodDataSource() { + DriverManagerDataSource dataSource = new DriverManagerDataSource(); + dataSource.setDriverClassName("org.postgresql.Driver"); + dataSource.setUrl(url); + dataSource.setUsername(username); + dataSource.setPassword(password); + return dataSource; + } +} \ No newline at end of file diff --git a/src/main/resources/db/changelog.sql b/src/main/resources/db/changelog.sql index 68591336d..8844f0ae1 100644 --- a/src/main/resources/db/changelog.sql +++ b/src/main/resources/db/changelog.sql @@ -107,7 +107,7 @@ create table CONTACT ( ID bigint not null, CODE varchar(32) not null, - VALUE varchar(256) not null, + "value" varchar(256) not null, primary key (ID, CODE), constraint FK_CONTACT_PROFILE foreign key (ID) references PROFILE (ID) on delete cascade ); @@ -187,8 +187,8 @@ create table ATTACHMENT create table USER_ROLE ( USER_ID bigint not null, - ROLE smallint not null, - constraint UK_USER_ROLE unique (USER_ID, ROLE), + "role" smallint not null, + constraint UK_USER_ROLE unique (USER_ID, "role"), constraint FK_USER_ROLE foreign key (USER_ID) references USERS (ID) on delete cascade ); @@ -282,15 +282,18 @@ values ('todo', 'ToDo', 3, 'in_progress,canceled'), --changeset gkislin:users_add_on_delete_cascade alter table ACTIVITY - drop constraint FK_ACTIVITY_USERS, + drop constraint FK_ACTIVITY_USERS; +alter table ACTIVITY add constraint FK_ACTIVITY_USERS foreign key (AUTHOR_ID) references USERS (ID) on delete cascade; alter table USER_BELONG - drop constraint FK_USER_BELONG, + drop constraint FK_USER_BELONG; +alter table USER_BELONG add constraint FK_USER_BELONG foreign key (USER_ID) references USERS (ID) on delete cascade; alter table ATTACHMENT - drop constraint FK_ATTACHMENT, + drop constraint FK_ATTACHMENT; +alter table ATTACHMENT add constraint FK_ATTACHMENT foreign key (USER_ID) references USERS (ID) on delete cascade; --changeset valeriyemelyanov:change_user_type_reference @@ -328,4 +331,4 @@ values ('todo', 'ToDo', 3, 'in_progress,canceled|'), --changeset ishlyakhtenkov:change_UK_USER_BELONG drop index UK_USER_BELONG; -create unique index UK_USER_BELONG on USER_BELONG (OBJECT_ID, OBJECT_TYPE, USER_ID, USER_TYPE_CODE) where ENDPOINT is null; +create unique index UK_USER_BELONG on USER_BELONG (OBJECT_ID, OBJECT_TYPE, USER_ID, USER_TYPE_CODE); diff --git a/src/test/java/com/javarush/jira/AbstractControllerTest.java b/src/test/java/com/javarush/jira/AbstractControllerTest.java index 5981bae53..ce3f8ab4c 100644 --- a/src/test/java/com/javarush/jira/AbstractControllerTest.java +++ b/src/test/java/com/javarush/jira/AbstractControllerTest.java @@ -9,7 +9,7 @@ import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; //https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing-spring-boot-applications -@Sql(scripts = {"classpath:db/changelog.sql", "classpath:data.sql"}, config = @SqlConfig(encoding = "UTF-8")) +@Sql(scripts = {"classpath:db/changelog.sql", "classpath:data-h2.sql"}, config = @SqlConfig(encoding = "UTF-8")) @AutoConfigureMockMvc //https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing-spring-boot-applications-testing-with-mock-environment public abstract class AbstractControllerTest extends BaseTests { diff --git a/src/test/resources/application-test.yaml b/src/test/resources/application-test.yaml index 17512a28e..20321d6ff 100644 --- a/src/test/resources/application-test.yaml +++ b/src/test/resources/application-test.yaml @@ -1,8 +1,17 @@ -spring.cache.type: none spring: - init: - mode: always + jpa: + database-platform: org.hibernate.dialect.H2Dialect + hibernate: + ddl-auto: none + show-sql: true datasource: - url: jdbc:postgresql://localhost:5433/jira-test - username: ${TEST_DB_USERNAME} - password: ${TEST_DB_PASSWORD} \ No newline at end of file + url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;MODE=PostgreSQL + driver-class-name: org.h2.Driver + username: sa + password: + liquibase: + enabled: true + change-log: classpath:db/changelog.sql + sql: + init: + mode: never \ No newline at end of file diff --git a/src/test/resources/data.sql b/src/test/resources/data-h2.sql similarity index 89% rename from src/test/resources/data.sql rename to src/test/resources/data-h2.sql index 5087dbddc..db667d623 100644 --- a/src/test/resources/data.sql +++ b/src/test/resources/data-h2.sql @@ -1,32 +1,17 @@ --------- users ---------------------- -delete -from USER_ROLE; -delete -from CONTACT; -delete -from PROFILE; - -delete -from ACTIVITY; -alter -sequence ACTIVITY_ID_SEQ restart with 1; -delete -from TASK; -alter -sequence TASK_ID_SEQ restart with 1; -delete -from SPRINT; -alter -sequence SPRINT_ID_SEQ restart with 1; -delete -from PROJECT; -alter -sequence PROJECT_ID_SEQ restart with 1; - -delete -from USERS; -alter -sequence USERS_ID_SEQ restart with 1; +delete from USER_ROLE; +delete from CONTACT; +delete from PROFILE; +delete from ACTIVITY; +ALTER SEQUENCE ACTIVITY_ID_SEQ RESTART WITH 1; +delete from TASK; +ALTER SEQUENCE TASK_ID_SEQ RESTART WITH 1; +delete from SPRINT; +ALTER SEQUENCE SPRINT_ID_SEQ RESTART WITH 1; +delete from PROJECT; +ALTER SEQUENCE PROJECT_ID_SEQ RESTART WITH 1; +delete from USERS; +ALTER SEQUENCE USERS_ID_SEQ RESTART WITH 1; insert into USERS (EMAIL, PASSWORD, FIRST_NAME, LAST_NAME, DISPLAY_NAME) values ('user@gmail.com', '{noop}password', 'userFirstName', 'userLastName', 'userDisplayName'), From c5440227c7abc6934ea8a26542b8029cd9ce8179 Mon Sep 17 00:00:00 2001 From: KirillB Date: Mon, 22 Jun 2026 16:10:06 +0300 Subject: [PATCH 4/9] Add ProfileRestController tests and H2/Liquibase configuration --- README.md | 3 +- .../java/com/javarush/jira/login/User.java | 2 +- .../jira/profile/internal/model/Contact.java | 2 +- .../web/ProfileRestControllerTest.java | 167 ++++++++++++++++++ src/test/resources/application-test.yaml | 2 +- src/test/resources/data-h2.sql | 10 +- 6 files changed, 174 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index cdfb3565e..0cc44ac68 100644 --- a/README.md +++ b/README.md @@ -37,4 +37,5 @@ docker run -p 5433:5432 --name postgres-db-test -e POSTGRES_USER=jira -e POSTGRE Список выполненных задач: 1. Удалить социальные сети: vk, yandex. 18.06.2026 2. Вынести чувствительную информацию в отдельный проперти файл. 21.06.2026 -3. Переделать тесты так, чтоб во время тестов использовалась in memory БД (H2), а не PostgreSQL. 21.06.2026 \ No newline at end of file +3. Переделать тесты так, чтоб во время тестов использовалась in memory БД (H2), а не PostgreSQL. 21.06.2026 +4. Написать тесты для всех публичных методов контроллера ProfileRestController. 22.06.2026 \ No newline at end of file diff --git a/src/main/java/com/javarush/jira/login/User.java b/src/main/java/com/javarush/jira/login/User.java index 812b6b7cc..d52f518bf 100644 --- a/src/main/java/com/javarush/jira/login/User.java +++ b/src/main/java/com/javarush/jira/login/User.java @@ -68,7 +68,7 @@ public class User extends TimestampEntry implements HasIdAndEmail, Serializable @CollectionTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), uniqueConstraints = @UniqueConstraint(columnNames = {"user_id", "role"}, name = "uk_user_role")) - @Column(name = "role") + @Column(name = "\"role\"") @ElementCollection(fetch = FetchType.EAGER) @JoinColumn @OnDelete(action = OnDeleteAction.CASCADE) diff --git a/src/main/java/com/javarush/jira/profile/internal/model/Contact.java b/src/main/java/com/javarush/jira/profile/internal/model/Contact.java index e3f29674b..f28ac7418 100644 --- a/src/main/java/com/javarush/jira/profile/internal/model/Contact.java +++ b/src/main/java/com/javarush/jira/profile/internal/model/Contact.java @@ -45,7 +45,7 @@ public class Contact implements HasId { @NotBlank @Size(min = 2, max = 256) - @Column(name = "value", nullable = false) + @Column(name = "\"value\"", nullable = false) @NoHtml private String value; diff --git a/src/test/java/com/javarush/jira/profile/internal/web/ProfileRestControllerTest.java b/src/test/java/com/javarush/jira/profile/internal/web/ProfileRestControllerTest.java index a6fd5e3bf..9fafc48d1 100644 --- a/src/test/java/com/javarush/jira/profile/internal/web/ProfileRestControllerTest.java +++ b/src/test/java/com/javarush/jira/profile/internal/web/ProfileRestControllerTest.java @@ -1,8 +1,175 @@ package com.javarush.jira.profile.internal.web; import com.javarush.jira.AbstractControllerTest; +import com.javarush.jira.profile.ContactTo; +import com.javarush.jira.profile.ProfileTo; +import com.javarush.jira.profile.internal.ProfileRepository; +import com.javarush.jira.profile.internal.model.Profile; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithAnonymousUser; +import org.springframework.security.test.context.support.WithUserDetails; +import java.util.Set; + +import static com.javarush.jira.common.util.JsonUtil.writeValue; +import static com.javarush.jira.profile.internal.web.ProfileTestData.*; +import static org.hamcrest.Matchers.containsInAnyOrder; +import static org.hamcrest.Matchers.containsString; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; class ProfileRestControllerTest extends AbstractControllerTest { + private static final String REST_URL = ProfileRestController.REST_URL; + + @Autowired + private ProfileRepository profileRepository; + + // ==================== GET ==================== + + @Test + @WithUserDetails(value = "user@gmail.com") + void getProfile_success() throws Exception { + perform(get(REST_URL)) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON)) + .andExpect(jsonPath("$.id").value(1)) + .andExpect(jsonPath("$.contacts").isArray()) + .andExpect(jsonPath("$.contacts[?(@.code=='skype')].value").value("userSkype")) + .andExpect(jsonPath("$.mailNotifications").isArray()) + .andExpect(jsonPath("$.mailNotifications", containsInAnyOrder(USER_PROFILE_TO.getMailNotifications().toArray() + ))); + } + + @Test + @WithAnonymousUser + void getProfile_unauthorized() throws Exception { + perform(get(REST_URL)) + .andDo(print()) + .andExpect(status().isUnauthorized()); + } + + // ==================== PUT ==================== + + @Test + @WithUserDetails(value = "user@gmail.com") + void updateProfile_success() throws Exception { + ProfileTo updateTo = getUpdatedTo(); + String json = writeValue(updateTo); + + perform(put(REST_URL) + .contentType(MediaType.APPLICATION_JSON) + .content(json)) + .andDo(print()) + .andExpect(status().isNoContent()); + + Profile expected = getUpdated(1L); + Profile actual = profileRepository.findById(1L).orElseThrow(); + + PROFILE_MATCHER.assertMatch(actual, expected); + } + + @Test + @WithAnonymousUser + void updateProfile_unauthorized() throws Exception { + ProfileTo updateTo = new ProfileTo(null, Set.of("assigned"), Set.of(new ContactTo("skype", "test"))); + String json = writeValue(updateTo); + + perform(put(REST_URL) + .contentType(MediaType.APPLICATION_JSON) + .content(json)) + .andDo(print()) + .andExpect(status().isUnauthorized()); + } + + + @Test + @WithUserDetails(value = "user@gmail.com") + void updateProfile_emptyContactsAndNotifications() throws Exception { + ProfileTo updateTo = GUEST_PROFILE_EMPTY_TO; + String json = writeValue(updateTo); + + perform(put(REST_URL) + .contentType(MediaType.APPLICATION_JSON) + .content(json)) + .andDo(print()) + .andExpect(status().isNoContent()); + + Profile expected = new Profile(1L); + expected.setMailNotifications(0); + expected.setContacts(Set.of()); + + Profile actual = profileRepository.findById(1L).orElseThrow(); + PROFILE_MATCHER.assertMatch(actual, expected); + } + + @Test + @WithUserDetails(value = "user@gmail.com") + void updateProfile_invalidContactCode() throws Exception { + ProfileTo invalidTo = getWithUnknownContactTo(); + String json = writeValue(invalidTo); + + perform(put(REST_URL) + .contentType(MediaType.APPLICATION_JSON) + .content(json)) + .andDo(print()) + .andExpect(status().isUnprocessableEntity()) + .andExpect(jsonPath("$.detail").value(containsString("Value with key WrongContactCode not found"))); + } + + @Test + @WithUserDetails(value = "user@gmail.com") + void updateProfile_invalidContactValueEmpty() throws Exception { + ProfileTo invalidTo = getInvalidTo(); + String json = writeValue(invalidTo); + + perform(put(REST_URL) + .contentType(MediaType.APPLICATION_JSON) + .content(json)) + .andDo(print()) + .andExpect(status().isUnprocessableEntity()) + .andExpect(jsonPath("$.detail").value(containsString("must not be blank"))); + } + + @Test + @WithUserDetails(value = "user@gmail.com") + void updateProfile_invalidMailNotificationCode() throws Exception { + ProfileTo invalidTo = getWithUnknownNotificationTo(); + String json = writeValue(invalidTo); + + perform(put(REST_URL) + .contentType(MediaType.APPLICATION_JSON) + .content(json)) + .andDo(print()) + .andExpect(status().isUnprocessableEntity()) + .andExpect(jsonPath("$.detail").value(containsString("Value with key WrongNotification not found"))); + } + + @Test + @WithUserDetails(value = "user@gmail.com") + void updateProfile_invalidJson() throws Exception { + perform(put(REST_URL) + .contentType(MediaType.APPLICATION_JSON) + .content("{invalid}")) + .andDo(print()) + .andExpect(status().isInternalServerError()); + } + + @Test + @WithUserDetails(value = "user@gmail.com") + void updateProfile_contactHtmlUnsafe() throws Exception { + ProfileTo invalidTo = getWithContactHtmlUnsafeTo(); + String json = writeValue(invalidTo); + + perform(put(REST_URL) + .contentType(MediaType.APPLICATION_JSON) + .content(json)) + .andDo(print()) + .andExpect(status().isUnprocessableEntity()) + .andExpect(jsonPath("$.detail").value(containsString("{error.noHtml}"))); + } } \ No newline at end of file diff --git a/src/test/resources/application-test.yaml b/src/test/resources/application-test.yaml index 20321d6ff..0bf20e9f7 100644 --- a/src/test/resources/application-test.yaml +++ b/src/test/resources/application-test.yaml @@ -5,7 +5,7 @@ spring: ddl-auto: none show-sql: true datasource: - url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;MODE=PostgreSQL + url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;MODE=PostgreSQL;DATABASE_TO_LOWER=TRUE driver-class-name: org.h2.Driver username: sa password: diff --git a/src/test/resources/data-h2.sql b/src/test/resources/data-h2.sql index db667d623..6e19b081b 100644 --- a/src/test/resources/data-h2.sql +++ b/src/test/resources/data-h2.sql @@ -3,15 +3,10 @@ delete from USER_ROLE; delete from CONTACT; delete from PROFILE; delete from ACTIVITY; -ALTER SEQUENCE ACTIVITY_ID_SEQ RESTART WITH 1; delete from TASK; -ALTER SEQUENCE TASK_ID_SEQ RESTART WITH 1; delete from SPRINT; -ALTER SEQUENCE SPRINT_ID_SEQ RESTART WITH 1; delete from PROJECT; -ALTER SEQUENCE PROJECT_ID_SEQ RESTART WITH 1; delete from USERS; -ALTER SEQUENCE USERS_ID_SEQ RESTART WITH 1; insert into USERS (EMAIL, PASSWORD, FIRST_NAME, LAST_NAME, DISPLAY_NAME) values ('user@gmail.com', '{noop}password', 'userFirstName', 'userLastName', 'userDisplayName'), @@ -23,7 +18,7 @@ values ('user@gmail.com', '{noop}password', 'userFirstName', 'userLastName', 'us -- 1 ADMIN -- 2 MANAGER -insert into USER_ROLE (USER_ID, ROLE) +insert into USER_ROLE (USER_ID, "role") values (1, 0), (2, 0), (2, 1), @@ -33,7 +28,7 @@ insert into PROFILE (ID, LAST_FAILED_LOGIN, LAST_LOGIN, MAIL_NOTIFICATIONS) values (1, null, null, 49), (2, null, null, 14); -insert into CONTACT (ID, CODE, VALUE) +insert into CONTACT (ID, CODE, "value") values (1, 'skype', 'userSkype'), (1, 'mobile', '+01234567890'), (1, 'website', 'user.com'), @@ -76,7 +71,6 @@ insert into USER_BELONG (OBJECT_ID, OBJECT_TYPE, USER_ID, USER_TYPE_CODE, STARTP values (1, 2, 2, 'task_developer', '2023-06-14 08:35:10', '2023-06-14 08:55:00'), (1, 2, 2, 'task_reviewer', '2023-06-14 09:35:10', null), (1, 2, 1, 'task_developer', '2023-06-12 11:40:00', '2023-06-12 12:35:00'), - (1, 2, 1, 'task_developer', '2023-06-13 12:35:00', null), (1, 2, 1, 'task_tester', '2023-06-14 15:20:00', null), (2, 2, 2, 'task_developer', '2023-06-08 07:10:00', null), (2, 2, 1, 'task_developer', '2023-06-09 14:48:00', null), From afc2c2ff0914991742fd52ff988e0e284df4df4e Mon Sep 17 00:00:00 2001 From: KirillB Date: Mon, 22 Jun 2026 16:48:54 +0300 Subject: [PATCH 5/9] Refactor FileUtil.upload to NIO.2 API --- README.md | 3 ++- .../jira/bugtracking/attachment/FileUtil.java | 19 +++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 0cc44ac68..d8150b265 100644 --- a/README.md +++ b/README.md @@ -38,4 +38,5 @@ docker run -p 5433:5432 --name postgres-db-test -e POSTGRES_USER=jira -e POSTGRE 1. Удалить социальные сети: vk, yandex. 18.06.2026 2. Вынести чувствительную информацию в отдельный проперти файл. 21.06.2026 3. Переделать тесты так, чтоб во время тестов использовалась in memory БД (H2), а не PostgreSQL. 21.06.2026 -4. Написать тесты для всех публичных методов контроллера ProfileRestController. 22.06.2026 \ No newline at end of file +4. Написать тесты для всех публичных методов контроллера ProfileRestController. 22.06.2026 +5. Сделать рефакторинг метода com.javarush.jira.bugtracking.attachment.FileUtil#upload. 22.06.2026 \ No newline at end of file diff --git a/src/main/java/com/javarush/jira/bugtracking/attachment/FileUtil.java b/src/main/java/com/javarush/jira/bugtracking/attachment/FileUtil.java index 6cffbe175..cc28b0749 100644 --- a/src/main/java/com/javarush/jira/bugtracking/attachment/FileUtil.java +++ b/src/main/java/com/javarush/jira/bugtracking/attachment/FileUtil.java @@ -7,10 +7,7 @@ import org.springframework.core.io.UrlResource; import org.springframework.web.multipart.MultipartFile; -import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; -import java.io.OutputStream; import java.net.MalformedURLException; import java.nio.file.Files; import java.nio.file.Path; @@ -24,15 +21,13 @@ public static void upload(MultipartFile multipartFile, String directoryPath, Str if (multipartFile.isEmpty()) { throw new IllegalRequestDataException("Select a file to upload."); } - - File dir = new File(directoryPath); - if (dir.exists() || dir.mkdirs()) { - File file = new File(directoryPath + fileName); - try (OutputStream outStream = new FileOutputStream(file)) { - outStream.write(multipartFile.getBytes()); - } catch (IOException ex) { - throw new IllegalRequestDataException("Failed to upload file" + multipartFile.getOriginalFilename()); - } + try { + Path dirPath = Paths.get(directoryPath); + Files.createDirectories(dirPath); + Path filePath = dirPath.resolve(fileName); + Files.write(filePath, multipartFile.getBytes()); + } catch (IOException ex) { + throw new IllegalRequestDataException("Failed to upload file" + multipartFile.getOriginalFilename()); } } From 351f06c4f463aaf6cf378f204cfcd5e24b104d1b Mon Sep 17 00:00:00 2001 From: KirillB Date: Mon, 22 Jun 2026 18:17:33 +0300 Subject: [PATCH 6/9] add tags management to task (REST API + service layer) --- README.md | 3 ++- .../javarush/jira/bugtracking/task/TaskController.java | 8 ++++++++ .../com/javarush/jira/bugtracking/task/TaskService.java | 8 ++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d8150b265..d17411eda 100644 --- a/README.md +++ b/README.md @@ -39,4 +39,5 @@ docker run -p 5433:5432 --name postgres-db-test -e POSTGRES_USER=jira -e POSTGRE 2. Вынести чувствительную информацию в отдельный проперти файл. 21.06.2026 3. Переделать тесты так, чтоб во время тестов использовалась in memory БД (H2), а не PostgreSQL. 21.06.2026 4. Написать тесты для всех публичных методов контроллера ProfileRestController. 22.06.2026 -5. Сделать рефакторинг метода com.javarush.jira.bugtracking.attachment.FileUtil#upload. 22.06.2026 \ No newline at end of file +5. Сделать рефакторинг метода com.javarush.jira.bugtracking.attachment.FileUtil#upload. 22.06.2026 +6. Добавить новый функционал: добавления тегов к задаче (REST API + реализация на сервисе) \ No newline at end of file diff --git a/src/main/java/com/javarush/jira/bugtracking/task/TaskController.java b/src/main/java/com/javarush/jira/bugtracking/task/TaskController.java index b53f7ff37..696ac1a78 100644 --- a/src/main/java/com/javarush/jira/bugtracking/task/TaskController.java +++ b/src/main/java/com/javarush/jira/bugtracking/task/TaskController.java @@ -13,6 +13,7 @@ import jakarta.annotation.Nullable; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; @@ -23,6 +24,7 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.Set; import static com.javarush.jira.common.BaseHandler.createdResponse; @@ -156,4 +158,10 @@ public TaskTreeNode(TaskTo taskTo) { this(taskTo, new LinkedList<>()); } } + + @PostMapping("/{id}/tags") + @ResponseStatus(HttpStatus.NO_CONTENT) + public void addTags(@PathVariable long id, @Valid @RequestBody Set<@Size(min=2, max=32) String> tags) { + taskService.addTags(id, tags); + } } diff --git a/src/main/java/com/javarush/jira/bugtracking/task/TaskService.java b/src/main/java/com/javarush/jira/bugtracking/task/TaskService.java index e6f385548..95573e9ad 100644 --- a/src/main/java/com/javarush/jira/bugtracking/task/TaskService.java +++ b/src/main/java/com/javarush/jira/bugtracking/task/TaskService.java @@ -14,6 +14,7 @@ import com.javarush.jira.common.util.Util; import com.javarush.jira.login.AuthUser; import com.javarush.jira.ref.RefType; +import jakarta.validation.constraints.Size; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -21,6 +22,7 @@ import java.time.LocalDateTime; import java.util.List; +import java.util.Set; import static com.javarush.jira.bugtracking.ObjectType.TASK; import static com.javarush.jira.bugtracking.task.TaskUtil.fillExtraFields; @@ -140,4 +142,10 @@ private void checkAssignmentActionPossible(long id, String userType, boolean ass throw new DataConflictException(String.format(assign ? CANNOT_ASSIGN : CANNOT_UN_ASSIGN, userType, task.getStatusCode())); } } + + @Transactional + public void addTags(long id, Set<@Size(min=2, max=32) String> tags) { + Task task = handler.getRepository().getExisted(id); + task.getTags().addAll(tags); + } } From 7dd2ecb85d8eaa453920de3939d467359e8306aa Mon Sep 17 00:00:00 2001 From: KirillB Date: Tue, 23 Jun 2026 19:01:18 +0300 Subject: [PATCH 7/9] add work-time and test-time calculation with test activities --- .../bugtracking/UserBelongRepository.java | 3 + .../bugtracking/task/ActivityRepository.java | 3 + .../jira/bugtracking/task/TaskController.java | 19 ++++++ .../jira/bugtracking/task/TaskService.java | 58 ++++++++++++++++++- src/main/resources/data4dev/data.sql | 4 ++ src/main/resources/db/changelog.sql | 2 +- .../bugtracking/task/TaskControllerTest.java | 1 + .../internal/web/UserControllerTest.java | 7 ++- src/test/resources/data-h2.sql | 4 +- 9 files changed, 95 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/javarush/jira/bugtracking/UserBelongRepository.java b/src/main/java/com/javarush/jira/bugtracking/UserBelongRepository.java index b7c4de7de..a7c6a25a1 100644 --- a/src/main/java/com/javarush/jira/bugtracking/UserBelongRepository.java +++ b/src/main/java/com/javarush/jira/bugtracking/UserBelongRepository.java @@ -22,4 +22,7 @@ public interface UserBelongRepository extends BaseRepository { @Query("SELECT u FROM UserBelong u WHERE u.objectId =?1 AND u.objectType=?2 and u.userId=?3 and u.userTypeCode=?4 and u.endpoint IS NULL") Optional findActiveAssignment(long objectId, ObjectType objectType, long userId, String userTypeCode); + + @Query("SELECT u FROM UserBelong u WHERE u.objectId = ?1 AND u.objectType = ?2 AND u.userId = ?3 AND u.userTypeCode = ?4") + Optional findAssignment(long objectId, ObjectType objectType, long userId, String userTypeCode); } diff --git a/src/main/java/com/javarush/jira/bugtracking/task/ActivityRepository.java b/src/main/java/com/javarush/jira/bugtracking/task/ActivityRepository.java index 3ce8a9386..0733b1a35 100644 --- a/src/main/java/com/javarush/jira/bugtracking/task/ActivityRepository.java +++ b/src/main/java/com/javarush/jira/bugtracking/task/ActivityRepository.java @@ -5,6 +5,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Optional; @Transactional(readOnly = true) public interface ActivityRepository extends BaseRepository { @@ -13,4 +14,6 @@ public interface ActivityRepository extends BaseRepository { @Query("SELECT a FROM Activity a JOIN FETCH a.author WHERE a.taskId =:taskId AND a.comment IS NOT NULL ORDER BY a.updated DESC") List findAllComments(long taskId); + + Optional findFirstByTaskIdAndStatusCodeOrderByUpdatedAsc(long taskId, String statusCode); } diff --git a/src/main/java/com/javarush/jira/bugtracking/task/TaskController.java b/src/main/java/com/javarush/jira/bugtracking/task/TaskController.java index 696ac1a78..3ebc36842 100644 --- a/src/main/java/com/javarush/jira/bugtracking/task/TaskController.java +++ b/src/main/java/com/javarush/jira/bugtracking/task/TaskController.java @@ -21,6 +21,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.time.Duration; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; @@ -164,4 +165,22 @@ public TaskTreeNode(TaskTo taskTo) { public void addTags(@PathVariable long id, @Valid @RequestBody Set<@Size(min=2, max=32) String> tags) { taskService.addTags(id, tags); } + + @GetMapping("/{id}/work-time") + public ResponseEntity getWorkTime(@PathVariable long id) { + Duration duration = taskService.getWorkDuration(id); + if (duration == null) { + return ResponseEntity.notFound().build(); + } + return ResponseEntity.ok(duration.toMinutes()); + } + + @GetMapping("/{id}/test-time") + public ResponseEntity getTestTime(@PathVariable long id) { + Duration duration = taskService.getTestDuration(id); + if (duration == null) { + return ResponseEntity.notFound().build(); + } + return ResponseEntity.ok(duration.toMinutes()); + } } diff --git a/src/main/java/com/javarush/jira/bugtracking/task/TaskService.java b/src/main/java/com/javarush/jira/bugtracking/task/TaskService.java index 95573e9ad..b79ed5c0c 100644 --- a/src/main/java/com/javarush/jira/bugtracking/task/TaskService.java +++ b/src/main/java/com/javarush/jira/bugtracking/task/TaskService.java @@ -16,12 +16,15 @@ import com.javarush.jira.ref.RefType; import jakarta.validation.constraints.Size; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; +import java.time.Duration; import java.time.LocalDateTime; import java.util.List; +import java.util.Optional; import java.util.Set; import static com.javarush.jira.bugtracking.ObjectType.TASK; @@ -29,6 +32,7 @@ import static com.javarush.jira.bugtracking.task.TaskUtil.makeActivity; import static com.javarush.jira.ref.ReferenceService.getRefTo; +@Slf4j @Service @RequiredArgsConstructor public class TaskService { @@ -120,9 +124,20 @@ public TaskToExt getNewWithParent(long parentId) { return extMapper.toTo(newTask); } + @Transactional public void assign(long id, String userType, long userId) { checkAssignmentActionPossible(id, userType, true); - handler.createUserBelong(id, TASK, userId, userType); + Optional existing = userBelongRepository.findAssignment(id, TASK, userId, userType); + if (existing.isPresent()) { + UserBelong belong = existing.get(); + belong.setEndpoint(null); + belong.setStartpoint(LocalDateTime.now()); + userBelongRepository.save(belong); + log.debug("Reassigned user {} as {} to task {}", userId, userType, id); + } else { + handler.createUserBelong(id, TASK, userId, userType); + log.debug("Assigned user {} as {} to task {}", userId, userType, id); + } } @Transactional @@ -148,4 +163,45 @@ public void addTags(long id, Set<@Size(min=2, max=32) String> tags) { Task task = handler.getRepository().getExisted(id); task.getTags().addAll(tags); } + + public Duration getWorkDuration(long taskId) { + return calcDurationBetweenStatuses(taskId, "in_progress", "ready_for_review"); + } + + public Duration getTestDuration(long taskId) { + return calcDurationBetweenStatuses(taskId, "ready_for_review", "done"); + } + + private Duration calcDurationBetweenStatuses(long taskId, String startStatus, String endStatus) { + Optional startOpt = activityHandler.getRepository() + .findFirstByTaskIdAndStatusCodeOrderByUpdatedAsc(taskId, startStatus); + Optional endOpt = activityHandler.getRepository() + .findFirstByTaskIdAndStatusCodeOrderByUpdatedAsc(taskId, endStatus); + + if (startOpt.isEmpty() || endOpt.isEmpty()) { + log.warn("Missing activity status for task {}: startStatus={}, endStatus={}", + taskId, startStatus, endStatus); + return null; + } + + Activity startActivity = startOpt.get(); + Activity endActivity = endOpt.get(); + + LocalDateTime startTime = startActivity.getUpdated(); + LocalDateTime endTime = endActivity.getUpdated(); + + if (startTime == null || endTime == null) { + log.warn("Activity has null updated date for task {}: startStatus={}, endStatus={}", + taskId, startStatus, endStatus); + return null; + } + + if (startTime.isAfter(endTime)) { + log.warn("Start time is after end time for task {}: start={}, end={}", + taskId, startTime, endTime); + return null; + } + + return Duration.between(startTime, endTime); + } } diff --git a/src/main/resources/data4dev/data.sql b/src/main/resources/data4dev/data.sql index a7d43cbad..6f93e8d56 100644 --- a/src/main/resources/data4dev/data.sql +++ b/src/main/resources/data4dev/data.sql @@ -325,3 +325,7 @@ values (6, 1, '2023-05-15 09:05:10', null, 'Data', null, 3, 'epic', 'in_progress (5, 118, '2023-05-16 11:10:10', null, 'UI tab of tasks', null, null, null, null, 'high'), (11, 118, '2023-05-16 12:30:10', null, 'UI tab of tasks', null, 2, null, null, null); +insert into ACTIVITY (AUTHOR_ID, TASK_ID, UPDATED, STATUS_CODE) +values (1, 3, '2026-06-01 10:00:00', 'in_progress'), + (1, 3, '2026-06-01 15:30:00', 'ready_for_review'), + (1, 3, '2026-06-01 17:45:00', 'done'); \ No newline at end of file diff --git a/src/main/resources/db/changelog.sql b/src/main/resources/db/changelog.sql index 8844f0ae1..4688b4469 100644 --- a/src/main/resources/db/changelog.sql +++ b/src/main/resources/db/changelog.sql @@ -331,4 +331,4 @@ values ('todo', 'ToDo', 3, 'in_progress,canceled|'), --changeset ishlyakhtenkov:change_UK_USER_BELONG drop index UK_USER_BELONG; -create unique index UK_USER_BELONG on USER_BELONG (OBJECT_ID, OBJECT_TYPE, USER_ID, USER_TYPE_CODE); +create unique index UK_USER_BELONG on USER_BELONG (OBJECT_ID, OBJECT_TYPE, USER_ID, USER_TYPE_CODE); \ No newline at end of file diff --git a/src/test/java/com/javarush/jira/bugtracking/task/TaskControllerTest.java b/src/test/java/com/javarush/jira/bugtracking/task/TaskControllerTest.java index b5c25e992..8378bb119 100644 --- a/src/test/java/com/javarush/jira/bugtracking/task/TaskControllerTest.java +++ b/src/test/java/com/javarush/jira/bugtracking/task/TaskControllerTest.java @@ -5,6 +5,7 @@ import com.javarush.jira.bugtracking.task.to.ActivityTo; import com.javarush.jira.bugtracking.task.to.TaskToExt; import com.javarush.jira.bugtracking.task.to.TaskToFull; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; diff --git a/src/test/java/com/javarush/jira/login/internal/web/UserControllerTest.java b/src/test/java/com/javarush/jira/login/internal/web/UserControllerTest.java index d6790ff3b..1d56f773a 100644 --- a/src/test/java/com/javarush/jira/login/internal/web/UserControllerTest.java +++ b/src/test/java/com/javarush/jira/login/internal/web/UserControllerTest.java @@ -5,6 +5,7 @@ import com.javarush.jira.login.UserTo; import com.javarush.jira.login.internal.UserMapper; import com.javarush.jira.login.internal.UserRepository; +import jakarta.transaction.Transactional; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; @@ -23,6 +24,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +@Transactional class UserControllerTest extends AbstractControllerTest { @Autowired @@ -58,7 +60,9 @@ void getUnauthorized() throws Exception { @Test void createWithLocation() throws Exception { - UserTo newTo = mapper.toTo(getNew()); + User newUser = getNew(); + newUser.setEmail("new_" + System.currentTimeMillis() + "@gmail.com"); // <-- уникальный email + UserTo newTo = mapper.toTo(newUser); ResultActions action = perform(MockMvcRequestBuilders.post(REST_URL) .contentType(MediaType.APPLICATION_JSON) .content(jsonWithPassword(newTo, newTo.getPassword()))) @@ -66,7 +70,6 @@ void createWithLocation() throws Exception { User created = USER_MATCHER.readFromJson(action); long newId = created.id(); - User newUser = getNew(); newUser.setId(newId); USER_MATCHER.assertMatch(created, newUser); USER_MATCHER.assertMatch(repository.getExisted(newId), newUser); diff --git a/src/test/resources/data-h2.sql b/src/test/resources/data-h2.sql index 6e19b081b..4827f3c2b 100644 --- a/src/test/resources/data-h2.sql +++ b/src/test/resources/data-h2.sql @@ -70,8 +70,8 @@ values (1, 1, '2023-05-15 09:05:10', null, 'Data', null, 3, 'epic', 'in_progress insert into USER_BELONG (OBJECT_ID, OBJECT_TYPE, USER_ID, USER_TYPE_CODE, STARTPOINT, ENDPOINT) values (1, 2, 2, 'task_developer', '2023-06-14 08:35:10', '2023-06-14 08:55:00'), (1, 2, 2, 'task_reviewer', '2023-06-14 09:35:10', null), - (1, 2, 1, 'task_developer', '2023-06-12 11:40:00', '2023-06-12 12:35:00'), + (1, 2, 1, 'task_developer', '2023-06-13 12:35:00', null), (1, 2, 1, 'task_tester', '2023-06-14 15:20:00', null), (2, 2, 2, 'task_developer', '2023-06-08 07:10:00', null), (2, 2, 1, 'task_developer', '2023-06-09 14:48:00', null), - (2, 2, 1, 'task_tester', '2023-06-10 16:37:00', null); + (2, 2, 1, 'task_tester', '2023-06-10 16:37:00', null); \ No newline at end of file From d6f28682de07f1cf04ee3581c2c5c759a52ae75a Mon Sep 17 00:00:00 2001 From: KirillB Date: Wed, 24 Jun 2026 16:12:32 +0300 Subject: [PATCH 8/9] add Docker support --- Dockerfile | 11 +++++++++++ README.md | 21 +++++++++++++++++++-- src/main/resources/application.yaml | 3 ++- 3 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..785103674 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM eclipse-temurin:17-jdk + +WORKDIR /app + +COPY target/jira-1.0.jar app.jar +COPY application-secrets.yaml . +COPY resources ./resources + +EXPOSE 8080 + +ENTRYPOINT ["java", "-jar", "/app/app.jar"] \ No newline at end of file diff --git a/README.md b/README.md index d17411eda..b8676231a 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,27 @@ - [Introducing Spring Modulith](https://spring.io/blog/2022/10/21/introducing-spring-modulith) - [Spring Modulith - Reference documentation](https://docs.spring.io/spring-modulith/docs/current-SNAPSHOT/reference/html/) +## Быстрый запуск (bash) + +1. Убедитесь, что установлены **Docker**, **Maven** и **Git Bash** (или WSL). +2. Выполните в корне проекта: + +```bash +mvn clean package -DskipTests +``` +```bash +docker build -t jira-rush . +``` +```bash +docker run -d -p 8080:8080 -e DB_USERNAME=jira -e DB_PASSWORD=JiraRush -e DB_URL=jdbc:postgresql://host.docker.internal:5432/jira --name jira-rush-app jira-rush +``` +## Запуск БД ``` url: jdbc:postgresql://localhost:5432/jira username: jira password: JiraRush ``` -## Запуск БД + ### Prod ```bash docker run -p 5432:5432 --name postgres-db -e POSTGRES_USER=jira -e POSTGRES_PASSWORD=JiraRush -e POSTGRES_DB=jira -e PGDATA=/var/lib/postgresql/data/pgdata -v ./pgdata:/var/lib/postgresql/data -d postgres @@ -40,4 +55,6 @@ docker run -p 5433:5432 --name postgres-db-test -e POSTGRES_USER=jira -e POSTGRE 3. Переделать тесты так, чтоб во время тестов использовалась in memory БД (H2), а не PostgreSQL. 21.06.2026 4. Написать тесты для всех публичных методов контроллера ProfileRestController. 22.06.2026 5. Сделать рефакторинг метода com.javarush.jira.bugtracking.attachment.FileUtil#upload. 22.06.2026 -6. Добавить новый функционал: добавления тегов к задаче (REST API + реализация на сервисе) \ No newline at end of file +6. Добавить новый функционал: добавления тегов к задаче (REST API + реализация на сервисе) 22.06.2026 +7. Добавить подсчет времени сколько задача находилась в работе и тестировании. 23.06.2026 +8. Написать Dockerfile для основного сервера \ No newline at end of file diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index bb82df892..3e791ea44 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -28,10 +28,11 @@ spring: # https://stackoverflow.com/questions/21257819/what-is-the-difference-between-hibernate-jdbc-fetch-size-and-hibernate-jdbc-batc jdbc.batch_size: 20 datasource: - url: jdbc:postgresql://localhost:5432/jira + url: ${DB_URL:jdbc:postgresql://localhost:5432/jira} username: ${DB_USERNAME} password: ${DB_PASSWORD} + liquibase: changeLog: "classpath:db/changelog.sql" From ea42fb23533eefff60c200909c1c7dfbfe1c7453 Mon Sep 17 00:00:00 2001 From: KirillB Date: Wed, 24 Jun 2026 16:32:41 +0300 Subject: [PATCH 9/9] add docker-compose.yml support --- README.md | 3 +- config/nginx.conf | 94 +++++++++++++++++++++++++++------------------- docker-compose.yml | 54 ++++++++++++++++++++++++++ 3 files changed, 111 insertions(+), 40 deletions(-) create mode 100644 docker-compose.yml diff --git a/README.md b/README.md index b8676231a..01c87e7f8 100644 --- a/README.md +++ b/README.md @@ -57,4 +57,5 @@ docker run -p 5433:5432 --name postgres-db-test -e POSTGRES_USER=jira -e POSTGRE 5. Сделать рефакторинг метода com.javarush.jira.bugtracking.attachment.FileUtil#upload. 22.06.2026 6. Добавить новый функционал: добавления тегов к задаче (REST API + реализация на сервисе) 22.06.2026 7. Добавить подсчет времени сколько задача находилась в работе и тестировании. 23.06.2026 -8. Написать Dockerfile для основного сервера \ No newline at end of file +8. Написать Dockerfile для основного сервера. 24.06.2026 +9. Написать docker-compose файл для запуска контейнера сервера вместе с БД и nginx. 24.06.2026 \ No newline at end of file diff --git a/config/nginx.conf b/config/nginx.conf index 82b9e234d..e488f6a50 100644 --- a/config/nginx.conf +++ b/config/nginx.conf @@ -1,40 +1,56 @@ -# https://losst.ru/ustanovka-nginx-ubuntu-16-04 -# https://pai-bx.com/wiki/nginx/2332-useful-redirects-in-nginx/#1 -# sudo iptables -A INPUT ! -s 127.0.0.1 -p tcp -m tcp --dport 8080 -j DROP -server { - listen 80; - - # https://www.digitalocean.com/community/tutorials/how-to-optimize-nginx-configuration - gzip on; - gzip_types text/css application/javascript application/json; - gzip_min_length 2048; - - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - root /opt/jirarush/resources; - - if ($request_uri ~ ';') {return 404;} - - # proxy_cookie_flags ~ secure samesite=none; - - # static - location /static/ { - expires 30d; - access_log off; - } - location /robots.txt { - access_log off; - } - - location ~ (/$|/view/|/ui/|/oauth2/) { - expires 0m; - proxy_pass http://localhost:8080; - proxy_connect_timeout 30s; - } - location ~ (/api/|/doc|/swagger-ui/|/v3/api-docs/) { - proxy_pass http://localhost:8080; - proxy_connect_timeout 150s; - } - location / { - try_files /view/404.html = 404; - } +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + gzip on; + gzip_types text/css application/javascript application/json; + gzip_min_length 2048; + + upstream jira_backend { + server app:8080; + } + + server { + listen 80; + server_name localhost; + + # Корень для статики – если нужно + root /opt/jirarush/resources; + index index.html; + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # Обработка статики + location /static/ { + expires 30d; + access_log off; + } + + location /robots.txt { + access_log off; + } + + # Прокси на приложение + location ~ (/$|/view/|/ui/|/oauth2/) { + proxy_pass http://jira_backend; + proxy_connect_timeout 30s; + } + + location ~ (/api/|/doc|/swagger-ui/|/v3/api-docs/) { + proxy_pass http://jira_backend; + proxy_connect_timeout 150s; + } + + # Для всего остального – 404 или перенаправление + location / { + try_files $uri /view/404.html = 404; + } + } } \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..a9fe7cde6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,54 @@ +services: + # PostgreSQL база данных + db: + image: postgres:15 + container_name: jira-db + environment: + POSTGRES_DB: jira + POSTGRES_USER: jira + POSTGRES_PASSWORD: JiraRush + volumes: + - pgdata:/var/lib/postgresql/data + networks: + - jira-network + healthcheck: + test: ["CMD-SHELL", "pg_isready -U jira"] + interval: 10s + timeout: 5s + retries: 5 + ports: + - "5432:5432" + + # Spring Boot приложение + app: + build: . + container_name: jira-app + depends_on: + db: + condition: service_healthy + environment: + DB_URL: jdbc:postgresql://db:5432/jira + DB_USERNAME: jira + DB_PASSWORD: JiraRush + SPRING_PROFILES_ACTIVE: prod + networks: + - jira-network + + nginx: + image: nginx:alpine + container_name: jira-nginx + volumes: + - ./config/nginx.conf:/etc/nginx/nginx.conf:ro + - ./resources:/opt/jirarush/resources:ro + ports: + - "80:80" + depends_on: + - app + networks: + - jira-network + +networks: + jira-network: + +volumes: + pgdata: \ No newline at end of file