Skip to content

Commit 4ea9529

Browse files
committed
fix: support worker label
1 parent 876c7b8 commit 4ea9529

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1223
-612
lines changed

himarket-bootstrap/src/main/java/com/alibaba/himarket/config/SecurityConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public class SecurityConfig {
6969
"/cli-providers",
7070
"/skills/*/download",
7171
"/workers/*/download",
72-
"/worker-templates/*/package"
72+
"/workers/*/files/**"
7373
};
7474

7575
// Swagger endpoints

himarket-dal/src/main/java/com/alibaba/himarket/support/product/WorkerConfig.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
package com.alibaba.himarket.support.product;
2121

22+
import java.util.List;
2223
import lombok.AllArgsConstructor;
2324
import lombok.Builder;
2425
import lombok.Data;
@@ -44,4 +45,9 @@ public class WorkerConfig {
4445
* AgentSpec name (corresponds to name in manifest.json)
4546
*/
4647
private String agentSpecName;
48+
49+
/**
50+
* Worker tags for categorization and search
51+
*/
52+
private List<String> tags;
4753
}

himarket-server/src/main/java/com/alibaba/himarket/controller/PortalConfigController.java

Lines changed: 0 additions & 58 deletions
This file was deleted.

himarket-server/src/main/java/com/alibaba/himarket/controller/PortalController.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,13 @@
2020
package com.alibaba.himarket.controller;
2121

2222
import com.alibaba.himarket.core.annotation.AdminAuth;
23+
import com.alibaba.himarket.core.annotation.PublicAccess;
2324
import com.alibaba.himarket.dto.params.consumer.QuerySubscriptionParam;
2425
import com.alibaba.himarket.dto.params.portal.BindDomainParam;
2526
import com.alibaba.himarket.dto.params.portal.CreatePortalParam;
2627
import com.alibaba.himarket.dto.params.portal.UpdatePortalParam;
2728
import com.alibaba.himarket.dto.result.common.PageResult;
29+
import com.alibaba.himarket.dto.result.portal.PortalProfileResult;
2830
import com.alibaba.himarket.dto.result.portal.PortalResult;
2931
import com.alibaba.himarket.dto.result.product.ProductPublicationResult;
3032
import com.alibaba.himarket.dto.result.product.SubscriptionResult;
@@ -43,14 +45,14 @@
4345
@Slf4j
4446
@Validated
4547
@Tag(name = "门户管理")
46-
@AdminAuth
4748
@RequiredArgsConstructor
4849
public class PortalController {
4950

5051
private final PortalService portalService;
5152

5253
@Operation(summary = "创建门户")
5354
@PostMapping
55+
@AdminAuth
5456
public PortalResult createPortal(@Valid @RequestBody CreatePortalParam param) {
5557
return portalService.createPortal(param);
5658
}
@@ -61,34 +63,46 @@ public PortalResult getPortal(@PathVariable String portalId) {
6163
return portalService.getPortal(portalId);
6264
}
6365

66+
@Operation(summary = "获取当前门户信息")
67+
@GetMapping("/profile")
68+
@PublicAccess
69+
public PortalProfileResult getPortalProfile() {
70+
return portalService.getPortalProfile();
71+
}
72+
6473
@Operation(summary = "获取门户列表")
6574
@GetMapping
75+
@AdminAuth
6676
public PageResult<PortalResult> listPortals(Pageable pageable) {
6777
return portalService.listPortals(pageable);
6878
}
6979

7080
@Operation(summary = "更新门户信息")
7181
@PutMapping("/{portalId}")
82+
@AdminAuth
7283
public PortalResult updatePortal(
7384
@PathVariable String portalId, @Valid @RequestBody UpdatePortalParam param) {
7485
return portalService.updatePortal(portalId, param);
7586
}
7687

7788
@Operation(summary = "删除门户")
7889
@DeleteMapping("/{portalId}")
90+
@AdminAuth
7991
public void deletePortal(@PathVariable String portalId) {
8092
portalService.deletePortal(portalId);
8193
}
8294

8395
@Operation(summary = "绑定域名")
8496
@PostMapping("/{portalId}/domains")
97+
@AdminAuth
8598
public PortalResult bindDomain(
8699
@PathVariable String portalId, @Valid @RequestBody BindDomainParam param) {
87100
return portalService.bindDomain(portalId, param);
88101
}
89102

90103
@Operation(summary = "解绑域名")
91104
@DeleteMapping("/{portalId}/domains/{domain}")
105+
@AdminAuth
92106
public PortalResult unbindDomain(@PathVariable String portalId, @PathVariable String domain) {
93107
return portalService.unbindDomain(portalId, domain);
94108
}
@@ -103,6 +117,7 @@ public PageResult<ProductPublicationResult> getPortalPublications(
103117

104118
@Operation(summary = "获取门户上的API产品订阅列表")
105119
@GetMapping("/{portalId}/subscriptions")
120+
@AdminAuth
106121
public PageResult<SubscriptionResult> listSubscriptions(
107122
@PathVariable String portalId, QuerySubscriptionParam param, Pageable pageable) {
108123
return portalService.listSubscriptions(portalId, param, pageable);

himarket-server/src/main/java/com/alibaba/himarket/controller/SkillController.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package com.alibaba.himarket.controller;
22

33
import com.alibaba.himarket.core.annotation.AdminAuth;
4-
import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
54
import com.alibaba.himarket.core.annotation.PublicAccess;
65
import com.alibaba.himarket.dto.params.worker.PublishWorkerVersionParam;
76
import com.alibaba.himarket.dto.params.worker.SetLatestWorkerVersionParam;
87
import com.alibaba.himarket.dto.params.worker.UpdateWorkerVersionStatusParam;
8+
import com.alibaba.himarket.dto.result.cli.CliDownloadInfo;
99
import com.alibaba.himarket.dto.result.common.FileContentResult;
1010
import com.alibaba.himarket.dto.result.common.FileTreeNode;
1111
import com.alibaba.himarket.dto.result.common.VersionResult;
@@ -68,7 +68,7 @@ public FileContentResult getFileContent(
6868

6969
@Operation(summary = "List Skill versions")
7070
@GetMapping("/{productId}/versions")
71-
@AdminOrDeveloperAuth
71+
@PublicAccess
7272
public List<VersionResult> listVersions(@PathVariable String productId) {
7373
return skillService.listVersions(productId);
7474
}
@@ -115,4 +115,11 @@ public void downloadPackage(
115115
throws IOException {
116116
skillService.downloadPackage(productId, version, response);
117117
}
118+
119+
@Operation(summary = "Get CLI download info for Skill detail page")
120+
@GetMapping("/{productId}/cli-info")
121+
@PublicAccess
122+
public CliDownloadInfo getCliDownloadInfo(@PathVariable String productId) {
123+
return skillService.getCliDownloadInfo(productId);
124+
}
118125
}

himarket-server/src/main/java/com/alibaba/himarket/controller/WorkerController.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package com.alibaba.himarket.controller;
22

33
import com.alibaba.himarket.core.annotation.AdminAuth;
4-
import com.alibaba.himarket.core.annotation.AdminOrDeveloperAuth;
4+
import com.alibaba.himarket.core.annotation.PublicAccess;
55
import com.alibaba.himarket.dto.params.worker.PublishWorkerVersionParam;
66
import com.alibaba.himarket.dto.params.worker.SetLatestWorkerVersionParam;
77
import com.alibaba.himarket.dto.params.worker.UpdateWorkerVersionStatusParam;
8+
import com.alibaba.himarket.dto.result.cli.CliDownloadInfo;
89
import com.alibaba.himarket.dto.result.common.FileContentResult;
910
import com.alibaba.himarket.dto.result.common.FileTreeNode;
1011
import com.alibaba.himarket.dto.result.common.VersionResult;
@@ -48,15 +49,15 @@ public void deleteWorker(@PathVariable String productId) {
4849

4950
@Operation(summary = "Get Worker file tree")
5051
@GetMapping("/{productId}/files")
51-
@AdminOrDeveloperAuth
52+
@PublicAccess
5253
public List<FileTreeNode> getFileTree(
5354
@PathVariable String productId, @RequestParam(required = false) String version) {
5455
return workerService.getFileTree(productId, version);
5556
}
5657

5758
@Operation(summary = "Get Worker file content")
5859
@GetMapping("/{productId}/files/{*filePath}")
59-
@AdminOrDeveloperAuth
60+
@PublicAccess
6061
public FileContentResult getFileContent(
6162
@PathVariable String productId,
6263
@PathVariable String filePath,
@@ -67,7 +68,7 @@ public FileContentResult getFileContent(
6768

6869
@Operation(summary = "List Worker versions")
6970
@GetMapping("/{productId}/versions")
70-
@AdminOrDeveloperAuth
71+
@PublicAccess
7172
public List<VersionResult> listVersions(@PathVariable String productId) {
7273
return workerService.listVersions(productId);
7374
}
@@ -114,4 +115,11 @@ public void downloadPackage(
114115
throws IOException {
115116
workerService.downloadPackage(productId, version, response);
116117
}
118+
119+
@Operation(summary = "Get CLI download info for Worker detail page")
120+
@GetMapping("/{productId}/cli-info")
121+
@PublicAccess
122+
public CliDownloadInfo getCliDownloadInfo(@PathVariable String productId) {
123+
return workerService.getCliDownloadInfo(productId);
124+
}
117125
}

himarket-server/src/main/java/com/alibaba/himarket/dto/params/portal/BindDomainParam.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.alibaba.himarket.support.enums.DomainType;
2525
import com.alibaba.himarket.support.enums.ProtocolType;
2626
import jakarta.validation.constraints.NotBlank;
27-
import jakarta.validation.constraints.NotNull;
2827
import lombok.Data;
2928

3029
@Data
@@ -33,8 +32,7 @@ public class BindDomainParam implements InputConverter<PortalDomain> {
3332
@NotBlank(message = "Portal domain cannot be blank")
3433
private String domain;
3534

36-
@NotNull(message = "Domain protocol cannot be null")
37-
private ProtocolType protocol;
35+
private ProtocolType protocol = ProtocolType.HTTP;
3836

3937
private DomainType type = DomainType.CUSTOM;
4038
}

himarket-server/src/main/java/com/alibaba/himarket/dto/params/product/CreateProductParam.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public class CreateProductParam implements InputConverter<Product> {
3939
@Size(max = 50, message = "API product name cannot exceed 50 characters")
4040
private String name;
4141

42-
@Size(max = 256, message = "API product description cannot exceed 256 characters")
42+
@Size(max = 512, message = "API product description cannot exceed 512 characters")
4343
private String description;
4444

4545
@NotNull(message = "API product type cannot be null")
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
package com.alibaba.himarket.dto.result.cli;
21+
22+
import lombok.AllArgsConstructor;
23+
import lombok.Builder;
24+
import lombok.Data;
25+
import lombok.NoArgsConstructor;
26+
27+
/**
28+
* CLI download command info for Skill/Worker detail pages.
29+
*/
30+
@Data
31+
@Builder
32+
@NoArgsConstructor
33+
@AllArgsConstructor
34+
public class CliDownloadInfo {
35+
36+
/**
37+
* Nacos host address (without protocol and port)
38+
*/
39+
private String nacosHost;
40+
41+
/**
42+
* Skill or Worker name in Nacos
43+
*/
44+
private String resourceName;
45+
46+
/**
47+
* Resource type: "skill" or "worker"
48+
*/
49+
private String resourceType;
50+
}

himarket-server/src/main/java/com/alibaba/himarket/dto/result/nacos/NacosResult.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,6 @@ public class NacosResult implements OutputConverter<NacosResult, NacosInstance>
3333

3434
private String serverUrl;
3535

36-
private String username;
37-
38-
private String accessKey;
39-
40-
private String description;
41-
42-
private String adminId;
43-
4436
private Boolean isDefault;
4537

4638
private String defaultNamespace;

0 commit comments

Comments
 (0)