This commits fixes the "gob: name not registered for interface" error when restarting Harbor by registering models.User
Signed-off-by: Wenkai Yin <yinw@vmware.com>
1 Misc issues for chart repo card view
2 Create group dialog ignores the error from backend
3 The detail page of a scanned image has overlap of text fields.
Signed-off-by: Meina Zhou <meinaz@vmware.com>
Add validation to job ID in the API to get job log in job service, to
prevent file path traversal attack.
Signed-off-by: Daniel Jiang <jiangd@vmware.com>
The current solution only fix the /api/users/currentuser, but for /api/users/:id it can display the real information. see issue #5620
Signed-off-by: stonezdj <stonezdj@gmail.com>
Add clean registry cache to gc job
To workaround the issue: https://github.com/docker/distribution/issues/2094
GC needs to clean cache before to call the docker reigstry api to delete blobs.
Otherwise, the following docker push will not be performed as docker registry
does not clean cache in GC, it thinks the image is still there, and the new
blobs will be uploaded.
Changes include:
1 Modify the about dialog, remove vmware copyright
2 Remove VM tag in the login page.
3 Modify "vmware harbor" to "harbor" in login page.
Changes including:
1 chart list view will have icon which from the latest version.
2 Card View will change to the option2 (large icon).
3 version list will also have icons inside the data grid.
add utility handler in chart controller to support getting charts by ns
add ut case for utility handler
update deletable checking logic in project controller
refactor project deletable test case
Fix edit group sccess message.
This pr will focus on 2 issues:
1 In configuration,
LDAP verify cert should only show in ldap mode. It should not show in database mode.
2 When user using ldap mode to login harbor. And edit a group sccessfully, the popup message shows wrong. It should show "Edit group sccess".
Problem Description:
In the card view of repositories, if the title is long, it can not show all the text.
Fix:
Add css
overflow: hidden;
text-overflow: ellipsis;
word-wrap:break-word;
white-space: nowrap
in mixin files, and tooltip to show all the text.
Problem description:
In member tab, Action->remove is not clickable in production mode.
Root cause analysis:
Some style for clarity checkbox impact dropdown menu.
Fix:
We do a quick fix in member.component.scss. Set checkbox in this component
position:inherit;
This will overide the clarity original style
Problem Description:
configuration dropdown menu use all uppercase letters.
Fix:
Modify all of them in capitalize letters.
Note:Try to use css text-transform:Caplitalize but not working, if anyone know the reason, please kindly tell me.
Problem description:
when user try to new a replication rule, he need to input source project name.
In this case, if user input a project name not exist. The error message will be:"Please add a project name",
this is not accurate.
Fix:
Modify the error message to "This project is not exist".
Plus:Modify the error popup using standard tooltip component.
Problem description:
1 label enable sometimes not correct. User input good label names, submit button still disabled.
2 Some times click submit, not working.
Fix:
1 After review the new label code. It trying to use a global variable to control the progress of validation. In the progress of validation, it will disabled the submit button.
This will cause user bad experience. Just remove this logic.
2 Backend use fuzzy matching, the frontend logic did not change before. So when user already have a user name called "abcd",and then input another name called "abc" it will report duplicated name error.
This logic still need change.
3 This is the first version of refine. Can be refine again if find some other logic not correct.
Issue description:
Notification will hide some content when it popup.
According to ux requirement, we should make it not extend to the whole widh of UI, and should not hide the content.
Fix:
Use clarity alert-app-level style,it will show as ux design,and text in center too.
Issue description:
Notification will hide some content when it popup.
According to ux requirement, we should make it not extend to the whole widh of UI, and should not hide the content.
Fix:
Modify the position from 'absolute' to 'relative', so that it will not hide the content.
Description:
Reproduce Steps:
1 User install Clair
2 User use scan to scan the image
2 There will be a notification pop with undefined error
Root cause:
In result-bar-chart-component.ts copyValue function
this.summary.scan_status = newVal.scan_status;
It try to set scan status to summary object.
Somehow, the first time summary is undefined. It will cause this error.
Fix:
1 Do a empty check before assign value to a object.
2 Set a default value to summary.
refill the multipart form data at harbor API layer
export write error functions from the chartserver package
refactor the error format to be compatiable with push plugin
append chart server related config options to the supporting list of adminserver
provide chart server related config access method in the API layer
update prepare script and ui env template file to enable cache driver config for chart server API
append flag info in the systeminfo API to indicate if chart server is deployed with Harbor
refactor the response rewriting logic to return structual error object
add api init method to initilizing objects required in API handlers
chage owner of the storage folder
update offline/online package scripts in Harbor-Util.robot
It supports Harbor admin to trigger job either manual or
schedule. The job will be populated to job service to execute.
The api includes:
1. POST /api/system/gc
2, GET /api/system/gc/:id
3, GET /api/system/gc/:id/log
4, PUT/GET/POST /api/system/gc/schedule
Add SafeCastString, SafeCastInt, SafeCastFloat64, SafeCastBool function to check
the type matched and avoid panic in runtime
Add default value to configure settings to avoid cannot save configure
issue
docker regsitry. This version has the API to call regsitry GC with jobservice
secret. Seprates it into a standalone container as do not want to invoke two
processes in one container.
It needs to mount the registry storage into this container in order to do GC,
and needs to copy the registry binary into it.
add /chartrepo after /api
add /chartrepo before /index.yaml,/:repo/index.yaml and /:repo/charts/:filename
add debug messages to the potential debug points
add more supporting mime types "multipart/form-data", "application/octet-stream" to the API endpoints
update travis file to inject ENV for UT cases of chart repo
This commit make update to remove the code from ui container to init the
DB schema. As UI has dependency on admin server, so it's safe to assume
adminserver has to be ready first. Regardless the setting of the config
store of admin server, it will try to access and intialize the schema of
database.
add chart repo API controller
update GetChartVersion to extract repo name from the request
update the corresponding UI cases
update the chart controller initialization process
By default Harbor will call catalog API of registry and sync the result to DB, this becomes problematic when registry is configured to custom storage service, there maybe inconsistent result and the whole process may be very time consuming.
So in this commit a env var SYNC_REGISTRY is introduced if user want Harbor to sync the repo when it starts up, by default it's false.
pass cache config to the constructor of chart cache
use break loop to instead of return in GetIndexYaml
fix typo reids to redis
pass credential to the reverse proxy and chart client via constructors
add UT cases for cache
add UT cases for ChartOperator
add UT cases for the main API service of chart server
export some consts in the security.go of filter package to let them visible in chartserver package
getting chart list returns chart list instead of map and provides total versions info
getting chart details will return dependencies and values besides the metatdata of the chart version
add chartserver directory to put chart server code
add controller to coordinate the flow
add base/repo/manipulation handlers to handle requests
add operator to parse more details of chart version
call dep ensure
This commit fixes#5040, the harbor-db image will only contain empty
databases, and harbor ui container will use migrate tool to run initial
SQL scripts to do initialization. This is helpful for the case to
configure Harbor against external DB or DBaaS like RDS for HA deployment
However, this change will results some confusion as there are two tables
to track schema versions have been using alembic for migration, for this
release we'll try to use alembic to mock a `migration` table during
upgrade so the migrator will be bypassed, in future we'll consider to
consolidate to the golang based migrator.
Another issue is that the UI and adminserver containers will access DB
after start up in different congurations, can't ensure the sequence, so
both of them will try to update the schema when started up.