Commit 38bc4610 authored by Mark Canterbury's avatar Mark Canterbury
Browse files

Automation?

parent 10796e6f
Loading
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -21,7 +21,8 @@ markdown:
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
  interruptible: true
  interruptible: true
  script:
  script:
    - 104196/publish.sh 001 104196/ts_spec_template.docx 104196 104196/ts_cover_skeleton.docx TS
    - cd 104196
    - ./publish.sh 001 ts_spec_template.docx 104196 ts_cover_skeleton.docx TS




# -----------------------------------------------------------
# -----------------------------------------------------------
+28 −14
Original line number Original line Diff line number Diff line
---
Title: Considerations for using portals to support requests from <br>Authorized Organisations
Spec Number: TR 104 196
Version: v0.6.0
Date: 2025-11
keywords: Markdown, Gitlab
Copyright Year: 2025
Long ISG Name: Technical Committee Lawful Interception
Short ISG Name: TC LI
---


<!--- Table of contents will be inserted by Pandoc when generating the DOCX specification
<!--- Table of contents will be inserted by Pandoc when generating the DOCX specification
# Contents
# Contents
-->
-->


<!--- Extra breaklines can be inserted at any place by adding this tag
<!--- Extra breaklines can be inserted at any place by adding this tag
<br />
\

-->
-->














# Intellectual Property Rights
# Intellectual Property Rights


Essential patents
Essential patents
@@ -108,9 +111,8 @@ Adoption of the present document does not imply that a system is compliant with


The approach in Figure 4.4-1 is recommended. The key point is to run one system with two front ends (one for meeting an ETSI Technical Specification, and one for a portal). The goal is to make the front end systems as thin as possible i.e. to put most of the functionality in the main Request Processing System. 
The approach in Figure 4.4-1 is recommended. The key point is to run one system with two front ends (one for meeting an ETSI Technical Specification, and one for a portal). The goal is to make the front end systems as thin as possible i.e. to put most of the functionality in the main Request Processing System. 


![A picture showing the reference design](fig441.png)
![Figure 4.4-1: Approach to portal design](./fig441.png)


**Figure 4.4-1: Approach to portal design**




The design in Figure 4.4-1 is not a strict architecture or design and is not intended to constrain data flows or security boundaries. 
The design in Figure 4.4-1 is not a strict architecture or design and is not intended to constrain data flows or security boundaries. 
@@ -251,7 +253,7 @@ No additional comments on this topic are made in the present document.
# Annex A : Change history
# Annex A : Change history


| Date       | Version | Information about changes |
| Date       | Version | Information about changes |
|------------|---------|---------------------------|
|-|-|-|
|December 2025    |  0.6.0  | Version uploaded for discussion on 2025-12-16 |
|December 2025    |  0.6.0  | Version uploaded for discussion on 2025-12-16 |
|December 2025    |  0.6.1  | Version at end of discussion on 2025-12-16 |
|December 2025    |  0.6.1  | Version at end of discussion on 2025-12-16 |
|            |         |                           |
|            |         |                           |
@@ -259,3 +261,15 @@ No additional comments on this topic are made in the present document.

















+10 −10
Original line number Original line Diff line number Diff line
@@ -17,14 +17,14 @@ MARKDOWN_TOOLS_DOCKER_IMAGE=forge.etsi.org:5050/cti/md-specs-dev/tools/markdownt
FORGELIB_DOCKER_IMAGE=forge.3gpp.org:5050/tools/3gpp-scripts/forgelib:v2.28.0
FORGELIB_DOCKER_IMAGE=forge.3gpp.org:5050/tools/3gpp-scripts/forgelib:v2.28.0


echo "\n------ Checking for docker image --------"
echo "\n------ Checking for docker image --------"
docker logout $(echo "$PANDOC_DOCKER_IMAGE" | cut -d "/" -f 1) 
#docker logout $(echo "$PANDOC_DOCKER_IMAGE" | cut -d "/" -f 1) 
docker pull "$PANDOC_DOCKER_IMAGE"
#docker pull "$PANDOC_DOCKER_IMAGE"
docker logout $(echo "$GENERATE_BASELINE_DOCKER_IMAGE" | cut -d "/" -f 1)
#docker logout $(echo "$GENERATE_BASELINE_DOCKER_IMAGE" | cut -d "/" -f 1)
docker pull "$GENERATE_BASELINE_DOCKER_IMAGE"
#docker pull "$GENERATE_BASELINE_DOCKER_IMAGE"
docker logout $(echo "$MARKDOWN_TOOLS_DOCKER_IMAGE" | cut -d "/" -f 1)
#docker logout $(echo "$MARKDOWN_TOOLS_DOCKER_IMAGE" | cut -d "/" -f 1)
docker pull "$MARKDOWN_TOOLS_DOCKER_IMAGE"
#docker pull "$MARKDOWN_TOOLS_DOCKER_IMAGE"
docker logout $(echo "$FORGELIB_DOCKER_IMAGE" | cut -d "/" -f 1)
#docker logout $(echo "$FORGELIB_DOCKER_IMAGE" | cut -d "/" -f 1)
docker pull "$FORGELIB_DOCKER_IMAGE"
#docker pull "$FORGELIB_DOCKER_IMAGE"


echo "------ Removing previous outputs --------"
echo "------ Removing previous outputs --------"
rm -f baseline/*.docx 2>/dev/null || true
rm -f baseline/*.docx 2>/dev/null || true
@@ -63,7 +63,7 @@ done
for i in *.md ;  do
for i in *.md ;  do
    if [ $i != 'README.md' ]; then
    if [ $i != 'README.md' ]; then
    	if [[ $i =~ (GS|GR|TS|TR|EN|EG).*\.md ]] ; then
    	if [[ $i =~ (GS|GR|TS|TR|EN|EG).*\.md ]] ; then
        	echo "\n------ Processing MD file to combine all clauses (::include) -------"
        	echo "\n------ Processing $i to combine all clauses (::include) -------"
            docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$MARKDOWN_TOOLS_DOCKER_IMAGE" processMDSpec -fmo "$i" -fmf frontmatter.md
            docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$MARKDOWN_TOOLS_DOCKER_IMAGE" processMDSpec -fmo "$i" -fmf frontmatter.md
            docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$MARKDOWN_TOOLS_DOCKER_IMAGE" processMDSpec "$i" > combined.md
            docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) -w "/tmp" "$MARKDOWN_TOOLS_DOCKER_IMAGE" processMDSpec "$i" > combined.md
            cat combined.md > $i
            cat combined.md > $i
@@ -72,7 +72,7 @@ for i in *.md ; do
	  		echo "\n------ Preparing spec --------"
	  		echo "\n------ Preparing spec --------"
	    	docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$GENERATE_BASELINE_DOCKER_IMAGE" pandocFilter -ts -fp -o "/tmp/" "/tmp/$i"
	    	docker run --rm -v $(pwd):/tmp/ -u $(id -u):$(id -g) "$GENERATE_BASELINE_DOCKER_IMAGE" pandocFilter -ts -fp -o "/tmp/" "/tmp/$i"
			echo "\n------ Publishing spec --------"
			echo "\n------ Publishing spec --------"
			mkdir baseline
			[ -d baseline ] || mkdir baseline
	    	# Word output
	    	# Word output
	    	docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) -w "/data" "$PANDOC_DOCKER_IMAGE" "/data/$i" --toc --metadata toc-title="Contents" -F mermaid-filter -f markdown+escaped_line_breaks -t docx --reference-doc "/data/${SPEC_TEMPLATE}" -o "baseline/${SPEC_NAME}_${TAG_NAME}.docx"
	    	docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) -w "/data" "$PANDOC_DOCKER_IMAGE" "/data/$i" --toc --metadata toc-title="Contents" -F mermaid-filter -f markdown+escaped_line_breaks -t docx --reference-doc "/data/${SPEC_TEMPLATE}" -o "baseline/${SPEC_NAME}_${TAG_NAME}.docx"
	    	#echo 'docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "${4}_${2}.pdf"'
	    	#echo 'docker run --rm -v $(pwd):/data -u $(id -u):$(id -g) "$DOCKER_IMAGE" "/data/$i" -F mermaid-filter -f markdown+escaped_line_breaks -t pdf -o "${4}_${2}.pdf"'