@centia-io/mcp-server 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/centia-api.json +450 -0
  2. package/package.json +1 -1
package/centia-api.json CHANGED
@@ -791,6 +791,246 @@
791
791
  }
792
792
  }
793
793
  },
794
+ "/api/v4/schemas/{schema}/tables/{table}/features/{feature}": {
795
+ "get": {
796
+ "tags": [
797
+ "Feature"
798
+ ],
799
+ "description": "Get one or more features as GeoJSON by primary key. Pass a single key or a comma-separated list (e.g. 1,2,3). Read auth, geofence rules and versioning filters are applied by the WFS engine.",
800
+ "operationId": "getFeature",
801
+ "parameters": [
802
+ {
803
+ "name": "schema",
804
+ "in": "path",
805
+ "description": "Schema name",
806
+ "required": true,
807
+ "schema": {
808
+ "type": "string"
809
+ },
810
+ "example": "my_schema"
811
+ },
812
+ {
813
+ "name": "table",
814
+ "in": "path",
815
+ "description": "Table name",
816
+ "required": true,
817
+ "schema": {
818
+ "type": "string"
819
+ },
820
+ "example": "my_table"
821
+ },
822
+ {
823
+ "name": "feature",
824
+ "in": "path",
825
+ "description": "Primary key value, or a comma-separated list of values (e.g. 1,2,3)",
826
+ "required": true,
827
+ "schema": {
828
+ "type": "string"
829
+ },
830
+ "example": "1,2"
831
+ },
832
+ {
833
+ "name": "srs",
834
+ "in": "query",
835
+ "description": "Output EPSG code (SRID) of the GeoJSON geometry. Defaults to 4326.",
836
+ "required": false,
837
+ "schema": {
838
+ "type": "integer",
839
+ "default": 4326
840
+ },
841
+ "example": 25832
842
+ }
843
+ ],
844
+ "responses": {
845
+ "200": {
846
+ "description": "A GeoJSON Feature for a single match, or a FeatureCollection for several"
847
+ },
848
+ "404": {
849
+ "description": "No features found"
850
+ }
851
+ }
852
+ },
853
+ "delete": {
854
+ "tags": [
855
+ "Feature"
856
+ ],
857
+ "description": "Delete a single feature by its primary key through a WFS-T transaction.",
858
+ "operationId": "deleteFeature",
859
+ "parameters": [
860
+ {
861
+ "name": "schema",
862
+ "in": "path",
863
+ "description": "Schema name",
864
+ "required": true,
865
+ "schema": {
866
+ "type": "string"
867
+ },
868
+ "example": "my_schema"
869
+ },
870
+ {
871
+ "name": "table",
872
+ "in": "path",
873
+ "description": "Table name",
874
+ "required": true,
875
+ "schema": {
876
+ "type": "string"
877
+ },
878
+ "example": "my_table"
879
+ },
880
+ {
881
+ "name": "feature",
882
+ "in": "path",
883
+ "description": "Primary key value of the feature",
884
+ "required": true,
885
+ "schema": {
886
+ "type": "string"
887
+ },
888
+ "example": "1"
889
+ }
890
+ ],
891
+ "responses": {
892
+ "204": {
893
+ "description": "Deleted"
894
+ },
895
+ "404": {
896
+ "description": "Feature not found"
897
+ }
898
+ }
899
+ },
900
+ "patch": {
901
+ "tags": [
902
+ "Feature"
903
+ ],
904
+ "description": "Update features from a GeoJSON Feature or FeatureCollection through a WFS-T transaction. Each feature must carry its primary-key value in properties.",
905
+ "operationId": "patchFeature",
906
+ "parameters": [
907
+ {
908
+ "name": "schema",
909
+ "in": "path",
910
+ "description": "Schema name",
911
+ "required": true,
912
+ "schema": {
913
+ "type": "string"
914
+ },
915
+ "example": "my_schema"
916
+ },
917
+ {
918
+ "name": "table",
919
+ "in": "path",
920
+ "description": "Table name",
921
+ "required": true,
922
+ "schema": {
923
+ "type": "string"
924
+ },
925
+ "example": "my_table"
926
+ },
927
+ {
928
+ "name": "feature",
929
+ "in": "path",
930
+ "description": "Primary key value. Optional — when omitted, each feature must carry its key in properties.",
931
+ "required": false,
932
+ "schema": {
933
+ "type": "string"
934
+ },
935
+ "example": "1"
936
+ },
937
+ {
938
+ "name": "srs",
939
+ "in": "query",
940
+ "description": "EPSG code (SRID) of the incoming GeoJSON geometry. Defaults to 4326.",
941
+ "required": false,
942
+ "schema": {
943
+ "type": "integer",
944
+ "default": 4326
945
+ },
946
+ "example": 25832
947
+ }
948
+ ],
949
+ "requestBody": {
950
+ "description": "GeoJSON Feature or FeatureCollection.",
951
+ "required": true,
952
+ "content": {
953
+ "application/json": {
954
+ "schema": {
955
+ "$ref": "#/components/schemas/Feature"
956
+ }
957
+ }
958
+ }
959
+ },
960
+ "responses": {
961
+ "303": {
962
+ "description": "Updated. Location header points at the feature(s)."
963
+ },
964
+ "400": {
965
+ "description": "Bad request"
966
+ },
967
+ "404": {
968
+ "description": "Feature not found"
969
+ }
970
+ }
971
+ }
972
+ },
973
+ "/api/v4/schemas/{schema}/tables/{table}/features": {
974
+ "post": {
975
+ "tags": [
976
+ "Feature"
977
+ ],
978
+ "description": "Insert features from a GeoJSON Feature or FeatureCollection through a WFS-T transaction. A primary-key value in properties is used as the new key; otherwise one is generated.",
979
+ "operationId": "postFeature",
980
+ "parameters": [
981
+ {
982
+ "name": "schema",
983
+ "in": "path",
984
+ "description": "Schema name",
985
+ "required": true,
986
+ "schema": {
987
+ "type": "string"
988
+ },
989
+ "example": "my_schema"
990
+ },
991
+ {
992
+ "name": "table",
993
+ "in": "path",
994
+ "description": "Table name",
995
+ "required": true,
996
+ "schema": {
997
+ "type": "string"
998
+ },
999
+ "example": "my_table"
1000
+ },
1001
+ {
1002
+ "name": "srs",
1003
+ "in": "query",
1004
+ "description": "EPSG code (SRID) of the incoming GeoJSON geometry. Defaults to 4326.",
1005
+ "required": false,
1006
+ "schema": {
1007
+ "type": "integer",
1008
+ "default": 4326
1009
+ },
1010
+ "example": 25832
1011
+ }
1012
+ ],
1013
+ "requestBody": {
1014
+ "description": "GeoJSON Feature or FeatureCollection.",
1015
+ "required": true,
1016
+ "content": {
1017
+ "application/json": {
1018
+ "schema": {
1019
+ "$ref": "#/components/schemas/Feature"
1020
+ }
1021
+ }
1022
+ }
1023
+ },
1024
+ "responses": {
1025
+ "201": {
1026
+ "description": "Created. Location header points at the new feature(s)."
1027
+ },
1028
+ "400": {
1029
+ "description": "Bad request"
1030
+ }
1031
+ }
1032
+ }
1033
+ },
794
1034
  "/api/v4/file/upload": {
795
1035
  "post": {
796
1036
  "tags": [
@@ -1543,6 +1783,151 @@
1543
1783
  }
1544
1784
  }
1545
1785
  },
1786
+ "/api/v4/keyvalue/{key}": {
1787
+ "get": {
1788
+ "tags": [
1789
+ "Keyvalue"
1790
+ ],
1791
+ "description": "Get a key, or list all visible keys.",
1792
+ "operationId": "getKeyvalue",
1793
+ "parameters": [
1794
+ {
1795
+ "name": "key",
1796
+ "in": "path",
1797
+ "description": "Key to fetch",
1798
+ "required": false,
1799
+ "schema": {
1800
+ "type": "string"
1801
+ },
1802
+ "example": "my_key"
1803
+ },
1804
+ {
1805
+ "name": "paths",
1806
+ "in": "query",
1807
+ "description": "Project only the named JSON sub-trees of the value. Comma-separated paths, each a dot-separated segment sequence, e.g. 'user.name,active'. The result value is keyed by each path string.",
1808
+ "required": false,
1809
+ "schema": {
1810
+ "type": "string"
1811
+ },
1812
+ "example": "user.name,active"
1813
+ }
1814
+ ],
1815
+ "responses": {
1816
+ "200": {
1817
+ "description": "Ok"
1818
+ },
1819
+ "404": {
1820
+ "description": "Not found"
1821
+ }
1822
+ }
1823
+ },
1824
+ "post": {
1825
+ "tags": [
1826
+ "Keyvalue"
1827
+ ],
1828
+ "description": "Create a key owned by the caller.",
1829
+ "operationId": "postKeyvalue",
1830
+ "parameters": [
1831
+ {
1832
+ "name": "key",
1833
+ "in": "path",
1834
+ "description": "Key to create",
1835
+ "required": true,
1836
+ "schema": {
1837
+ "type": "string"
1838
+ },
1839
+ "example": "my_key"
1840
+ }
1841
+ ],
1842
+ "requestBody": {
1843
+ "description": "Key/value definition.",
1844
+ "required": true,
1845
+ "content": {
1846
+ "application/json": {
1847
+ "schema": {
1848
+ "$ref": "#/components/schemas/Keyvalue"
1849
+ }
1850
+ }
1851
+ }
1852
+ },
1853
+ "responses": {
1854
+ "201": {
1855
+ "description": "Created"
1856
+ },
1857
+ "400": {
1858
+ "description": "Bad request"
1859
+ },
1860
+ "409": {
1861
+ "description": "Key already exists"
1862
+ }
1863
+ }
1864
+ },
1865
+ "delete": {
1866
+ "tags": [
1867
+ "Keyvalue"
1868
+ ],
1869
+ "description": "Delete a key.",
1870
+ "operationId": "deleteKeyvalue",
1871
+ "parameters": [
1872
+ {
1873
+ "name": "key",
1874
+ "in": "path",
1875
+ "description": "Key to delete",
1876
+ "required": true,
1877
+ "schema": {
1878
+ "type": "string"
1879
+ },
1880
+ "example": "my_key"
1881
+ }
1882
+ ],
1883
+ "responses": {
1884
+ "204": {
1885
+ "description": "Key deleted"
1886
+ },
1887
+ "404": {
1888
+ "description": "Not found"
1889
+ }
1890
+ }
1891
+ },
1892
+ "patch": {
1893
+ "tags": [
1894
+ "Keyvalue"
1895
+ ],
1896
+ "description": "Update a key's value and/or public flag.",
1897
+ "operationId": "patchKeyvalue",
1898
+ "parameters": [
1899
+ {
1900
+ "name": "key",
1901
+ "in": "path",
1902
+ "description": "Key to update",
1903
+ "required": true,
1904
+ "schema": {
1905
+ "type": "string"
1906
+ },
1907
+ "example": "my_key"
1908
+ }
1909
+ ],
1910
+ "requestBody": {
1911
+ "description": "Partial key/value update.",
1912
+ "required": true,
1913
+ "content": {
1914
+ "application/json": {
1915
+ "schema": {
1916
+ "$ref": "#/components/schemas/Keyvalue"
1917
+ }
1918
+ }
1919
+ }
1920
+ },
1921
+ "responses": {
1922
+ "303": {
1923
+ "description": "Key updated"
1924
+ },
1925
+ "404": {
1926
+ "description": "Not found"
1927
+ }
1928
+ }
1929
+ }
1930
+ },
1546
1931
  "/api/v4/layers/{layer}/classes/{class}/labels/{label}": {
1547
1932
  "get": {
1548
1933
  "tags": [
@@ -4644,6 +5029,39 @@
4644
5029
  },
4645
5030
  "type": "object"
4646
5031
  },
5032
+ "Feature": {
5033
+ "description": "A GeoJSON Feature or FeatureCollection.",
5034
+ "required": [
5035
+ "type"
5036
+ ],
5037
+ "properties": {
5038
+ "type": {
5039
+ "title": "Type",
5040
+ "description": "'Feature' or 'FeatureCollection'.",
5041
+ "type": "string",
5042
+ "example": "FeatureCollection"
5043
+ },
5044
+ "features": {
5045
+ "title": "Features",
5046
+ "description": "The features (FeatureCollection only).",
5047
+ "type": "array",
5048
+ "items": {
5049
+ "type": "object"
5050
+ }
5051
+ },
5052
+ "properties": {
5053
+ "title": "Properties",
5054
+ "description": "Feature properties (Feature only).",
5055
+ "type": "object"
5056
+ },
5057
+ "geometry": {
5058
+ "title": "Geometry",
5059
+ "description": "GeoJSON geometry (Feature only).",
5060
+ "type": "object"
5061
+ }
5062
+ },
5063
+ "type": "object"
5064
+ },
4647
5065
  "FileProcessRequest": {
4648
5066
  "description": "Upload files to temporary storage and then import them into database tables.",
4649
5067
  "required": [
@@ -5010,6 +5428,30 @@
5010
5428
  },
5011
5429
  "type": "object"
5012
5430
  },
5431
+ "Keyvalue": {
5432
+ "description": "A key/value entry with an owner and a public flag.",
5433
+ "required": [
5434
+ "value"
5435
+ ],
5436
+ "properties": {
5437
+ "value": {
5438
+ "title": "Value",
5439
+ "description": "Arbitrary JSON value to store.",
5440
+ "type": "object",
5441
+ "example": {
5442
+ "a": 1
5443
+ }
5444
+ },
5445
+ "public": {
5446
+ "title": "Public",
5447
+ "description": "When true the key is readable by any user in the database.",
5448
+ "type": "boolean",
5449
+ "default": false,
5450
+ "example": false
5451
+ }
5452
+ },
5453
+ "type": "object"
5454
+ },
5013
5455
  "Label": {
5014
5456
  "description": "Label entry of a class. Property keys follow MapServer LABEL parameters.",
5015
5457
  "required": [],
@@ -6579,6 +7021,10 @@
6579
7021
  "name": "Events",
6580
7022
  "description": "Events"
6581
7023
  },
7024
+ {
7025
+ "name": "Feature",
7026
+ "description": "Feature"
7027
+ },
6582
7028
  {
6583
7029
  "name": "File",
6584
7030
  "description": "File"
@@ -6595,6 +7041,10 @@
6595
7041
  "name": "GraphQL",
6596
7042
  "description": "GraphQL"
6597
7043
  },
7044
+ {
7045
+ "name": "Keyvalue",
7046
+ "description": "Keyvalue"
7047
+ },
6598
7048
  {
6599
7049
  "name": "Layer",
6600
7050
  "description": "Layer"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@centia-io/mcp-server",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },