diff --git a/.github/vpn/config.ovpn b/.github/vpn/config.ovpn index 85139b0..cba9653 100644 --- a/.github/vpn/config.ovpn +++ b/.github/vpn/config.ovpn @@ -3,10 +3,12 @@ client tls-client dev tun # this will connect with whatever proto DNS tells us (https://community.openvpn.net/openvpn/ticket/934) -proto tcp -remote vpn.4gl.io 7494 +proto udp +remote vpn.4gl.io 7194 resolv-retry infinite -cipher AES-256-CBC +# this will fallback from udp6 to udp4 as well +connect-timeout 5 +data-ciphers AES-256-CBC:AES-256-GCM auth SHA256 script-security 2 keepalive 10 120 diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 2bd6ba5..daab167 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -8,7 +8,7 @@ on: jobs: test: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 strategy: matrix: @@ -34,6 +34,10 @@ jobs: USER_KEY: ${{ secrets.USER_KEY }} TLS_KEY: ${{ secrets.TLS_KEY }} + - name: Chmod VPN files + run: | + chmod 600 .github/vpn/ca.crt .github/vpn/user.crt .github/vpn/user.key .github/vpn/tls.key + - name: Install Open VPN run: | sudo apt install apt-transport-https @@ -42,8 +46,13 @@ jobs: sudo wget -O /etc/apt/sources.list.d/openvpn3.list https://swupdate.openvpn.net/community/openvpn3/repos/openvpn3-jammy.list sudo apt update sudo apt install openvpn3=17~betaUb22042+jammy + - name: Start Open VPN 3 run: openvpn3 session-start --config .github/vpn/config.ovpn + + - name: Fetch SASJS server + run: curl ${{ secrets.SASJS_SERVER_URL }}/SASjsApi/info + - name: Install Doxygen run: sudo apt-get install doxygen diff --git a/all.sas b/all.sas index 5b19246..d3ee592 100644 --- a/all.sas +++ b/all.sas @@ -17686,22 +17686,20 @@ run; %mend mm_getcols;/** @file mm_getdetails.sas @brief extracts metadata attributes and associations for a particular uri - @param [in] uri the metadata object for which to return attributes / associations + @param [in] sortoptions Enables sorting of the output datasets, for example, + `SORTSEQ=LINGUISTIC` @param [out] outattrs= (work.attributes) The dataset to create that contains the list of attributes @param [out] outassocs= (work.associations) The dataset to contain the list of associations - - @version 9.2 - @author Allan Bowe - **/ %macro mm_getdetails(uri ,outattrs=work.attributes ,outassocs=work.associations + ,sortoptions= )/*/STORE SOURCE*/; data &outassocs; @@ -17726,7 +17724,7 @@ data &outassocs; n1+1; end; run; -proc sort; +proc sort &sortoptions; by assoc name; run; @@ -17746,7 +17744,7 @@ data &outattrs; n1+1; end; run; -proc sort; +proc sort &sortoptions; by type name; run; diff --git a/meta/mm_getdetails.sas b/meta/mm_getdetails.sas index a8ca9c4..fb729ee 100644 --- a/meta/mm_getdetails.sas +++ b/meta/mm_getdetails.sas @@ -1,22 +1,20 @@ /** @file mm_getdetails.sas @brief extracts metadata attributes and associations for a particular uri - @param [in] uri the metadata object for which to return attributes / associations + @param [in] sortoptions Enables sorting of the output datasets, for example, + `SORTSEQ=LINGUISTIC` @param [out] outattrs= (work.attributes) The dataset to create that contains the list of attributes @param [out] outassocs= (work.associations) The dataset to contain the list of associations - - @version 9.2 - @author Allan Bowe - **/ %macro mm_getdetails(uri ,outattrs=work.attributes ,outassocs=work.associations + ,sortoptions= )/*/STORE SOURCE*/; data &outassocs; @@ -41,7 +39,7 @@ data &outassocs; n1+1; end; run; -proc sort; +proc sort &sortoptions; by assoc name; run; @@ -61,7 +59,7 @@ data &outattrs; n1+1; end; run; -proc sort; +proc sort &sortoptions; by type name; run;